乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 29|回复: 6

[编程交流] 有没有办法使用variab

[复制链接]

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 09:59:55 | 显示全部楼层 |阅读模式
我在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结束
 
提前感谢您的帮助!
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:13:44 | 显示全部楼层
欢迎来到论坛!
 
首先尝试:
  1. (list stx 36.0)
  2. &
  3. (list ptx 41.0)

 
其次,如果您尝试将nnn单位添加到选择集的X轴,那么我将尝试修改实体,而不是尝试使用奇怪的STRECTH命令。
 
你有可以发布的图纸吗-大卫
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 10:27:59 | 显示全部楼层
拉伸是一个伟大的命令,但不可能与命令一起正常工作。你最好做所有的脏活。
回复

使用道具 举报

10

主题

109

帖子

99

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 10:32:43 | 显示全部楼层
班森,
我对你的代码做了一点修改。它执行,尽管我不确定它是否在做你想做的事情。虽然拉伸命令似乎已经完成,但正如Dave和Alan警告的那样,它可能正在做一些奇怪的事情。
 
  1. (defun C:OCNCU ( ) ; Old CNC Update
  2. (setq len (getdist "Enter Cover Length = ")); Cover Length User Input
  3. (setq ptx (- len 0.25))
  4. ;(command ".delete" (ssget "C" '(0.25 25.0) '(ptx 26.0)) "") ; Erase Extra Lines
  5. (command ".delete" (ssget "C" (list 0.25 0.25) (list ptx 26.0)) "")               ; added close parens
  6. ;(setq SX (rtos 0.0) SY (rtos (/ len 20)))  
  7. (setq SX 0.0 SY (/ len 20))                        ; must be reals - can't be strings
  8.                           
  9. ;(command ".stretch" (ssget "C" (list 9.1 0.25) (list ptx 41.0)) "" (list 0 0) "" (list SX SY))
  10. (command ".stretch" (list 9.1 0.25) (list ptx 41.0) "" (list 0 0) (list SX SY))  ; give it discrete points instead of SS
  11. (command "zoom" "e")
  12. ); end of OCNCU
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 10:47:30 | 显示全部楼层
它起作用了!!!!!!!谢谢你的帮助。我无法使用“.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))“”)
 
再次感谢,这是我正在编辑的文件的图片。需要变量输入的原因是根据剪切文件的尺寸改变删除的行选择。
105955s44jd0jzlaoa6afz.jpg
105956xtt0skbt3ktsaubb.jpg
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 10:52:31 | 显示全部楼层
下面是使用完成的完整代码。擦除和。拉伸命令短而有效!
 
(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)的距离。
(普林斯)
 
再次感谢!
回复

使用道具 举报

10

主题

109

帖子

99

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 11:06:34 | 显示全部楼层
我忘了我把擦除切换到删除。在我的Intellicad上,DELETE是命令名,ERASE是别名。不管怎样,你解决了。我很高兴它对你有用。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 00:37 , Processed in 1.805648 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表