Đến nội dung


Hình ảnh
- - - - -

[Đã xong] Lisp bẻ và nối đối tượng


  • Please log in to reply
6 replies to this topic

#1 beba

beba

    biết zoom

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

Đã gửi 01 June 2011 - 08:19 PM

Nhờ mấy anh viết dùm em cái Lisp bẻ và nối đối tượng :
Em có đường Line hoặc Polyline muốn tạo nhiều Đỉnh nhưng vẫn liền nhau
Bình thường em vẫn phải làm : dùng lệnh “BR” Break bẻ đối tượng các vi trí cần dùng sau đó dùng “PE” Pedit để nối lại các điểm đó ( vì làm Nova nên phải làm trên Cad 14)
Hoặc dùng “PE” Pedit -> Edit vertex -> Insert chọn vị trí cần tạo Đỉnh và chèn nút
Làm như vậy mất công và nhiều thao tác quá
Nên Nhờ anh viết giúp cái Lisp làm cho nhanh.
Cảm ơn
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 02 June 2011 - 05:29 PM

Nhờ mấy anh viết dùm em cái Lisp bẻ và nối đối tượng :
Em có đường Line hoặc Polyline muốn tạo nhiều Đỉnh nhưng vẫn liền nhau
Bình thường em vẫn phải làm : dùng lệnh “BR” Break bẻ đối tượng các vi trí cần dùng sau đó dùng “PE” Pedit để nối lại các điểm đó ( vì làm Nova nên phải làm trên Cad 14)
Hoặc dùng “PE” Pedit -> Edit vertex -> Insert chọn vị trí cần tạo Đỉnh và chèn nút
Làm như vậy mất công và nhiều thao tác quá
Nên Nhờ anh viết giúp cái Lisp làm cho nhanh.
Cảm ơn

Bạn dùng tạm, mình lấy trên mạng :
(defun c:ins(/ obj obj1 po str)
(setq obj (entsel "\n Select entity to insert vertex"))
(setq obj1 (car obj))
(setq po (cadr obj))
(if (/= (cdr (assoc 0 (entget (car obj)))) "LWPOLYLINE")
(progn
(alert "The selected line is not polyline")
(setq str (getstring "\n Do u want to continue: <y / n>"))
(cond
((= str "y")
(progn
(command "pedit" obj "")
(setq obj1 (entlast))
));cond
);cond
));if
(if (= (cdr (assoc 0 (entget obj1))) "LWPOLYLINE")
(progn
(command "break" obj1 po po)
(command "pedit" obj1 "j" (entlast) "" "")
))
)
Hoặc theo link này lấy vài cái khác futher hơn
AddVertex
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 beba

beba

    biết zoom

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

Đã gửi 02 June 2011 - 09:01 PM

Cám ơn anh Ketxu đã giúp cái lisp "INS" em dùng nó không được
Em có lượm lặt rồi sửa lại sơ qua cái lisp này ( không biết có đúng không nữa)
[code]
(Defun C:nut()
(setq c-cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(princ)
(setq ss (ssget))
(setvar "cmdecho" c-cmd)
(if (/= ss nil)
(command "pedit" ss "" "e" "i")
)
)

Nhưng sao nó chỉ cho tạo đỉnh trên Line còn khi đã chuyển sang PLine thì nó lại không cho
Có gì sai nhờ anh Ketxu chỉnh sửa lại giúp.
Cảm ơn
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 02 June 2011 - 09:18 PM

Nhưng sao nó chỉ cho tạo đỉnh trên Line còn khi đã chuyển sang PLine thì nó lại không cho
Có gì sai nhờ anh Ketxu chỉnh sửa lại giúp.
Cảm ơn

Mình chưa rõ cái lisp của bạn cop nó mần chi, lẽ nào Pedit cả tập chọn ss ^^.
Mình sửa lại như thế này, làm mỗi lần 1 điểm, nếu bạn thích giống CAD thì bỏ phần pause "x" "" đi.
(defun C:nut()
(setq ent (car(entsel "\n Chon doi tuong")))
(cond ((=(cdadr (entget ent)) "LINE")(command "pedit" ent "" "E" "I" pause "x" ""))
((=(cdadr (entget ent)) "*POLYLINE")(command "pedit" ent "E" "I" pause "x" ""))
)
)

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 beba

beba

    biết zoom

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

Đã gửi 05 June 2011 - 09:33 PM

Cảm ơn anh Ketxu cái lisp Nut. Mục đích của lisp là đúng rồi, làm trên Line thì tốt.
Nhưng sao "chọn đối tượng" là PLine thì không được
  • 0

#6 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 06 June 2011 - 11:15 AM

Ket đã tính ^^ vì thế vẫn giữ lisp cũ ở trên ^^ muốn chèn vào vị trí bất kỳ thì bài đầu tiên trả lời beba đã có lisp, kể cả lisp yêu cầu beba bỏ chữ pause đi
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#7 beba

beba

    biết zoom

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

Đã gửi 06 June 2011 - 08:38 PM

Em dùng thấy ngon rồi, đỡ bớt nhiều thao tác trong khi lam Cad
Cảm ơn anh Ketxu nhiều, cảm ơn các anh đã góp ý
  • 0