那位高手这个LSP能写不
那位高手,我想点这一点,再点别地方一点,能生成一条SPL线嘛.就如上图一样.也就是在两点间生成一条曲线 两点划SPL线 <p></p><p></p> 用样条曲线应该可以,点两个端点后自动取其中点,两个端点的切线方向为水平方向 <p>;;高手不在,菜鸟在</p><p>(defun c:tt (/ p1 p2 p e)<br/> (if (and (setq p1 (getpoint "\n第一点: "))<br/> (setq p4 (getpoint p1 "\n第二点: "))<br/> )<br/> (progn<br/> (setq mp (mapcar '(lambda (a b) (/ (+ a b) 2)) p1 p4))<br/> (if (apply '> (mapcar '(lambda (a b) (abs (- a b))) p1 p4))<br/> (setq p2 (cons (car mp) (cdr p1))<br/> p3 (cons (car mp) (cdr p4))<br/> )<br/> (setq p2 (cons (car p1) (cdr mp))<br/> p3 (cons (car p4) (cdr mp))<br/> )<br/> )<br/> (command "_.pline" "_non" p1 "_non" p2 "_non" mp "_non" p3 "_non" p4 "")<br/> (setq e (entlast))<br/> (command "_.pedit" e "_spl" "")<br/> )<br/> )<br/>)</p> 不过不是样条曲线,是拟合的多段线 <p>多数情况下变成了上面的样子了.我想始终如一,跟下面的一样,无论两个设备错开多远.它能像我下面的接法一样.要谢谢六楼的高手.</p> 这是样条曲线:;;两点画SPLINE 明经 ZZXXQQ 2009.7.28
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (setq p1 (getpoint "\n第一点 :"))
(setq p2 (getpoint p1 "\n第二点 :"))) (progn
(if (> (abs(- (car p1) (car p2))) (abs(- (cadr p1) (cadr p2))))
(if (> (car p1) (car p2))
(setq p3 (polar p1 0 10) p4 (polar p2 pi 10))
(setq p3 (polar p1 pi 10) p4 (polar p2 0 10))
)
(if (> (cadr p1) (cadr p2))
(setq p3 (polar p1 (/ pi 2) 10) p4 (polar p2 (/ pi -2) 10))
(setq p3 (polar p1 (/ pi -2) 10) p4 (polar p2 (/ pi 2) 10))
)
)
(command ".spline" "_non" p1 "_non" p2 "" "_non" p3 "_non" p4)
))
(setvar "CMDECHO" 1)
(princ)
)
页:
[1]
2