18/10/2025

Lisp vẽ ống mềm S1 nâng cấp | AutoLISP Reviewer

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

Lưu ý: SS1 và SS2 chỉ hoạt động khi lệnh vẽ S1/S2 đã được load!!!
Thông tin thêm: 👉👉👉

Lệnh SS1 và SS2

Tối ưu thao tác vẽ S1 và S2:
- Vẽ SPLINE trực tiếp, áp dụng S1 hoặc S2
- Lưu thông số mặc định

Tải file lisp bên dưới hoặc tham gia nhóm MEP Tools để tìm hiểu cách dùng.

Lưu ý: SS1 và SS2 chỉ hoạt động khi lệnh vẽ S1/S2 đã được load!!!

1 Thêm class SS1 và SS2 by lisp.vn.lsp

Lưu mã sau dưới dạng tệp tin SS1 và SS2 by lisp.vn.lsp
Code:
(setq *run_s* T)
(setq *run_s2* T)
(defun C:SS1 (/ lw spline_obj)
	(if *run_s*
		(progn
			;; Khởi tạo biến toàn cục để lưu LineWeight mặc định (nếu chưa có, mặc định là 0.25)
		  (if (not last_lineweight) (setq last_lineweight 250))
		  
		  ;; Sử dụng initget để đảm bảo nhập số thực không âm
		  (initget 128)
		  (setq lw (getreal (strcat "\nNhap do day duong <" (rtos last_lineweight 2 2) ">: ")))
		  
		  ;; Nếu người dùng nhấn Enter, sử dụng giá trị mặc định
		  (if (not lw) 
			  (setq lw last_lineweight)
			  (setq last_lineweight lw)
			) ; Lưu giá trị mới làm mặc định cho lần sau
		  
		;; Gọi lệnh Spline để người dùng vẽ 
			(command "_.SPLINE")
			(while (> (getvar "CMDACTIVE") 0) (command pause))

		;; Lấy đối tượng Spline vừa vẽ
			(setq spline_obj (entlast))

		;; Áp dụng LineWeight cho Spline 
			(if spline_obj 
				(progn 
					(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) (strcat "S1\r" (rtos lw 2 2) "\r" "_S" "\r_L\r"))
					;(princ (strcat "\nĐã áp dụng LineWeight " (rtos (/ lw 100.0) 2 2) " cho Spline."))
					(setq *run_s* nil) 
					(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) (strcat "SS1\r"))
				)
				(princ "\nKhông tìm thấy Spline vừa vẽ.")
			)
		)
		(setq *run_s* T)
	)
	(princ "Edited By lisp.vn")
	(princ)
)
(defun C:SS2 (/ lw spline_obj)
	(if *run_s2*
		(progn
			;; Khởi tạo biến toàn cục để lưu LineWeight mặc định (nếu chưa có, mặc định là 0.25)
		  (if (not last_lineweight) (setq last_lineweight 250))
		  
		  ;; Sử dụng initget để đảm bảo nhập số thực không âm
		  (initget 128)
		  (setq lw (getreal (strcat "\nNhap do day duong <" (rtos last_lineweight 2 2) ">: ")))
		  
		  ;; Nếu người dùng nhấn Enter, sử dụng giá trị mặc định
		  (if (not lw) 
			  (setq lw last_lineweight)
			  (setq last_lineweight lw)
			) ; Lưu giá trị mới làm mặc định cho lần sau
		  
		;; Gọi lệnh Spline để người dùng vẽ 
			(command "_.SPLINE")
			(while (> (getvar "CMDACTIVE") 0) (command pause))

		;; Lấy đối tượng Spline vừa vẽ
			(setq spline_obj (entlast))

		;; Áp dụng LineWeight cho Spline 
			(if spline_obj 
				(progn 
					(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) (strcat "S2\r" (rtos lw 2 2) "\r" "_S" "\r_L\r"))
					;(princ (strcat "\nĐã áp dụng LineWeight " (rtos (/ lw 100.0) 2 2) " cho Spline."))
					(setq *run_s2* nil) 
					(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) (strcat "SS2\r"))
				)
				(princ "\nKhông tìm thấy Spline vừa vẽ.")
			)
		)
		(setq *run_s2* T)
	)
	(princ "Edited By lisp.vn")
	(princ)
)


Lưu ý: SS1 và SS2 chỉ hoạt động khi lệnh vẽ S1/S2 đã được load!!!


Nhóm MEP Tools




---------------------------------------------------------------------------------------------
Ứ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

Xuất toàn bộ cài đặt AutoCAD sang máy khác | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản     Thông tin thêm: 👉👉👉