(defun c:test (/ ent old-num num p0 p1 param div-param i point)
(setq ent (car (entsel "\n选择需要等分的圆:")))
(if (null old-num)
(setq old-num 2)
)
(if (setq num (getint (strcat "\n输入等分数量<" (rtos old-num) ">:")))
(setq old-num num)
(setq num old-num)
)
(setq obj (vlax-ename->vla-object ent))
(setq p0 (vlax-curve-getStartPoint obj)
param (vlax-curve-getEndParam obj)
div-param (/ param num)
)
(setq p1 (vlax-curve-getPointAtParam obj -0.1))
(command "break" ent "none" p1 "none" p0)
(setq i 1)
(repeat (1- num)
(setq point (vlax-curve-getPointAtParam obj (* i div-param)))
(command "break" ent "none" point "none" point)
(setq ent (entlast))
(setq obj (vlax-ename->vla-object ent))
(setq i (1+ i))
)
(vla-put-endangle obj 0.0)
(princ)
)
<P>(setq p1 (vlax-curve-getPointAtParam obj -0.1))</P>
<P>是一招,不错!</P> <P>也是,想也不能一步做到位吧,大不了,多做几步啊,反正要的结果是一样的就可以了,</P>
<P> </P> break <P><BR>命令: test<BR>选择需要等分的圆:<BR>输入等分数量<2>:8 ; 错误: no function definition: VLAX-ENAME->VLA-OBJECT<BR></P>
<P>这个是什么错误?>?</P> sony-lin发表于2006-3-13 19:36:00static/image/common/back.gif
命令: test选择需要等分的圆:输入等分数量<2>:8 ; 错误: no function definition: VLAX-ENAME->VLA-OBJECT
这个是...
<BR>在程序前面加一句(vl-load-com) 用四楼的方法,如果四等分,画出四分之一,以圆心为中心环形阵列,多数等分时,只要由圆心连接相邻两个等分点,再修剪、环形阵列就可以了! 18楼说是一般作图方法,那需要很多步操作,不觉得吗,为什么不用程序来实现呢。 <P>不是所有和事都要用程序才好吧?</P>
<P>如果是一个反复用到的命令或操作,用程序做出来当然是好,如果只是一次或很少使用,有编程时间还不如直接去做了!再说程序也不是所有人都会编写的,至少我是不会!</P>
页:
1
[2]