Trang

Chủ Nhật, 18 tháng 5, 2025

Lisp đổi layer 0 trong Block | AutoLISP Reviewer

Ứng dụng được Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản
   

Thông tin thêm: 👉👉👉

Lệnh [CB0] 

Cho phép đổi layer cho các đối tượng nằm bên trong block được chọn.


Kết quả


Tải lisp miễn phí


1 Thêm CB0.lsp

Lưu mã sau dưới dạng tệp tin CB0.lsp
Code:
; Changes all block entities to layer "0" with color, linetype & lineweight ByBlock
(defun C:CB0 (/ SSET intCount ENAM ELST BNAM FLST FIX1)
	(defun FIX1 (BNAM / BENAM BONAM)
		(if (not (member BNAM FLST))
	 (progn
		 (setq FLST	(cons BNAM FLST)
		 BENAM (tblobjname "block" BNAM)
		 )
	 (while (setq BENAM (entnext BENAM))
			(if (= (cdr (assoc 0 (entget BENAM))) "INSERT")
			 (fix1 (cdr (assoc 2 (entget BENAM))))
			 (progn
				 (setq BONAM(vlax-ename->vla-object BENAM))
					(vl-catch-all-apply 'vla-put-layer (list BONAM "0"))
					(vl-catch-all-apply 'vla-put-color (list BONAM 0))
					(vl-catch-all-apply 'vla-put-linetype (list BONAM "Byblock"))
					(vl-catch-all-apply 'vla-put-Lineweight (list BONAM -2))
;								(vl-catch-all-apply 'vla-put-PlotStyleName (list BONAM "Byblock"))
			 )
		 )
	 )
				)
		)
	)
	(setq SSET (ssget (list (cons 0 "INSERT"))))
	(vl-cmdf "undo" "BEgin")
	(repeat (setq intCount (sslength SSET))
		(setq intCount		 (1- intCount)
					ENAM (ssname SSET intCOunt)
		ELST (entget ENAM)
		BNAM (cdr (assoc 2 ELST))
		FLST nil
		)
		(fix1 BNAM)
	)
	(vl-cmdf "undo" "End")
	(vl-cmdf "regen")
	(princ "Collected by lisp.vn")
	(princ)
)


Link tải (MediaFire)




---------------------------------------------------------------------------------------------
Ứng dụng được phát triển bởi đội ngũ AutoLISP Thật là đơn giản - Tác giả ứng dụng in D2P

    

Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:

Đăng nhận xét