乐筑天下

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

[编程交流] 线的偏移部分

[复制链接]

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-6 08:03:18 | 显示全部楼层 |阅读模式
几年前,我拼凑出了这个lisp,基本上只是抵消了一条线的一部分,并希望能做得更好。
 
错误陷阱似乎不起作用。
我想将其更改为拾取对象的一层,或者稍后指定另一层。
我想可以把它清理干净,但我不确定先把重点放在哪里。
 
 
  1. ;OffsetMeasure  offset a short line
  2. (defun *error* (msg)
  3. (setvar "osmode" 0)
  4.    (setq pt1 nil)
  5.    (setq pt2 nil)
  6.    (setq dist1 nil)
  7.    (setq *seqpt nil)
  8. (princ "\n\n\nLeaving OM lisp routine, good day sir!\n")
  9. (princ)
  10. )
  11. (defun C:OM (/ pt1 pt2 dist1 srt)
  12. (setvar "cmdecho" 0)
  13. (setq srt (getvar "sortents"))
  14. (setvar "sortents" 3)
  15. (graphscr)
  16. (setq d "T")
  17.    (while d
  18.      (if (not *seqpt)(setq *seqpt 1.0))
  19.      (princ "\nEnter Distance For Offset <")
  20.      (princ *seqpt)
  21.      (setq dist1 (getdist ">: ")
  22.    )
  23. (setvar "osmode" 512)
  24.    (setq pt1 (getpoint "\nPick point on object :")
  25.          pt2 (getpoint "\nSecond point :")
  26.        )
  27.    (if (not dist1)(setq dist1 *seqpt)(setq *seqpt dist1)
  28. )
  29. (setvar "osmode" 0)
  30. (command ".line" pt1 pt2 "")
  31.    (princ "\nSide to offset")
  32. (command ".offset" dist1 pt1 pause ""
  33.            ".erase" pt1 ""
  34.            ".move" pt1 "" "@" "@")
  35.   (setq d1 (strcase (getstring "\nPress RETURN to continue or X to
  36. quit ")))
  37.   (if (= d1 "X")(setq d nil))
  38.   )
  39.   (setvar "sortents" srt)
  40.    (princ)
  41. )

 
任何帮助都将不胜感激。给我指出一个方向,或者为我做这一切,我没有偏好。
 
rkent公司
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:26:18 | 显示全部楼层
在只浏览了代码之后,考虑将临时的*error*defun嵌套在主代码(c:OM)中,并确保本地化符号,以便在主代码完成后恢复原始的*error*定义。伪代码:
 
[code](defun c:OM(/*错误*;|其他变量|)(defun*错误*(msg);;
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-6 08:39:05 | 显示全部楼层
Renderman,成功了!谢谢,rkent
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:39:36 | 显示全部楼层
rkent,
 
也许我的本教程有助于理解:
 
http://lee-mac.com/errorhandling.html
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:54:42 | 显示全部楼层
 
@Rkent-很乐意帮忙。
 
@李-写得很好的教程,我的朋友。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:14:32 | 显示全部楼层
谢谢伙计
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 22:07 , Processed in 1.251076 second(s), 64 queries .

© 2020-2025 乐筑天下

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