乐筑天下

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

[编程交流] 需要帮助优化命令

[复制链接]

22

主题

78

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 15:48:16 | 显示全部楼层 |阅读模式
所以,我有一个小命令,可以修复我们绘图中的一些小东西,但它会做一些奇怪的事情。我觉得这与命令中的空“”标记有关。我将在运行时发布代码和命令行。从命令行提示判断,Draworder命令和集中的最后一个命令似乎有问题。
 
  1. (defun c:PLDO()
  2. (setq sel1 (ssget "x" '((8 . "PROPERTY_LINES"))))
  3. (command "draworder" sel1 "" "back")
  4. (setq sel2 (ssget "x" '((8 . "FENCE"))))
  5. (command "._chprop" sel2 "" "s" "0.5" "")
  6. (setq sel3 (ssget "x" '((6 . "DASHDOT"))))
  7. (command "._chprop" sel3 "" "s" "1" "")
  8. (setq sel4 (ssget "x" '((8 . "ANTENNA") (0 . "TEXT,MTEXT,*LEADER"))))
  9. (command "._chprop" sel4 "" "c" "byblock" "")
  10. (princ)
  11. )

 
  1. Command: PLDO
  2. draworder
  3. Select objects:
  4. Command: PLDO
  5. Unknown command "PLDO".  Press F1 for help.
  6. Command: back Unknown command "BACK".  Press F1 for help.
  7. Command: ._chprop
  8. Select objects:   4 found
  9. Select objects:
  10. Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: s
  11. Specify new linetype scale <0'-0 1/2">: 0.5
  12. Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
  13. Command: ._chprop
  14. Select objects:   4 found
  15. Select objects:
  16. Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: s
  17. Specify new linetype scale <0'-1">: 1
  18. Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
  19. Command: ._chprop
  20. Select objects:
  21. Command: PLDO
  22. Unknown command "PLDO".  Press F1 for help.
  23. Command: c Unknown command "C".  Press F1 for help.
  24. Command: byblock Unknown command "BYBLOCK".  Press F1 for help.
  25. Command: PLDO
  26. Unknown command "PLDO".  Press F1 for help.
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:00:17 | 显示全部楼层
啊!这样一个小小的改变就解决了问题。我甚至没有想到这是因为没有做出选择。非常感谢你的帮助!这绝对是我今后会记得的事情
回复

使用道具 举报

22

主题

78

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 16:04:31 | 显示全部楼层
我还注意到,您本地化了选择变量“s”,并多次使用了它。我有几个类似的命令。如果在开始时本地化,变量是否可以相同?或者这取决于集合中是否附加了IF语句?
回复

使用道具 举报

22

主题

78

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 16:18:20 | 显示全部楼层
 
由于ssget返回选择集或nil,因此可以重用该变量。您应该始终本地化变量。
 
我使用的经验法则是检查无效输入(通常为零)如何影响后续命令,并相应地调整代码。一个主要示例是使用entget而不检查是否正在传递ename。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:21:58 | 显示全部楼层
请确保将代码中的“sel1”更改为“s”!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:27:47 | 显示全部楼层
你们俩都给了我很好的建议。非常感谢!我有自己捏造的印象,如果我多次使用它,我必须在一个命令内用每个单独的ssget函数更改变量。我真的很感谢你的帮助!这应该会清理我的代码很多!
回复

使用道具 举报

22

主题

78

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 16:37:54 | 显示全部楼层
有时我想知道我自己,哈哈!我编辑删除了之前的问题,因为我自己看着代码回答了这个问题。再次感谢你们,我真的非常感谢你们的帮助!
回复

使用道具 举报

22

主题

78

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 16:42:27 | 显示全部楼层
我看到有人在这里质疑过类似的任务,答案总是使用foreach函数。
这是一条类似的线。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:52:30 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:08 , Processed in 0.466299 second(s), 70 queries .

© 2020-2025 乐筑天下

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