乐筑天下

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

[编程交流] lisp中的多边形线

[复制链接]

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:49:50 | 显示全部楼层 |阅读模式
大家好,
在将lisp用于非常特定的函数方面有点新。
问题是,我有一个lisp例程,需要保存图层状态,将特定图层设置为当前图层,锁定其他图层,然后运行poly line命令,退出pline命令,然后在运行pline命令后重置回原始图层状态。这是到目前为止的代码。
 
在我到达仍在开发中的层状态之前,pline出错了。
 
那么主要的问题是,我能先让pline命令正常工作吗。
 
  1. LOA.LSP        2012 by David W. Erickson
  2. ;;;  DESCRIPTION
  3. ;;;
  4. ;;;  This function turns on a-wall-e layer and locks all non Ioffice layers, sets io-area-indv current and starts the polyline command.
  5. (DEFUN C:LOA  (/ LAYER OFF )
  6. (COMMAND "-LAYER" "A" "S" "DAVE" "" "" "" "" )
  7.            (SETQ pT1 (GETPOINT "\nSelect the 1st POINT. "))
  8. (command "-layer" "fr" "*" "th" "io*" "th" "a-*-e" "lo" "*" "unlock" "io*" "set" "io-area-indv" "fr" "a-anno*" "th" "_close_door" "u" "_close_door" "off" "a-door-e" "OFF" "A-FLOR-STRS-E" "OFF" "IO-SEC-SPCS" "OFF" "A-EQPM-E" "")
  9. (command "pline" pt1 pause )
  10. (COMMAND "-LA" "A" "R" "DAVE" "" "" "" )
  11. (COMMAND "-LA" "A" "D" "DAVE" "" "" "" )
  12. (princ)
  13. )

 
提前谢谢。
 
戴夫
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:01:37 | 显示全部楼层
请尝试用这个方法绘制多段线(我没有检查代码的其余部分):
请编辑您的帖子并添加代码标签。非常感谢。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:08:24 | 显示全部楼层
修订代码如下。我越来越近了。谢谢你的提示,希望我能恰当地包装代码。它可以设置图层并绘制多段线,但在我可以拾取第一个点之前,“命令行对话框”会出现并要求拾取第一个点,然后需要在图形编辑器中进行额外的(2)次拾取以启动pline。也许是一些简单的事情。
 
 
  1. LOA.LSP        2012 by David W. Erickson
  2. ;;; DESCRIPTION
  3. ;;;
  4. ;;; This function turns on a-wall-e layer and locks all non Ioffice layers, sets io-area-indv current and starts the polyline command.
  5. (DEFUN C:LOA (/ LAYER OFF )
  6. (COMMAND "-LAYER" "A" "S" "DAVE" "" "")
  7. (SETQ pT1 (GETPOINT "\nSelect the 1st POINT. "))
  8. (command "-layer" "fr" "*" "th" "io*" "th" "a-*-e" "lo" "*" "unlock" "io*" "set" "io-area-indv" "fr" "a-anno*" "th" "_close_door" "u" "_close_door" "off" "a-door-e" "OFF" "A-FLOR-STRS-E" "OFF" "IO-SEC-SPCS" "OFF" "A-EQPM-E" "")
  9. (command "_PLINE")
  10. (while (> (getvar "CMDACTIVE") 0)
  11. (command pause)
  12. (COMMAND "-LAYER" "A" "R" "DAVE" "" "" "")
  13. (COMMAND "-LAYER" "A" "D" "DAVE" "" "")
  14. (princ)
  15. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:13:30 | 显示全部楼层
似乎你错过了结束语。
再次,请编辑您的两篇帖子并添加代码标签。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:20:47 | 显示全部楼层
谢谢你。这次找到了代码标签。仍然并没有额外的命令行对话框窗口弹出和额外的鼠标点击所需的启动命令运气。
 
  1. LOA.LSP        2012 by David W. Erickson
  2. ;;; DESCRIPTION
  3. ;;;
  4. ;;; This function turns on a-wall-e layer and locks all non Ioffice layers, sets io-area-indv current and starts the polyline command.
  5. (DEFUN C:LOA (/ LAYER OFF )
  6. (COMMAND "-LAYER" "A" "S" "DAVE" "" "" "" "")
  7. (SETQ pT1 (GETPOINT "\nSelect the 1st POINT. "))
  8. (command "-layer" "fr" "*" "th" "io*" "th" "a-*-e" "lo" "*" "unlock" "io*" "set" "io-area-indv" "fr" "a-anno*" "th" "_close_door" "u" "_close_door" "off" "a-door-e" "OFF" "A-FLOR-STRS-E" "OFF" "IO-SEC-SPCS" "OFF" "A-EQPM-E" "")
  9. (command "_PLINE")
  10. (while (> (getvar "CMDACTIVE") 0)
  11. (command pause)
  12. )
  13. (COMMAND "-LAYER" "A" "R" "DAVE" "" "" "")
  14. (COMMAND "-LAYER" "A" "D" "DAVE" "" "")
  15. (princ)
  16. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:29:43 | 显示全部楼层
刚才注意到,在代码的前面,您要求输入一个点;也许代码应该是这样的:
  1. (command "_PLINE" [color=magenta]pT1[/color])
  2. (while (> (getvar "CMDACTIVE") 0)
  3. (command pause)
  4. )

如果它仍然不能像预期的那样工作,那么请在这里发布您将在其中使用它的图形(没有内容,仅适用于第三层),以测试代码的其余部分。
谢谢你编辑第一篇帖子,现在看起来好多了。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:36:27 | 显示全部楼层
成功了!非常感谢您的耐心和帮助。在接下来的几个月里,这一常规将非常适合!
 
非常感谢,保重。
 
大卫
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:40:04 | 显示全部楼层
很高兴听到这个问题现在解决了。不客气,大卫!
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:47:33 | 显示全部楼层
事实上,今天早上上班后,我不得不对它进行更多修改。前一个版本在第一次运行时效果很好,但是如果我再次运行它,我会被F2屏幕击中,必须在屏幕上重新拾取以开始多段线。我在一些地方添加了graphscr命令来抑制屏幕并继续滚动。
 
再次感谢你的帮助。
 
  1. 6
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:49:50 | 显示全部楼层
尝试如下调用LAYER命令:
  1. 7
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:43 , Processed in 0.388912 second(s), 72 queries .

© 2020-2025 乐筑天下

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