Chuyển đến nội dung
Diễn đàn CADViet
Nguyen Hoanh

Viết Lisp theo yêu cầu

Các bài được khuyến nghị

Tìm lisp gán layer cho các đối tượng rời rạc có nội dung như sau:

VD: trên màn hình là 3 đối tượng rởi như :pline, box, rectang

khi chọn các đối tượng trên thì chương trình tự động gán cho mỗi đối tượng

rời trên 1 layer (không quan trọng thứ tự)

khi nhìn vào bảng layer thấy:

pline thuộc lớp tên là layer1

box thuộc lớp tên là layer2

rectang thuộc lớp tên là layer3

có bác nào biết không ạ?

 

Lệnh là GAN:

tìm LWPOLYLINE có số đỉnh khác 4 gán vào layer1

tìm POLYLINE (là box) gán vào layer2

tìm LWPOLYLINE có số đỉnh bằng 4 (là rectangle) gán vào layer3

 

(defun c:gan()

(command ".chprop" (ssget "X" '((0 . "LWPOLYLINE")(-4 . "/=")(90 . 4))) "" "La" "LAYER1" "")

(command ".chprop" (ssget "X" '((0 . "POLYLINE"))) "" "La" "LAYER2" "")

(command ".chprop" (ssget "X" '((0 . "LWPOLYLINE") (90 . 4))) "" "La" "LAYER3" "")

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thanks bác Hoanh.

Em đang tìm 1 lisp nữa có nội dung như sau:

gọi là lisp vẽ đường giao giữa các khối solid

khi chạy lisp hỏi chọn các đối tượng solid, chương trình sẽ nhận ra được

các đường giao giữa các khối solid và tự động vẽ (bằng arc, line hoặc thậm chí là Spline)

các đường giao đó.

(tức là em không muốn hợp 2 khối dạng union mà là 2 khối riêng biệt nhưng vẫn

nhìn thấy được các đường giao)

ví dụ: trên màn hình là 2 solid: 1 box nằm ngang, 1 box đứng( box đứng ở giữa, nằm gọn trong box ngang)

chạy lisp chọn 2 solid trên thì chương trình tự động vẽ 4 đường giao của 2 box (giống như 1 hình chữ nhật ấy)

(bình thương thì phải hợp union mới nhìn thấy được)

thanks các bác trước?!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Hình như là chỉ đúng với Cad 2005 thôi. Con Cad 2007 giao diện khác hẳn, không làm thế được. Mà theo cách cua a Hoanh hướng dẫn thì vẫn chưa làm cho nó thành lệnh con của tất cả các lệnh. Ví dụ như mình muốn copy đến một phần bản vẽ không nhìn thấy, sau đây dùng lệnh tắt Alt + D mà vẫn không ra khỏi lệnh copy, thì thực hiện vẫn không được . Nho các cao thủ tiếp tục chỉ giúp.

 

Mình thấy nó cũng giống cad 2005 nhưng nó ưu điểm hơn.

bạn vào tool /customize /interface. Trong tab customize chon keyboard / shot key /

dưới dòng comand list. bạn chọn cái lệnh nào mà có dấu "'" đằng trước. ví dụ lệnh zoom window. Sau đó kéo thả vào mục keyboard shotkey.

chọn lại vào dòng lệnh zoom window. phía bên phải xuất hiện một dòng properti . bạn chọn tab key. nhấp đôi chuột sau đó đánh phím tắt vào. Lưu ý phim tắt không được trùng với các phím tắt mặc định. sau đó ok.

Khi bạn đang thực hiện bất cứ lệnh nào. bạn vẫn có thể dùng thêm lệnh zoom window vô tư (chẳng hạn phong tỏ một điểm nào đó để truy bắt điểm).

giống y như "'z" nhưng nhanh hơn.

 

Mình không biết chèn hình anh vào bài viết nên viết hơi khó hình dung . nhưng làm rồi thấy đơn giản lắm

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tìm lisp gần giống lisp ẩn hiện đối tượng chọn đã có trên diễn đàn là vis, invis nhưng hơi khác 1 chút:

như sau:

khi chạy lisp hỏi chọn đối tượng cần giữ lại

sau đó nó sẽ giữ lại đối tượng chọn và ẩn đi tất cả các đối tượng khác không được chọn

(với invis thì lại là ẩn đi các đối tượng chọn, giữ lại các đối tượng không được chọn)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nhờ bác Hoành chỉnh giúp đoạn lisp này với:

Chức năng vẽ nét cắt lững bằng cách chọn điểm đầu và điểm cuối.

Đả mặc định hình dáng và độ lớn cho dấu cắt.

Muốn thay đổi độ lớn dấu cắt thì gỏ D sau đó nhập độ lớn mới vào.

Nếu không nhập độ lớn mới mà bấm Enter thì bị lổi. Bcác có cách nào chỉ giúp với.

(Nếu nhập giá trị mới thì chạy bình thường)

 

Xin lổi vì chưa gửi được code theo bài hỏi trên.

không hiểu sao gửi co de thì cứ báo là phải gỏ tiếng việt có dấu.

Có cách nào khắc phục không các bác ??????????

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn thử post lại đi!

May quá hôm nay gửi được rồi nhờ bác xem giúp cái !!!!!!!!!

(defun C:dcl ( )
(setvar "MODEMACRO" "VE NAT CAT LUNG")
(princ "\nPHAM QUOC DUY Binh Son - Quang ngai")
 (if (null kieudau)(setq kieudau "Z"))
 (if (null dolondaucatt)(setq dolondaucatt "100"))
(Setq temp T)
(While temp
(setq a (strcat "\nKieu dau hien hanh la("kieudau")/ Do lon dau cat (" dolondaucatt ") <Diem chen dau tien>: "))  
(Initget "k K d D")
(setq str (getpoint a))
(Cond
 ((= str "K") (setq kieudau (strcase (getstring 5"\nKieu dau cat < Z hay S hay N > : "))))
 ((= str "k") (setq kieudau (strcase (getstring 5"\nKieu dau cat < Z hay S hay N > : "))))
 ((= str "d") (setq dolondaucatt (getstring (strcat"\nDo lon mui ten <" dolondaucatt "> :"))))
 ((= str "D") (setq dolondaucatt (getstring (strcat"\nDo lon mui ten <" dolondaucatt "> :"))))
  (Progn
 (Setq a str)
  (setq temp nil)
 )
)
)
 (setq b (getpoint a"\nDiem thu hai: "))


 (luuos)
 (setvar "osmode" 0)

    (setq dolondaucat (atof dolondaucatt)) 
 (setq  daitong (distance a :unsure:)
 (setq  daitru (- daitong dolondaucat))
 (setq  dainua (/ daitru 2))
 (setq  daicong (+ dainua dolondaucat))
    (setq goc(angle a :unsure:)
    (setq c (polar a goc dainua))
    (setq d (polar a goc daicong))
 (setq  ngannua (/ dolondaucat 2))
 (setq  nganmot (/ dolondaucat 4))
 (setq  nganba (* nganmot 3))
 (setq  gocp (- goc (/ pi 2)))
   (setq e (polar c gocp ngannua))
 (setq  goct (+ goc (/ pi 2)))
   (setq f (polar d goct ngannua))
   (setq g (polar a goc (/ daitong 2)))
   (setq h (polar g goct dolondaucat))
   (setq i (polar g gocp dolondaucat))
   (setq k (polar c goc nganmot))
   (setq l (polar k goct ngannua))
   (setq m (polar c goc nganba))
   (setq n (polar m gocp ngannua))


(Cond
((= "Z" kieudau)   
(command ".Pline" a c e f d b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
((= "N" kieudau)   
(command ".Pline" a c h i d b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
((= "S" kieudau)   
(command ".Pline" a c "a" "s" l g "s" n d "l" b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
)


(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI")
 (traos)



     (Prin I)
)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

em đang cần 1 lisp lọc đối tượng theo màu có nội dung như sau:

khi chạy lisp hỏi chọn đối tượng bất kỳ

chương trình sẽ tự độg lọc tất cả các đối tượng có cùng màu với

đối tượng vừa chọn, sau đó ẩn các đối tượng khác không cùng màu đó đi.

lisp thứ hai là hiện tất cả các đối tượng.

Thanks các bác truoc !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
em đang cần 1 lisp lọc đối tượng theo màu có nội dung như sau:

khi chạy lisp hỏi chọn đối tượng bất kỳ

chương trình sẽ tự độg lọc tất cả các đối tượng có cùng màu với

đối tượng vừa chọn, sau đó ẩn các đối tượng khác không cùng màu đó đi.

lisp thứ hai là hiện tất cả các đối tượng.

Thanks các bác truoc !

Mình không dành về Lisp nhiều nhưng với trường hợp của bạn thì có thể dùng lệnh Fi (Filters), lọc đối tượng theo yêu cầu của bạn sau đó dùng lệnh invis của lisp hideshow đã được đề cập trong diễn đàn. Còn muốn hiện chúng ra dùng lệnh vis.

http://www.cadviet.com/forum/index.php?sho...amp;hl=hideshow

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Lệnh CINVIS dưới đây giống lệnh INVIS ở trên nhưng ẩn đối tượng theo màu.

 

(defun c:CInVis	(/ SSet Count Elem)
 (defun Dxf (Id Obj)
   (cdr (assoc Id (entget Obj)))
 )					;end Dxf
 (cond
   ((setq SSet
    (ssget
      "X"
      (filterchondttheomau
	(maucuadoituong
	  (car (entsel "\nHay pick vao doi tuong de chon mau: ")
	  )
	)
      )
    )
    )
    (repeat (setq Count (sslength SSet))
      (setq Count (1- COunt)
     Elem  (ssname SSet Count)
      )
      (if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem)))))
 (if (Dxf 60 Elem)
   (entmod
     (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem))
   )
   (entmod (append (entget Elem) (list '(60 . 1))))
 )
 (prompt
   "\nEntity on a locked layer. Cannot hide this entity. "
 )
      )				;end if
    )					;end repeat
   )
 )					;end cond
 (princ)
)					;end c:InVis
(defun maucuadoituong (ent)
 (setq	tt   (entget ent)
chon (assoc 62 tt)
 )
 (cond
   (chon (cdr chon))
   (t (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 tt))))))
 )
)
(defun filterchondttheomau (mau)
 (defun chonlayertheomau (mau / kq)
   (setq curlay (tblnext "LAYER" t))
   (while curlay
     (if (= mau (cdr (assoc 62 curlay)))
(setq kq (append kq (list (cdr (assoc 2 curlay)))))
     )
     (setq curlay (tblnext "LAYER"))
   )
   kq
 )
 (setq	filterlist
	   nil
taplayer   (chonlayertheomau mau)
 )
 (foreach pp taplayer
   (setq filterlist
   (append filterlist
	   (list (cons -4 "			 (cons 62 256)
		 (cons 8 pp)
		 (cons -4 "AND>")
	   )
   )
   )
 )
 (setq	filterlist
 (append (list (cons -4 "		 filterlist
	 (list (cons -4 "OR>"))
 )
 )
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Xin lisp gán layer cho đối tượng có nội dung như sau:

khi chọn đối tượng trên màn hình thì chương trình tự động gán đối tượng đó vào lớp hiện thời,

nhưng không làm thay đôit màu đối tượng (lớp current ở góc trên bên trái)

Và 1 lisp nữa gọi là lisp tạo lớp:

tên lệnh là: taolop khi chạy lisp hỏi

-gõ tên lớp mới (vd: cua)

thì góc trên bên trái xuất hiện lớp cua (là lớp hiện thời luôn)

màu lấy mặc định là trắng.

Nếu tên lớp bị trùng thì không tạo mà đưa lớp có tên đó lên là lớp hiện thời

thanks!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Xin lisp gán layer cho đối tượng có nội dung như sau:

khi chọn đối tượng trên màn hình thì chương trình tự động gán đối tượng đó vào lớp hiện thời,

nhưng không làm thay đôit màu đối tượng (lớp current ở góc trên bên trái)

Và 1 lisp nữa gọi là lisp tạo lớp:

tên lệnh là: taolop khi chạy lisp hỏi

-gõ tên lớp mới (vd: cua)

thì góc trên bên trái xuất hiện lớp cua (là lớp hiện thời luôn)

màu lấy mặc định là trắng.

Nếu tên lớp bị trùng thì không tạo mà đưa lớp có tên đó lên là lớp hiện thời

thanks!

Tên lệnh là LL và SS

(defun c:LL (/ tenlayer dt )  
 (command ".chprop" (ssget) "" "LA" (getvar "CLAYER") "")  
 (princ)
)

(defun c:ss()
 (command ".layer" "m" (getstring t "\nTen layer moi: ") "")
 (princ)
)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em đang cần lisp có nội dung như sau:

Tải lisp gõ:

sh là cảnh nhìn khi vào view->Shade->hidden

s2 là cảnh nhìn khi vào view->Shade->2D wirerame

s3 là cảnh nhìn khi vào view->Shade->3D wirerame

em cám ơn nhiều !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Em đang cần lisp có nội dung như sau:

Tải lisp gõ:

sh là cảnh nhìn khi vào view->Shade->hidden

s2 là cảnh nhìn khi vào view->Shade->2D wirerame

s3 là cảnh nhìn khi vào view->Shade->3D wirerame

em cám ơn nhiều !

Bạn tự viết đi, tôi sẽ sửa.

 

Bạn nhớ nhìn xem ACAD sử dụng lệnh gì cho menu, thì mình sử dụng lệnh đó!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn tự viết đi, tôi sẽ sửa.

 

Bạn nhớ nhìn xem ACAD sử dụng lệnh gì cho menu, thì mình sử dụng lệnh đó!

Em viết như sau, anh xem giúp:

(defun c:sh()

(command ".view" "_hidden")

)

(defun c:s2()

(command ".view" "_2D wireframe")

)

(defun c:s3()

(command ".view" "_3D wireframe")

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Xin lisp có nội dung như sau:

khi chạy lisp hỏi :

chọn 1 line

nhập bán kính đường tròn (có thể pick 2 điểm trên màn hình nếu không nhập số)

Chương trình sẽ vẽ 1 circle bán kính như vừa nhập vuông góc với line

(line đâm xuyên qua tâm đường tròn và vuông góc với mặt phẳng circle)

(line là bất kỳ trong không gian)

thanks !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Em viết như sau, anh xem giúp:

(defun c:sh()

(command ".view" "_hidden")

)

(defun c:s2()

(command ".view" "_2D wireframe")

)

(defun c:s3()

(command ".view" "_3D wireframe")

)

Cách làm của bạn là đúng rồi. Tuy nhiên cụ thể thì chưa đúng.

 

Sau khi bạn dùng lệnh bằng cách chọn menu, bạn hãy nhấn F2 để xem toàn bộ các lệnh mà AutoCAD đã dùng chứ không theo những gì được viết trên menu. Ví dụ: sau khi ta vào: View > Visual Styles > 2D Wire frame, ACAD2008 sẽ thông báo như sau:

Command: _vscurrent

Enter an option [2dwireframe/3dwireframe/3dHidden/Realistic/Conceptual/Other]

: _2

 

Như vậy, chúng ta sẽ viết mã lisp khi chuyển về 2D wireframe là:

(defun c:s2() (command "_vscurrent" "_2"))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

(defun C:dcl ( )
(setvar "MODEMACRO" "VE NAT CAT LUNG")
(princ "\nPHAM QUOC DUY Binh Son - Quang ngai")
 (if (null kieudau)(setq kieudau "Z"))
 (if (null dolondaucatt)(setq dolondaucatt "100"))
(Setq temp T)
(While temp
(setq a (strcat "\nKieu dau hien hanh la("kieudau")/ Do lon dau cat (" dolondaucatt ") <Diem chen dau tien>: "))  
(Initget "k K d D")
(setq str (getpoint a))
(Cond
 ((= str "K") (setq kieudau (strcase (getstring 5"\nKieu dau cat < Z hay S hay N > : "))))
 ((= str "k") (setq kieudau (strcase (getstring 5"\nKieu dau cat < Z hay S hay N > : "))))
 ((= str "d") (setq dolondaucatt (getstring (strcat"\nDo lon mui ten <" dolondaucatt "> :"))))
 ((= str "D") (setq dolondaucatt (getstring (strcat"\nDo lon mui ten <" dolondaucatt "> :"))))
  (Progn
 (Setq a str)
  (setq temp nil)
 )
)
)
 (setq b (getpoint a"\nDiem thu hai: "))
 (luuos)
 (setvar "osmode" 0)

    (setq dolondaucat (atof dolondaucatt)) 
 (setq  daitong (distance a :unsure:)
 (setq  daitru (- daitong dolondaucat))
 (setq  dainua (/ daitru 2))
 (setq  daicong (+ dainua dolondaucat))
    (setq goc(angle a :unsure:)
    (setq c (polar a goc dainua))
    (setq d (polar a goc daicong))
 (setq  ngannua (/ dolondaucat 2))
 (setq  nganmot (/ dolondaucat 4))
 (setq  nganba (* nganmot 3))
 (setq  gocp (- goc (/ pi 2)))
   (setq e (polar c gocp ngannua))
 (setq  goct (+ goc (/ pi 2)))
   (setq f (polar d goct ngannua))
   (setq g (polar a goc (/ daitong 2)))
   (setq h (polar g goct dolondaucat))
   (setq i (polar g gocp dolondaucat))
   (setq k (polar c goc nganmot))
   (setq l (polar k goct ngannua))
   (setq m (polar c goc nganba))
   (setq n (polar m gocp ngannua))
(Cond
((= "Z" kieudau)   
(command ".Pline" a c e f d b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
((= "N" kieudau)   
(command ".Pline" a c h i d b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
((= "S" kieudau)   
(command ".Pline" a c "a" "s" l g "s" n d "l" b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
)
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI")
 (traos)

     (Prin I)
)

 

 

Có vẻ bác Hoành bận rộn quá! Cao thu nào giúp mình chỉnh đoạn lisp nay với. cám ơn

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Xin lisp có nội dung như sau:

khi chạy lisp hỏi :

chọn 1 line

nhập bán kính đường tròn (có thể pick 2 điểm trên màn hình nếu không nhập số)

Chương trình sẽ vẽ 1 circle bán kính như vừa nhập vuông góc với line

(line đâm xuyên qua tâm đường tròn và vuông góc với mặt phẳng circle)

(line là bất kỳ trong không gian)

thanks !

 

Lệnh là TRON

(defun c:tron()
(setq r (getdist "\nNhap ban kinh duong tron: "))
(command ".ucs" "za" "o" (entsel "\nVao doan line: "))
(command ".circle" "0,0,0" r)
(command ".ucs" "p")
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
(defun C:dcl ( )
(setvar "MODEMACRO" "VE NAT CAT LUNG")
(princ "\nPHAM QUOC DUY Binh Son - Quang ngai")
 (if (null kieudau)(setq kieudau "Z"))
 (if (null dolondaucatt)(setq dolondaucatt "100"))
(Setq temp T)
(While temp
(setq a (strcat "\nKieu dau hien hanh la("kieudau")/ Do lon dau cat (" dolondaucatt ") : "))  
(Initget "k K d D")
(setq str (getpoint a))
(Cond
 ((= str "K") (setq kieudau (strcase (getstring 5"\nKieu dau cat  : "))))
 ((= str "k") (setq kieudau (strcase (getstring 5"\nKieu dau cat  : "))))
 ((= str "d") (setq dolondaucatt (getstring (strcat"\nDo lon mui ten  :"))))
 ((= str "D") (setq dolondaucatt (getstring (strcat"\nDo lon mui ten  :"))))
  (Progn
 (Setq a str)
  (setq temp nil)
 )
)
)
 (setq b (getpoint a"\nDiem thu hai: "))
 (luuos)
 (setvar "osmode" 0)

    (setq dolondaucat (atof dolondaucatt)) 
 (setq  daitong (distance a :unsure:)
 (setq  daitru (- daitong dolondaucat))
 (setq  dainua (/ daitru 2))
 (setq  daicong (+ dainua dolondaucat))
    (setq goc(angle a :unsure:)
    (setq c (polar a goc dainua))
    (setq d (polar a goc daicong))
 (setq  ngannua (/ dolondaucat 2))
 (setq  nganmot (/ dolondaucat 4))
 (setq  nganba (* nganmot 3))
 (setq  gocp (- goc (/ pi 2)))
   (setq e (polar c gocp ngannua))
 (setq  goct (+ goc (/ pi 2)))
   (setq f (polar d goct ngannua))
   (setq g (polar a goc (/ daitong 2)))
   (setq h (polar g goct dolondaucat))
   (setq i (polar g gocp dolondaucat))
   (setq k (polar c goc nganmot))
   (setq l (polar k goct ngannua))
   (setq m (polar c goc nganba))
   (setq n (polar m gocp ngannua))
(Cond
((= "Z" kieudau)   
(command ".Pline" a c e f d b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
((= "N" kieudau)   
(command ".Pline" a c h i d b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
((= "S" kieudau)   
(command ".Pline" a c "a" "s" l g "s" n d "l" b "")
         (COMMAND ".PEDIT" "last" "W" "0" "") 
)
)
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI")
 (traos)

     (Prin I)
)

Có vẻ bác Hoành bận rộn quá! Cao thu nào giúp mình chỉnh đoạn lisp nay với. cám ơn

Bạn xem lại mã lệnh!

Tập mã lệnh hiện đang thiếu dấu ")"

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn xem lại mã lệnh!

Tập mã lệnh hiện đang thiếu dấu ")"

 

À xin lổi không thiếu dấu ")" chắc là thiếu cái này:

 

;;----------
(defun luuos ()
 (setq
   DUY_OSMODE   (getvar "OSMODE")
   DUY_AUTOSNAP (getvar "AUTOSNAP")
  DUY_LAYERHH (getvar "CLAYER")
  DUY_THANGXEOHH (getvar "ORTHO")
  DUY_filletrad (getvar "FILLETRAD")
 DUY_TEXTSTYLE (getvar "TEXTSTYLE")
  )
)
(defun traos ()
 (if DUY_OSMODE
   (setvar "OSMODE" DUY_OSMODE)
 )
 (if DUY_LAYERHH
   (setvar "CLAYER" DUY_LAYERHH)
 )
 (if DUY_THANGXEOHH
   (setvar "ORTHO" DUY_THANGXEOHH)
 )
 (if DUY_AUTOSNAP
   (setvar "AUTOSNAP" DUY_AUTOSNAP)
 )
(if DUY_filletrad
   (setvar "FILLETRAD" DUY_filletrad)
 )
(if DUY_TEXTSTYLE
   (setvar "TEXTSTYLE" DUY_TEXTSTYLE)
 )


)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Lệnh là TRON

(defun c:tron()
(setq r (getdist "\nNhap ban kinh duong tron: "))
(command ".ucs" "za" "o" (entsel "\nVao doan line: "))
(command ".circle" "0,0,0" r)
(command ".ucs" "p")
)

 

lisp không chạy bác à (em đã sửa số "0" bác viết nhầm là chữ "o" ở gần "za")

Command: tron

Nhap ban kinh duong tron: Specify second point: .ucs

Current ucs name: *WORLD*

Enter an option [New/Move/orthoGraphic/Prev/Restore/Save/Del/Apply/?/World]

<World>: za

Specify new origin point <0,0,0>: 0

Specify point on positive portion of Z-axis <5.4410,4.0135,1.0000>:

Vao doan line:

Invalid point.

; error: Function cancelled

Specify point on positive portion of Z-axis <5.4410,4.0135,1.0000>: *Cancel*

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
À xin lổi không thiếu dấu ")" chắc là thiếu cái này:

Nối thử đoạn mã này với đoạn mã trước thấy vẫn sai.

Bạn hãy copy y nguyên đoạn mã hoàn chỉnh chạy đúng ở máy bạn lên diễn đàn.

Như thế này chẳng biết mã của bạn đang viết gì nữa.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×