皇上快溜 发表于 2016-6-26 15:44:07

双向偏移程序

(defun c:ooo (/ getds obj)
(vl-load-com)(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)
)
    )

renxianjing 发表于 2023-8-23 10:10:22

流动的清泉 发表于 2017-11-14 10:28
有没有人 试过,在用到射线的时候,程序就不能正常运行了。

选择集没有选中射线,要改。
射线是ray,在(0 . "Arc,Circle,Ellipse,*Line")中加入"ray"。

yangchao2005090 发表于 2020-6-30 17:07:38

maiko 发表于 2016-6-29 00:52
;;;来个vla简单的

请问一下空格不删除,左键删除这个怎么改一下啊

mashanjie 发表于 2023-8-22 18:37:53

琴剑江山_10184 发表于 2016-6-27 09:08


这个太赞了,给力,很好用,谢谢~是我想要的

皇上快溜 发表于 2016-6-26 15:57:43

这个程序在选取目标后,要鼠标右键或敲多一次空格之后才能执行偏移动作,各位老大可可以帮我简化一下?点选目标之后自动偏移

令外,想在偏移完成后,加多个删除或不删除源目标的动作。偏移完成后,敲多一次空格即为删除,不敲多一次空格即为不删除

自贡黄明儒 发表于 2016-6-26 17:13:23

加initget.      

皇上快溜 发表于 2016-6-26 18:11:51

自贡黄明儒 发表于 2016-6-26 17:13 static/image/common/back.gif
加initget.

你好,可以帮我大致改改么?我完全不懂

tryhi 发表于 2016-6-26 22:23:37

本帖最后由 tryhi 于 2016-6-26 22:27 编辑

绝对不要拿完全不懂当理由,你不懂也不学,帮你的话等于纵容你向别人伸手,以后你习惯了伸手,对大家都没好处,好像你刚注册不久,还有发展空间,希望自己学习(defun c:ooo (/ allname getds i n obj ojb ss)
      (vl-load-com)(initget 2)
      (setq getds (getdist "\n输入偏移距离<可直接量取>:"))
      (while
                (setq ss(ssget ":s" '((0 . "Arc,Circle,Ellipse,*Line"))))
                (setq
                        allname (try-ss2EnList ss)
                        ojb (mapcar '(lambda(x)(vlax-ename->vla-object x ))allname)
                        i -1
                )
                (repeat (sslength ss)
                        (setq i(1+ i)
                              n (vlax-ename->vla-object(ssname ss i))
                        )
                        (vla-Offset n getds)(vla-Offset n (- getds))
                )
      )
)

皇上快溜 发表于 2016-6-26 23:57:00

tryhi 发表于 2016-6-26 22:23 static/image/common/back.gif
绝对不要拿完全不懂当理由,你不懂也不学,帮你的话等于纵容你向别人伸手,以后你习惯了伸手,对大家都没好 ...

说的很对,恳切。

在下目前只能以人家程序为蓝本,,对比拼凑一下,,如此而已,,楼上黄哥说到的,,函数特性的东西,确实完全不懂,,摸索中。。

tryhi 给的程序可否顺手完善一下,工作中面临大量此类重复动作,,,
cAD报程序错误: no function definition: TRY-SS2ENLIST

琴剑江山_10184 发表于 2016-6-27 09:08:22

(defun c:ooo (/ getds obj)
(vl-load-com)
(setvar 'cmdecho 0)
(initget 2)
(setq getds (getdist "\n输入偏移距离<可直接量取>:"))
(if (ssget ":s" '((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)
)

皇上快溜 发表于 2016-6-27 11:22:09

琴剑江山_10184 发表于 2016-6-27 09:08 static/image/common/back.gif


谢谢琴剑江山,程序比我想要的还要完美。

同时,还想麻烦你帮我看看楼下同类程序。删改过,想只留下其 双向偏移功能,失败了。该选项的“输入部分”和“offsec动作”似乎放在其他选项里面,,,

琴剑江山_10184 发表于 2016-6-27 11:25:56

皇上快溜 发表于 2016-6-27 11:22 static/image/common/back.gif
谢谢琴剑江山,程序比我想要的还要完美。

同时,还想麻烦你帮我看看楼下同类程序。删改过,想只留下其 ...

楼下的程序,人家用了自己的函数,你问他要自定函数

皇上快溜 发表于 2016-6-27 11:31:25

琴剑江山_10184 发表于 2016-6-27 11:25 static/image/common/back.gif
楼下的程序,人家用了自己的函数,你问他要自定函数

谢谢琴剑江山。代码长了点,尝试了几次,贴不上了。也不好频频麻烦你。。。
页: [1] 2 3
查看完整版本: 双向偏移程序