图形水平调正的功能
就是所有的图形,可以一次性水平旋转,无论是垂直的 还是 切斜的;--------------未知角度转正------------------
(defun c:rz ()
(setvar "cmdecho" 0)
(setq ss (ssget)
a(entsel"\n-->选择需要转正的斜线")
j(car a)
ifpl(cadr a)
)
(if (= "LINE" (cdr(assoc 0 (entget j)))) ;条件
(progn
(setq pt1(cdr(assoc 10 (entget j))))
(setq pt2(cdr(assoc 11 (entget j))))
(command "_rotate" ss "" ifpl "r""_none"pt1 "_none"pt2 "0")
)
)
(if(= "LWPOLYLINE"(cdr(assoc 0 (entget j))))
(if (HH:PickArc j ifpl)
(progn
(setq pt1 (car (HH:PickSegEndPt j ifpl))
pt2 (cadr(HH:PickSegEndPt j ifpl)))
(command "_rotate" ss "" ifpl "r""_none"pt1 "_none"pt2 "0")
)
)
)
(princ)
)
;;164.18 [功能] 多段线所点击子段的两端点列表
;;示例(HH:PickSegEndPt (car(setq en(entsel))) (cadr en))
(defun HH:PickSegEndPt (obj p / pp n)
(setq pp (vlax-curve-getclosestpointto obj (trans p 1 0))
n(fix (vlax-curve-getparamatpoint obj pp))
)
(list (vlax-curve-getPointAtParam obj n)
(vlax-curve-getPointAtParam obj (1+ n))
)
)
;;164.24 [功能] 多段线所击子段是否是直线(返回nil是弧) By 自贡黄明儒
;;示例(HH:PickArc (car(setq en(entsel))) (cadr en))
(defun HH:PickArc (curve p / PP)
(setq pp (vlax-curve-getclosestpointto curve (trans p 1 0)))
(setq pp (vlax-curve-getSecondDeriv
curve
(fix (vlax-curve-getparamatpoint curve pp))
)
)
(equal pp '(0.0 0.0 0.0))
)
ysq101 发表于 2017-10-22 16:43
这个是需要转正哪条边就点哪条边。。。只能单选。。。
三年前写的代码了。。。借用了黄大师的子程序。。。 ...
厉害 我不懂代码 单觉得这个应该很简单的:lol 获得图形的角度属性,修改属性,更新图元。 我有一个只可单选的。。。你可需要??
(新手作品) ysq101 发表于 2017-10-22 11:29
我有一个只可单选的。。。你可需要??
(新手作品)
要啊比没有强的多谢谢 这个是需要转正哪条边就点哪条边。。。只能单选。。。
三年前写的代码了。。。借用了黄大师的子程序。。。
现在我自己都读不懂了 孙玉坤 发表于 2017-10-22 16:57
厉害 我不懂代码 单觉得这个应该很简单的
不过 也不多非常的感谢 能选择块内的对象就更好了,这样就可以将块水平了
页:
[1]
2