(defun c:anglefix (/ object lineAngle tmpPoint)
(setq object (vlax-ename->vla-object (car (entsel))))
(setq lineAngle
(angle
(vlax-curve-getFirstDeriv object 0.0)
'(0 0 0)
)
)
(if
(and
(> lineAngle (* pi 0.5))
(< lineAngle (* pi 1.5))
)
(progn
(setq tmpPoint (vla-get-StartPoint object))
(vla-put-StartPoint object (vla-get-EndPoint object))
(vla-put-EndPoint object tmpPoint)
)
)
) 我建议如下:
(defunc:fliplines(/ang i p q s x)(setqang(eval(list'lambda'(a b)(list'rem'list+[]-list(if(zerop(getvar'angdir))“+'-(角度a b)(getvar'angbase))))(+pipi))(if(setqs(ssget“_X”'((0。“LINE”)))(重复[setqi(sslengths))(setqx(entget(ssnames(setqi(1-i)))p(assoc10 x)q(assoc11 x))(
谢谢李先生!
感谢Grrr先生!谢谢你教我一些 至少现在我知道它必须是(trans…0 1)。
不客气。
实际上,线端点是相对于WCS存储的,如果在计算角度之前不进行变换,则会投影到当前UCS平面。
不过,我怀疑这个特殊情况下的问题更多地是OP测量相对于本地ANGBASE/ANGDIR设置的角度的结果。
这与我们在angbase和angdir上的设置有关?。。。很高兴知道!我以为天使们读到了同样的lol
这取决于您如何测量它们,即您是否测量相对于WCS/UCS X轴的顺时针/逆时针角度(ANGDIR)以及是否相对于ANGBASE。
页:
1
[2]