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.
Đăng nhập để thực hiện theo  
phamthe

[Yêu cầu] nhờ sửa lisp vẽ Pline tự động

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

phamthe    1

nhờ các anh sửa giúp đoạn code dưới đây nối các điểm Point lại với nhau thành Pline bằng đưa chuột đến các điểm nhưng có thể không cần quét chọn các điểm Point trước, mà nó tự hiểu khi mình đưa chuột tới gần điểm nào thì nó tự bắt điểm đó, có thể Zoom to khi cần bắt điểm gần nhau và có thể Undo khi bắt điểm sai với!

(defun c:AutoPL ( / *ModSpc *ActDoc *acad ss sslen junk done pnt ep )
  (setq *ModSpc (vlax-get-property (setq *ActDoc (vlax-get-property (setq *acad (vlax-get-acad-object)) 'ActiveDocument)) 'ModelSpace))
  (princ "\nSelect Point Objects:")
  (if
   (and
     (setq ss (ssget '(( 0 . "POINT"))))     (setq junk (getpoint "\nClick to Start")))
   (progn
      (setq sslen (sslength ss))
      (setq drawn nil)
      (setq done nil)
      (while
 (and (= 5 (car (setq pnt (grread T 1 0)))) (= done nil))
 (setq ep (is_nearest ss (nth 1 pnt)))
 (cond
   ((= drawn nil)(progn
     (setq drawn (list (car ep)))
     (drx (vlax-safearray->list (vlax-variant-value (vlax-get-Property (vlax-ename->vla-object (car ep)) 'Coordinates))))))
   ((= (length drawn) 1)(if (not (is_drawn (car ep)))
     (progn
       (setq drawn (cons (car ep) drawn))
       (drx (vlax-safearray->list (vlax-variant-value (vlax-get-Property (vlax-ename->vla-object (car ep)) 'Coordinates)))))))
   ((>= (length drawn) 2)(if (not (is_drawn (car ep)))
      (progn
        (setq drawn (cons (car ep) drawn))
        (drx (vlax-safearray->list (vlax-variant-value (vlax-get-Property (vlax-ename->vla-object (car ep)) 'Coordinates)))))))
   )
 (if (= sslen (length drawn))
   (setq done T)))
      (setq pl-obj (vlax-invoke-method *ModSpc 'Addpolyline (pl->var (drawn->pntlist)))))
    (exit))
  (princ)
  )

BAN VẼ TEST http://www.cadviet.com/upfiles/3/116810_drawing_test.dwg

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
phamthe    1

nhờ các anh quan tâm và giúp em với, hiện tại nó ổn cho các điểm cách xa nhau, nhưng nếu các điểm gần nhau nó cứ bắt loạn xạ không theo ý muốn, zoom to hoặc Pan thì nó dừng luôn. bởi vậy nhờ các anh giú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

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  

×