测量vlax曲线getPointA
早上好我想把一个“渐变”的曲线(样条线,样条线),见附图。我不知道该怎么做,也不知道是否有可能做到。“渐变”始终垂直于曲线。L1、L2、D-给定值。知道吗?测量Vlax曲线getPointAtDist?
测量图纸 关于编程方法,当然可以做到。沿着您已经提出的函数,您还需要寻找插入点上的二阶导数,以获得局部切线,从而获得曲线上的垂线。
当做
米尔恰 对于二阶导数,使用哪个函数? 要在给定位置列出曲线上的二阶导数,应使用vlax curve getSecondDeriv。
我建议您查看帮助vlax curve-*函数系列。
当做
米尔恰 对不起,Mircea,我认为不需要第二个。这可能会有所帮助:
(setq tg(vlax curve getFirstDeriv entity param))将为您提供在param处与曲线相切的方向。因此,垂直方向为(atan(cadr-tg)(car-tg))+或-pi/2。 斯特凡,你完全正确;我被纠正了。很抱歉给您带来不便。
当做
米尔恰 这可能会让你开始,尽管我没有得到你特别想要的。
将此作为一个示例。
(defun c:TesT (/ ss p2 l d n)
;;; Tharwat 21. Feb. 2012 ;;;
(if (and
(setq ss (entsel "\n Select a Poly :"))
(member (cdr (assoc 0 (entget (car ss))))
'("LINE" "SPLINE" "LWPOLYLINE" "POLYLINE")
)
(setq p2 (1+ (fix (vlax-curve-getendparam (car ss)))))
(setq l (vlax-curve-getdistatparam (car ss) (- p2 1)))
(setq d (getdist "\n Specify the distance between points :"))
(setq n d)
)
(progn
(entmake
(list '(0 . "POINT")
(cons 10 (vlax-curve-getpointatparam (car ss) 0))
)
)
(repeat
(fix (/ l d))
(setq pt (vlax-curve-getpointatdist (car ss) d))
(entmake (list '(0 . "POINT") (cons 10 pt)))
(setq d (+ n d))
)
)
(princ)
)
(princ)
)
我想比较两个字符串,使用什么函数?
(=(cdr(assoc 0(entget(car(entsel)ЮЮ))“line”),我选择了一条线,但它不工作。。。我应该使用equal或eq。。。? 你应该这样使用它。。
在这种情况下,and=和eq函数是相同的。
或者这个。。。
(= (cdr (assoc 0 (entget (car(entsel))))) "LINE")
但所有这些都不是一种好的编程方式。
因为如果你什么都不选,就会出错。 如何确定样条曲线的起点和终点?
页:
[1]
2