有没有办法使用variab
我在autocad中有一些旧的CNC切割文件,需要更新为改进的设计,但我需要能够根据用户键入的输入删除图形中的对象(我不能简单地使用光标选择点)。我一直在努力让这个代码工作,但我就是想不出来。关于如何使其工作或如何改进我的代码,有什么想法吗?我还需要使用下面显示的stretch命令使用类似的格式。(定义C:OCNCU();旧CNC更新
(setq len(getdist“Enter Cover Length=”);封面长度用户输入
(setq ptX(-len 0.25))
(命令“.erase”(ssget“_C”'(0.25 25.0)'(ptx 26.0)“”);删除多余的行
(setq SX(rtos 0.0)SY(rtos(/len 20)))
(命令“.stretch”(ssget“_C”'(70.0 38.0)'(ptx 41.0))“0,0”(strcat SX”,“SY))
(命令“zoom”“e”)
); OCNCU结束
提前感谢您的帮助! 欢迎来到论坛!
首先尝试:
(list stx 36.0)
&
(list ptx 41.0)
其次,如果您尝试将nnn单位添加到选择集的X轴,那么我将尝试修改实体,而不是尝试使用奇怪的STRECTH命令。
你有可以发布的图纸吗-大卫 拉伸是一个伟大的命令,但不可能与命令一起正常工作。你最好做所有的脏活。 班森,
我对你的代码做了一点修改。它执行,尽管我不确定它是否在做你想做的事情。虽然拉伸命令似乎已经完成,但正如Dave和Alan警告的那样,它可能正在做一些奇怪的事情。
(defun C:OCNCU ( ) ; Old CNC Update
(setq len (getdist "Enter Cover Length = ")); Cover Length User Input
(setq ptx (- len 0.25))
;(command ".delete" (ssget "C" '(0.25 25.0) '(ptx 26.0)) "") ; Erase Extra Lines
(command ".delete" (ssget "C" (list 0.25 0.25) (list ptx 26.0)) "") ; added close parens
;(setq SX (rtos 0.0) SY (rtos (/ len 20)))
(setq SX 0.0 SY (/ len 20)) ; must be reals - can't be strings
;(command ".stretch" (ssget "C" (list 9.1 0.25) (list ptx 41.0)) "" (list 0 0) "" (list SX SY))
(command ".stretch" (list 9.1 0.25) (list ptx 41.0) "" (list 0 0) (list SX SY)); give it discrete points instead of SS
(command "zoom" "e")
); end of OCNCU 它起作用了!!!!!!!谢谢你的帮助。我无法使用“.delete”命令,因为我的autocad由于某种原因无法识别它,但我能够使“.erase”命令与我认为您的预期一样工作。我会研究拉伸函数,看看它是如何工作的,然后告诉你。我经常使用伸展训练,对我来说效果很好,所以我会看看效果如何。
(setq len 101.25)
;(setq len(getdist“Enter Cover Length=”);封面长度用户输入
;出于测试目的,我对这部分进行了注释
(setq ptx(-len 0.25))
(命令“.erase”(ssget“C”(列表0.25 25.0)(列表ptx 26.0))“”)
再次感谢,这是我正在编辑的文件的图片。需要变量输入的原因是根据剪切文件的尺寸改变删除的行选择。
下面是使用完成的完整代码。擦除和。拉伸命令短而有效!
(setq len 101.25)
(setq宽度73.25)
;(setq len(getdist“输入封面长度:”);覆盖长度用户输入(测试时省略)
;(setq宽度(getdist“输入封面宽度:”);覆盖宽度用户输入(测试时省略)
; 删除所选内容
(setq ptx(-len 0.25))
(命令“.erase”(ssget“C”(列表0.25 25.0)(列表ptx 26.0))“”)
; 拉伸选择
(setq pty(-宽度10.0))
(setq SX(rtos 0.5)SY(rtos 0.0));这将设置选择将被拉伸的距离
(命令“.stretch”(ssget“_C”(列表0.6 10.0)(列表5.0 pty))“0,0”(strcat SX”,“SY))
; 如您所见,从(0.6,10.0)到(5.0(宽度-10))的交叉窗口选择使用代码的(strcat SX”,“SY)部分在x方向上拉伸从点(0,0)到(0.5,0,0)的距离。
(普林斯)
再次感谢! 我忘了我把擦除切换到删除。在我的Intellicad上,DELETE是命令名,ERASE是别名。不管怎样,你解决了。我很高兴它对你有用。
页:
[1]