乐筑天下

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

[编程交流] 偏移和删除源

[复制链接]

2

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:26:57 | 显示全部楼层 |阅读模式
向所有人致意,
我试图建立一个lisp来抵消一条线。以下是我所拥有的:
  1. (defun c:off ()   
  2. (Command "_offset" "e" "yes" pause)
  3. (princ)
  4. )

唯一的问题是,我找不到auto存储原始设置的变量,一旦我退出自定义命令,auto cad会将“擦除”源保留为yes。
显然,我还不太熟悉lisp,所以任何帮助都将不胜感激。
提前谢谢。
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-5 15:32:22 | 显示全部楼层
发布lisp代码时请使用代码标记。此外,您可以使用每篇文章中“其他选项”下的复选框禁用笑脸。
 
现在回到原来的问题。我认为没有一个变量可以控制擦除选项。但是,您可以使用此行关闭擦除功能
 
  1. (command "._offset" "_E" "_No" "" "_E")
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-5 15:34:20 | 显示全部楼层
看看这个,真快又脏。
 
  1. (defun c:OFF (/ offset_dist obj_2_offset offset_side)
  2. (setvar 'cmdecho 0)
  3. (while (= offset_dist nil)
  4. (setq offset_dist (getdist "\nOffset distance: "))
  5. );while
  6. (while
  7. (while (= obj_2_offset nil)
  8. (setq obj_2_offset (entsel (strcat "\nPick object to offset <" (rtos offset_dist) ">: ")))
  9. );while
  10. (while (= offset_side nil)
  11. (setq offset_side (getpoint "\nSide to offset on: "))
  12. );while
  13. (command "offset" offset_dist obj_2_offset offset_side "")
  14. (command "erase" obj_2_offset "")
  15. (setq obj_2_offset nil)
  16. (setq offset_side nil)
  17. );while
  18. (princ))
回复

使用道具 举报

2

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:38:36 | 显示全部楼层
谢谢你的代码和微笑信息。我试过你的方法,但行不通。alanjt脚本可以工作,但它会循环到最后,一旦输入距离并偏移线,命令就会保持不变,不会接受任何其他距离。
 
谢谢你的回复
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-5 15:42:36 | 显示全部楼层
 
什么不起作用?
它只是关闭了“擦除”选项,就是这样。
回复

使用道具 举报

2

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:44:11 | 显示全部楼层
很抱歉,我在没有激活擦除选项的情况下运行了测试。它确实有效。谢谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-5 15:48:27 | 显示全部楼层
哎呀,我想我加的太多了
 
试试这个:
 
  1. (defun c:OFF (/ offset_dist obj_2_offset offset_side)
  2. (setvar 'cmdecho 0)
  3. (while (= offset_dist nil)
  4. (setq offset_dist (getdist "\nOffset distance: "))
  5. );while
  6. (while (= obj_2_offset nil)
  7. (setq obj_2_offset (entsel (strcat "\nPick object to offset <" (rtos offset_dist) ">: ")))
  8. );while
  9. (while (= offset_side nil)
  10. (setq offset_side (getpoint "\nSide to offset on: "))
  11. );while
  12. (command "offset" offset_dist obj_2_offset offset_side "")
  13. (command "erase" obj_2_offset "")
  14. (setq obj_2_offset nil)
  15. (setq offset_side nil)
  16. (princ))
回复

使用道具 举报

2

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:50:41 | 显示全部楼层
谢谢alanjt,很有魅力。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-5 15:52:31 | 显示全部楼层
没问题。如果这个周末我有机会的话,我会坐下来抓一些更好的东西。我昨晚做得很快,没有测试。
回复

使用道具 举报

56

主题

256

帖子

230

银币

后起之秀

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

铜币
253
发表于 2022-7-5 15:56:32 | 显示全部楼层
 
嗨,艾伦,
 
我用小数点偏移量尝试了这个方法,但返回到以前使用的偏移量。
 
我试图抵消72.5,但没有成功。谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:04 , Processed in 3.413306 second(s), 73 queries .

© 2020-2025 乐筑天下

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