怎样沿曲线复制,但不对齐曲线。
本帖最后由 kzd2004 于 2024-1-26 09:11 编辑如图,请教,怎样沿曲线复制,但不对齐曲线,要和下面的对齐。
你这不是沿曲线复制,而是在每条桩顶复制,与曲线无关。 循环复制对象就可以了
(defun c:t5 ( / pt ss en i pa pb e)
(command ".undo" "be")
(setq e (car (entsel "\选择对象:")))
(setq pt (getpoint"\n指定参考定位点"))
(setq ss (ssget))
(repeat (setq i (sslength ss))
(setq en (ssname ss (setq i (1- i)))
pb (vlax-curve-getendpoint (vlax-ename->vla-object en))
pa(vlax-curve-getstartpoint (vlax-ename->vla-object en)))
(if
(< (car pa) (car pb))
(> (car pa) (car pb))
(setq pa pb pb pa))
(command "copy" e "" pt pa)
)
(command ".undo" "e")
(princ)
)
本帖最后由 kzd2004 于 2024-1-26 09:32 编辑
lht 发表于 2024-1-26 09:13
你这不是沿曲线复制,而是在每条桩顶复制,与曲线无关。
是的,有没有办法一次性完成,就是沿着(桩顶)曲线路径,一个一个的复制太慢了。 办法肯定有的 从曲线起点按指定X向距离画竖向射线,求与曲线的交点,再绘制红色矩形。我想应该可以 ssyfeng 发表于 2024-1-26 09:39
从曲线起点按指定X向距离画竖向射线,求与曲线的交点,再绘制红色矩形。我想应该可以
可是还是要一个一个的复制啊,请问有办法一次性解决吗? 写代码啊,方法已经说了 系统自带的的确没有,请使用钞能力吧;P,方法的确是不难 (defun c:ttc ( / wt pt0 pt1 ssen)
(setq wt t)
(print "多点复制命令...")
(setq ssen (ssget))
(setq pt0 (getpoint"选择参考定位点"))
(while wt
(setq pt1 (getpoint"选择目标点"))
(command "copy" ssen "" pt0 pt1)
)
(princ)
) 复制目标只选一次
目标点还是要一个一个选
如果目标点太多,就要编程框选,逐个查询目标点,再循环拷贝了
页:
[1]
2