Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
1 reply to this topic

#1 namng

namng

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 22 April 2008 - 09:11 AM

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á
  • 0

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 22 April 2008 - 01:09 PM

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)

  • 0