变双线的一些问题,求指教
之前找的一个变双线(也就是双向偏移)的代码,其中有点地方需要修改,希望各位大神帮忙需要修改以下二点
1,偏移完成后,直接删除掉源对象,我这代码里多了一步确认的操作。
2,输入偏移距离1,我希望得到的结果就是1,也就是上下各偏移0.5
代码如下
(defun c:tt (/ getds obj)
(vl-load-com)(setvar 'cmdecho 0)(initget 2)
(setq getds (getdist "\n输入偏移距离<可直接量取>:"))
(if (ssget'((0 . "Arc,Circle,Ellipse,*Line")))
(vlax-for obj (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)) )
(vla-offset obj getds)
(vla-offset obj (* getds -1)) )
(vlax-release-object obj))(if (not (getpoint "\n按鼠标左键不删除源对象 <空格删除>"))
(command "_.ERASE" (ssget "p") "") )(princ))
本帖最后由 llsheng_73 于 2016-8-8 20:33 编辑
(defun c:tt (/ d a d1 s)
(vl-load-com)(initget 2)
(while(ssget'((0 . "Arc,Circle,Ellipse,*Line")))
(setq d(*(if(setq a(getdist(strcat"\n双线宽度<可直接量取>["(if d(rtos(+ d d))"1")"]")))
a(if d(+ d d)1))0.5)d1(- d))
(vlax-for obj(setq s(vla-get-activeselectionset(vla-get-activedocument (vlax-get-acad-object))))
(vla-offset obj d)
(vla-offset obj d1))
(vla-Erase s))) llsheng_73 发表于 2016-8-7 22:54 static/image/common/back.gif
你好,你这个代码是我想要偏移的数值,但偏移完成后没有删除掉源对象,能否修改一下,谢谢 非常感谢,完美解决了我的困扰,感谢大神 本帖最后由 monuow 于 2016-8-22 13:11 编辑
llsheng_73 发表于 2016-8-7 22:54 static/image/common/back.gif
今天画图的时候用了下,发现一个问题,当连续操作的时候,变的双线会出现递减的情况,如图 llsheng_73 发表于 2016-8-7 22:54 static/image/common/back.gif
这个代码连续操作的时候会出现递减的情况,哪个帮忙大神解决一下 (defun c:tt (/ d a d1 s)
(vl-load-com)
(setq d (if d d 0.5))
(initget 2)
(setq d(*(if(setq a(getdist(strcat "\n双线宽度<可量取>["(rtos(+ d d))"]"))) a(+ d d))0.5)
d1(- d))
(while (ssget'((0 . "Arc,Circle,Ellipse,*Line")))
(vlax-for obj
(setq s(vla-get-activeselectionset(vla-get-activedocument (vlax-get-acad-object))))
(vla-offset obj d)
(vla-offset obj d1)
)
(vla-Erase s)
)
(princ)
)
llsheng_73 发表于 2016-8-7 22:54
这个很好,能否改一下,让变后的双线为指定的颜色,那样就更完美了。
页:
[1]