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  
AGi

Thêm node vào đường Pline

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

dunguss3581    5

không biết mục đích của bạn có phải tạo thêm các nút trên pline để nắn mềm bình độ không, nếu phải thì mình có đoạn code này có thể giúp bạn được:

====================================
SUA DUONG BINH DO:
====================================
(defun C:SS (/ 	Thoi   chon3  chon  Chon1 ChonC  Chon1  ZC
 	S 	PTD	PTC   PL  PTT DongMucGoc
 	DongMucCuoi   X   Y  Z XT 	YT 	XC
 	YC 	Layer  I   D
)
 (command "_layer" "m" "SUA" "c" "2" "" "")
 (command "osmode" 512)
;(print "         		! LOAI DUONG DONG MUC PHAI LA POLYLINE MOI SUA DUOC !")
;(print "        	! De chuyen sang POLYLINE: dung ARGIC mo file VA EXPORT TO CAD !")
 (setq PTD (getpoint "\nCHON DIEM DAU TIEN XUAT PHAT TU BINH DO"))
 (command "osmode" 0)
 (setq Chon (ssget PTD))
 (setq Chon1 (ssname Chon 0))
 (setq DongMucGoc (entget Chon1))
 (setq Z (last (assoc 10 DongMucGoc)))
 (setq PL '())
 (setq X   (car PTD)
Y   (cadr PTD)
PTD (list X Y Z))
 (setq PL (append PL (list PTD)))
 (setq Layer (cdr (assoc 8 DongMucGoc)))
 (setq DongMucGoc
 (subst (cons 8 "SUA") (assoc 8 DongMucGoc) DongMucGoc)  )
 (entmod DongMucGoc)
 (setq Thoi 0)
 (setq PT1 PTD)
 (command "_layer" "m" "PLSUA" "c" "3" "" "")
 (while (= Thoi 0)
(if (= (setq PTT
(getpoint
 	"\nCHON DIEM TIEP THEO!!! bam CHUOT PHAI hoac ENTER truoc khi chon diem cuoi cung !!!")) nil)
 	(progn (setq Thoi 1)
(command "osmode" 512)) 	;end progn
 	(progn
(setq XT  (car PTT)
  	YT  (cadr PTT)
  	PTT (list XT YT Z))
(command ".pline" PT1 PTT "")
(setq PL (append PL (list PTT)))
(setq PT1 PTT)) 	; end progn
) 	; end if
 ) 	; end while
 (setq PTC (getpoint "\nCHON DIEM CUOI CUNG LOI VAO BINH DO"))
 (setq ChonC (ssget PTC))
 (setq ChonC1 (ssname ChonC 0))
 (setq DongMucCuoi (entget ChonC1))
 (setq ZC (last (assoc 10 DongMucCuoi)))
 (if (= ZC Z)
(setq X   (car PTC)
  Y   (cadr PTC)
  PTC (list X Y ZC))
(progn
 	(while (/= ZC Z)
(setq PTC
   	(getpoint
  "\nBAN DA CHON KHONG DUNG DOI TUONG BAN DAU !!! HAY CHON LAI DIEM CUOI CUNG !!!"))
(setq ChonC (ssget PTC))
(setq ChonC1 (ssname ChonC 0))
(setq DongMucCuoi (entget ChonC1))
(setq ZC (last (assoc 10 DongMucCuoi)))) 	; end while    
 	(setq X (car PTC)
Y (cadr PTC)
PTC (list X Y ZC))
) 	;end progn
 ) 	; end if
 (setq PL (append PL (list PTC)))
 (command ".pline" PT1 PTC "")
 (setq DongMucGoc
 (subst (cons 8 Layer) (assoc 8 DongMucGoc) DongMucGoc)  )
 (entmod DongMucGoc)
 (command "_layer" "m" Layer "c" "" "" "")
 (command "_break" Chon PTD PTC "")
 (setq Chon3 (ssget PTD))
 (foreach PT PL
(setq C (ssget PT))
(setq i 0)
(while (<= i (- (sslength C) 1))
 	(setq D (ssname C i))
 	(if (/= D nil)
(setq Chon3 (ssadd D Chon3))
 	) 	; end if
 	(setq i (+ i 1))
) 	; end while
 ) 	; end for PL
 (command "_select" Chon Chon3 "")
 (setq S (ssget "P"))
 (command "_pedit" "m" S "" "j" "" "")
(command "-osnap" "End,Mid,Int,Perp")
(prompt "\nDA NAN BINH DO XONG!")(PRINC))

Lisp của bạn là vẽ pline mới và xóa cái cũ đi. mục đích của mình là vẽ đường bao xung quanh điểm đo (tập hợp các point trên bản vẽ). Từ đó xây dựng mô hình tam giác và chọn đường bao cho mô hình.

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
cuchuoiwa    0

cái lisp nbpl dùng cho cad 2005 bị bẻ gẫy luôn đường pline ai sửa giùm với vì nova e chạy tren 2005 dùng lisp này trên cad 2007 thì ok ạ

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  

×