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

[Yêu cầu] viêt lisp vẽ đường thẳng VG và đi qua điểm M trên lwpolyline

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

nhờ các anh trên diễn đàn giúp em việc như thế này, em có text tên cọc nằm trên đường lwpolyline, em muốn vẽ 1 đoạn thẳng có chiều dài tuỳ chọn (theo lúc chạy chương trình) khi đó em chỉ việc click chuột vào text đó là nó sẽ tự động vẽ đoạn thẳng vuông góc đi qua nó. xin cảm ơn các bạn, các anh trên diễn đàn trước 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

Hình hoặc file minh họa đâu bạn ?? Đầu vào là gì ? Đầu ra là gì ?

đay pác ạh: http://www.cadviet.com/upfiles/3/ve_dtvg_qua_m.dwg

đầu vào là polyline, text

đầu ra là line

line phải vuông góc với polyline và phải đi qua các cọc C trong bản vẽ

Nhờ Pác giúp dùm em nhé... thanks

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

Qua bản vẽ sơ sài của bạn thì chỉ làm đc đến thế này thôi :

(defun c:kvg (/ curve curve1 txtSS tmp ang)
(vl-load-com)
(grtext -1 "Free lisp from Cadviet @Ketxu")
(defun ST:Ss->ListVLa (ss / n e l)
 (setq n (sslength ss))(while (setq e (ssname ss (setq n (1- n))))
   (setq l (cons (vlax-ename->vla-object e) l))))	 
(or len (setq len 5))
(setq 	len (cond ((getreal (strcat "\nLength of Line < " (rtos len 2 0) " > :")))(len)))
(if	(setq 	curve1  (car(entsel "\nSelect Pline :")))	
(progn (redraw curve1 3)(prompt "\nSelect Texts to Draw Line :")
(while 
(setq txtSS (ssget (list (cons 0 "*TEXT"))))
(setq txtSS (ST:Ss->ListVLa txtSS) curve (vlax-ename->vla-object curve1))
(foreach txtObj txtSS	
(setq 	tmp (vlax-curve-getClosestPointTo curve (trans (vlax-get txtObj 'InsertionPoint ) 1 0))
		ang (angle '(0 0) (Vlax-curve-getfirstderiv curve (vlax-curve-getParamAtPoint curve tmp))) 
)
(entmakex (list (cons 0 "LINE")
			(cons 10 (polar tmp (+ ang (/ pi 2) ) (/ len 2)))
			(cons 11 (polar tmp (- ang (/ pi 2) ) (/ len 2)))
			(cons 62 4)
			)
)
)
)(redraw curve1 4))
))

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  

×