Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
quangthanhdu

xin lisp chuyển toạ độ z =0???

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

Em có một bãn vẽ 2D nhưng khi xem thuộc tính của đối tượng thì thấy toạ độ z khác giá trị không?? có rất nhiều đối lượng line và arc có thuộc tính như vậy! Xin hỏi có cái lisp nào chuyển toạ độ z=0 các đối tượng đó.Chân thành 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

Bạn đã post 30 bài rồi, vậy thì cũng nên tìm trên diễn đàn xem đã có vấn đề của mình chưa đã. Trong trường hợp của bạn thì đã có kha khá bài viết rồi. Ví dụ :

http://www.cadviet.com/cadtips/2817_Dua_ban_ve_ve_1_mat_phang_nhu_the_nao/47/

Ở đây mình viết tạm lisp FL này cho Arc,Line,Dim,Xline,block,Ray,Circle,LWPl lúc nào rảnh mình up thêm

 

(defun c:fl(/ ss etype)
 (setq ss (ssget '((-4 . "<OR")
	(0 . "LINE")
	(0 . "RAY")    
	(0 . "XLINE")
	(0 . "INSERT")
	(0 . "CIRCLE")
	(0 . "DIMENSION")
	(0 . "LWPOLYLINE")
	(0 . "ARC")
	(-4 . "OR>")	
	)))
(defun chDXF (dxf val ent) (entmod (subst (cons dxf val) (assoc dxf (entget ent)) (entget ent))))
(defun dxf (dxf ent) (cdr (assoc dxf (entget ent))))
(setq ss (acet-ss-to-list ss))
(foreach e ss
(setq etype (dxf 0 e))
(cond
	((= etype "LWPOLYLINE") (chDxf 38 0 e))
	((or (= etype "ARC")(= etype "CIRCLE")(= etype "INSERT"))(chdxf 10 (subst 0 (caddr (dxf 10 e)) (dxf 10 e)) e))
	((or (= etype "LINE")(= etype "DIMENSION")(= etype "XLINE")(= etype "RAY"))
	(chdxf 10 (subst 0 (caddr (dxf 10 e)) (dxf 10 e)) e)
	(chdxf 11 (subst 0 (caddr (dxf 11 e)) (dxf 11 e)) e)
	)

)
)
(princ "\n Free lisp from Cadviet.com @ketxu")
(princ)
)

  • Like 1
  • Vote tăng 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

Cho mình hỏi chút về lisp này?

(setq ss (acet-ss-to-list ss))

hàm này có td j vậy, mình tra help mà hổng có?

và (defun dxf (dxf ent)... ko cần phải thêm dấu "/" (defun dxf (/ dxf ent)...

Có phải chỉ có "/" khi biến là biến toàn cục, còn hàm con kia là biến cục bộ?

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

Đúng rồi đó bạn.

- (acet-ss-to-list sset) là hàm thuộc Expresstool, có tác dụng biến tập selection set lấy ra trong hàm (ssget) thành list các ename của các đối tượng

- (defun dxf (dxf ent)) : dxf và ent là 2 đối số của hàm con này.Chỗ này bạn bị hiểu ngược.Biến toàn cục thì không thể / (bỏ) nó đi sau khi kết thúc được. Còn nếu có /, nó sẽ bị loại bỏ giá trị sau khi hoàn thà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

em down list này về nhưng không thấy hiện tượng gì khi dùng lệnh FL cả đường thẳng vẫn có toạ độ Z khác không. NHờ bác chỉ giùm với. Em thường dùng lệnh MO nhưng đối với đường cong thì không đượ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

em down list này về nhưng không thấy hiện tượng gì khi dùng lệnh FL cả đường thẳng vẫn có toạ độ Z khác không. NHờ bác chỉ giùm với. Em thường dùng lệnh MO nhưng đối với đường cong thì không được

Mình viết 1 cái Quick Flat ở đây

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ạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×