Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
namng

sửa lisp in toạ độ của một pline ra màn hình

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

Mình đang cần lấy toạ độ của một pline ra màn hình. Minh thấy có cái lisp này trong sách của ông NHL nhưng không chạy được. Bạn nào chỉnh hộ mình cái nha

**********************

(defun c:laytd()

(setq ENT (entsel "\nChon duong Polyline: " ))

(while (/="Polyline" (cdr (assoc ENT (entget(car ENT)))))

(setq ENT (entsel "\nChon duong Polyline: " ))

)

(setq EL '()

ENT (entnext (car ENT))

)

(while

(/="SEQEND" (cdr (assoc 0 (entget ENT))))

(setq EL (append EL (list (cdr (assoc 10 (entget ENt)))))

ENT (entnext ENT)

)

)

(princ "\nToa doc cac diem: ")(princ EL)

(princ)

)

*******************

Ban nào chỉnh hộ lisp để xuất toạ độ đó ra file *.txt thì tốt quá

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
Mình đang cần lấy toạ độ của một pline ra màn hình. Minh thấy có cái lisp này trong sách của ông NHL nhưng không chạy được. Bạn nào chỉnh hộ mình cái nha

**********************

(defun c:laytd()

(setq ENT (entsel "\nChon duong Polyline: " ))

(while (/="Polyline" (cdr (assoc ENT (entget(car ENT)))))

(setq ENT (entsel "\nChon duong Polyline: " ))

)

(setq EL '()

ENT (entnext (car ENT))

)

(while

(/="SEQEND" (cdr (assoc 0 (entget ENT))))

(setq EL (append EL (list (cdr (assoc 10 (entget ENt)))))

ENT (entnext ENT)

)

)

(princ "\nToa doc cac diem: ")(princ EL)

(princ)

)

*******************

Ban nào chỉnh hộ lisp để xuất toạ độ đó ra file *.txt thì tốt quá

Cái này dành cho CAD 12,

Từ CAD14 trở đi, đối tượng Pline phẳng của ACAD trở thành LWPolyline và cấu trúc khác hẳn.

 

Muốn dùng lisp này, bạn phải convert LWPolyline thành Pline rồi dùng lisp trên, hoặc dùng lệnh LTD của lisp dưới đây:

 

(defun c:ltd ()
 (setq	ent (car (entsel "\nHay pick vao 1 doi tuong pline: "))
tt  (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x)))(entget ent)))
 )
 (princ "\nToa do cac diem: ")
 (princ tt)
 (princ)
)
(vl-load-com)

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


×