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

[yêu cầu] sửa lisp nối line thành pline

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

Mình có 1 lisp nối nhiều line,pline thành 1 pline duy nhất khá hay tuy nhiên nó có nhược điểm là cứ line nào dính với nhau thì nó nối hết nên nhiều khi đối tượng nối gồm nhiều đối tượng không mong muốn

Mình nhờ các bạn sửa giúp mình là cho thêm 1 lựa chọn vào lisp như sau:

   - chọn một số line,pline cần nối

   - đưa ra lựa chọn: chỉ nối những line, pline đã lựa chọn hoặc nối cả những line, pline dính với line, pline đã lựa chọn

   - kết thúc lệnh

   - mình cám ơn nhiều

 

http://www.mediafire.com/download/dd0i0c0aavbfd31/noi_line.lsp

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ôi thấy chọn caí nào nối cái đó cho tiện.

 

(defun c:nn (/ tdt ssdt)
  (defun ObjName (ssdt /)  (cdr (assoc '0 (entget ssdt))))
  (defun MoPL (ssdt /) (= (cdr (assoc '70 (entget ssdt))) 0))
  
  (defun NoiPL (ssdt tdt /)
    (if (MoPL ssdt)
      (command ".PEDIT" ssdt "J" tdt "" "")
    )
  )
  (defun NoiLC (ssdt tdt /)  (command ".PEDIT" ssdt "Y" "J" tdt "" ""))
  
  (setq tdt  (ssget)
ssdt  (ssname tdt 0))
  (if (or (= (Objname ssdt) "LWPOLYLINE")
 (= (Objname ssdt) "POLYLINE"))
    (NoiPL ssdt tdt)
    (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
      (NoiLC ssdt tdt)
    )
  )
  (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

 

Tôi thấy chọn caí nào nối cái đó cho tiện.

 

(defun c:nn (/ tdt ssdt)
  (defun ObjName (ssdt /)  (cdr (assoc '0 (entget ssdt))))
  (defun MoPL (ssdt /) (= (cdr (assoc '70 (entget ssdt))) 0))
  
  (defun NoiPL (ssdt tdt /)
    (if (MoPL ssdt)
      (command ".PEDIT" ssdt "J" tdt "" "")
    )
  )
  (defun NoiLC (ssdt tdt /)  (command ".PEDIT" ssdt "Y" "J" tdt "" ""))
  
  (setq tdt  (ssget)
ssdt  (ssname tdt 0))
  (if (or (= (Objname ssdt) "LWPOLYLINE")
 (= (Objname ssdt) "POLYLINE"))
    (NoiPL ssdt tdt)
    (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
      (NoiLC ssdt tdt)
    )
  )
  (princ)
)

 

Cám ơn bạn Tot77 đã giúp đỡ nhưng mỗi cái có cái hay riêng chứ, khi có quá nhiều đối tượng cần nối hết với nhau nhưng với lisp của mình thì cần chọn 1 line cũng đã nối được rồi vẫn nhanh hơn

Bạn sửa lại lisp kia chọn cái nào nối cái đó cũng được nhưng mình phải nhớ cả 2 lệnh hơi vất vả. nên bạn có thể sửa lại như ý trên của mình được không?

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ôi thấy để 2 lệnh vẫn hay hơn, chứ mỗi lúc lại hỏi thì không tiện cho lắm.

 

Uhm, nghe theo lời khuyên của bạn vậy, mình làm nhiều thì cũng sẽ nhớ lệnh thôi mà :D

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  

×