明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1402|回复: 7

[提问] 变双线的一些问题,求指教

[复制链接]
发表于 2016-8-6 14:29:30 | 显示全部楼层 |阅读模式
之前找的一个变双线(也就是双向偏移)的代码,其中有点地方需要修改,希望各位大神帮忙
需要修改以下二点
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))

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2016-8-7 22:54:09 | 显示全部楼层
本帖最后由 llsheng_73 于 2016-8-8 20:33 编辑

  1. (defun c:tt (/ d a d1 s)
  2.   (vl-load-com)(initget 2)
  3.   (while(ssget'((0 . "Arc,Circle,Ellipse,*Line")))
  4.     (setq d(*(if(setq a(getdist(strcat"\n双线宽度<可直接量取>["(if d(rtos(+ d d))"1")"]")))
  5.       a(if d(+ d d)1))0.5)d1(- d))
  6.     (vlax-for obj(setq s(vla-get-activeselectionset(vla-get-activedocument (vlax-get-acad-object))))
  7.       (vla-offset obj d)
  8.       (vla-offset obj d1))
  9.     (vla-Erase s)))
 楼主| 发表于 2016-8-8 13:16:37 | 显示全部楼层
llsheng_73 发表于 2016-8-7 22:54

你好,你这个代码是我想要偏移的数值,但偏移完成后没有删除掉源对象,能否修改一下,谢谢

点评

已更正删除的问题  发表于 2016-8-8 14:01
 楼主| 发表于 2016-8-8 15:05:23 | 显示全部楼层
非常感谢,完美解决了我的困扰,感谢大神
 楼主| 发表于 2016-8-8 20:01:53 | 显示全部楼层
本帖最后由 monuow 于 2016-8-22 13:11 编辑
llsheng_73 发表于 2016-8-7 22:54

今天画图的时候用了下,发现一个问题,当连续操作的时候,变的双线会出现递减的情况,如图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2016-8-22 13:14:17 | 显示全部楼层
llsheng_73 发表于 2016-8-7 22:54

这个代码连续操作的时候会出现递减的情况,哪个帮忙大神解决一下
发表于 2016-8-22 14:17:35 | 显示全部楼层
  1. (defun c:tt (/ d a d1 s)
  2. (vl-load-com)
  3. (setq d (if d d 0.5))
  4. (initget 2)
  5. (setq d(*(if(setq a(getdist(strcat "\n双线宽度<可量取>["(rtos(+ d d))"]"))) a(+ d d))0.5)
  6.        d1(- d))
  7. (while (ssget'((0 . "Arc,Circle,Ellipse,*Line")))
  8.   (vlax-for obj
  9.    (setq s(vla-get-activeselectionset(vla-get-activedocument (vlax-get-acad-object))))
  10.    (vla-offset obj d)
  11.    (vla-offset obj d1)
  12.   )
  13.   (vla-Erase s)
  14. )
  15. (princ)
  16. )
发表于 2016-9-30 20:06:04 | 显示全部楼层

这个很好,能否改一下,让变后的双线为指定的颜色,那样就更完美了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 04:38 , Processed in 0.243142 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表