乐筑天下

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

[编程交流] 如何继续执行t

[复制链接]

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 07:21:27 | 显示全部楼层 |阅读模式
尊敬的各位大师。
将UCS“OB”设置为继续执行例程后?
一旦完成循环,如何重置以前的UCS?
 
  1. ;;teknomatika
  2. (defun c:asna (/ hdist vdist divn distseg pti1 pts1 pti2)
  3. (command "ucs" "OB" "pause" "")[color="red"];;The execution is stopping here.[/color]
  4. (setq hdist (getdist "\nHorizontal Distance: "))
  5. (setq vdist(getdist "\nVertical Distance "))
  6. (setq divn (getint "\nDivisons Number: "))
  7. (setq distseg (/ hdist divn))
  8. (setq pti1 (getpoint "\nStart Point: "))
  9. (setq pts1 (list (+(car pti1)distseg)(+(cadr pti1)vdist)(caddr pti1)))
  10. (setq pti2 (list (+(car pti1)distseg)(cadr pti1)(caddr pti1)))
  11. (repeat divn
  12. (command "_.line" "_non" pti1 "_non" pts1 "_non" pti2 "_non""")
  13. (setq pti1 (list (+(car pti1)distseg)(cadr pti1)(caddr pti1)))
  14. (setq pts1 (list (+(car pts1)distseg)(cadr pts1)(caddr pti1)))
  15. (setq pti2 (list (+(car pti1)distseg)(-(cadr pts1)vdist)(caddr pti1)))     
  16. (princ)
  17. );repeat
  18. )
  19. (prompt "\nTo invoque command type ASNA ")
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:29:52 | 显示全部楼层
  1. (command "_.ucs" "_P")
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 07:36:21 | 显示全部楼层
 
李,
那,回到以前的UCS?
但是在设置UCS“OB”后允许继续执行例程?
 
  1. (command "ucs" "OB" "pause" "");;The execution is stopping here.
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:39:06 | 显示全部楼层
你需要这样写:
  1. (command "_UCS" "_OB" [color=red]pause[/color])
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 07:42:31 | 显示全部楼层
储罐。
Ok有效。但它以一个奇怪的“命令:零”结束
是这样吗?
 
 
  1. ;;teknomatika
  2. (defun c:asna (/ oldclay hdist vdist divn distseg pti1 pts1 pti2)
  3. (setq oldclay (getvar "clayer"))
  4. (command "layer" "new" "asnas" "color" "8" "asnas" "")
  5. (command "layer" "set" "asnas" "")
  6. ;;(command "_.ucs" "_P");; Not work
  7. (command "_UCS" "_OB" pause)
  8. (setq hdist (getdist "\nHorizontal Distance: "))
  9. (setq vdist(getdist "\nVertical Distance "))
  10. (setq divn (getint "\nDivisons Number: "))
  11. (setq distseg (/ hdist divn))
  12. (setq pti1 (getpoint "\nStart Point: "))
  13. (setq pts1 (list (+(car pti1)distseg)(+(cadr pti1)vdist)(caddr pti1)))
  14. (setq pti2 (list (+(car pti1)distseg)(cadr pti1)(caddr pti1)))
  15. (repeat divn
  16. (command "_.line" "_non" pti1 "_non" pts1 "_non" pti2 "_non""")
  17. (setq pti1 (list (+(car pti1)distseg)(cadr pti1)(caddr pti1)))
  18. (setq pts1 (list (+(car pts1)distseg)(cadr pts1)(caddr pti1)))
  19. (setq pti2 (list (+(car pti1)distseg)(-(cadr pts1)vdist)(caddr pti1)))     
  20. (princ)
  21. );repeat
  22. (setvar "clayer" oldclay)
  23. (command "_.ucs" "_P")
  24. )
  25. (prompt "\nTo invoque command type ASNA ")
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:47:37 | 显示全部楼层
我对你的代码做了一些修改:
 
[列表]
  • 结束命令调用时,无需禁用AutoOsnap,
  • 重复PRINC调用没有用
  • 为了让例程悄悄退出,您需要添加一个PRINC调用作为最后一个语句;这将消除最后的零。
    [/列表]
    1. ...
    2. (command "_.line" "_non" pti1 "_non" pts1 "_non" pti2 [s][color=red]"_non"[/color][/s] "")
    3. (setq pti1 (list (+(car pti1)distseg)(cadr pti1)(caddr pti1)))
    4. (setq pts1 (list (+(car pts1)distseg)(cadr pts1)(caddr pti1)))
    5. (setq pti2 (list (+(car pti1)distseg)(-(cadr pts1)vdist)(caddr pti1)))
    6. [s][color=red](princ)[/color][/s]
    7. );repeat
    8. (setvar "clayer" oldclay)
    9. (command "_.ucs" "_P")
    10. [color=red] (princ)[/color]
    11. )
  • 回复

    使用道具 举报

    57

    主题

    243

    帖子

    190

    银币

    后起之秀

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

    铜币
    285
    发表于 2022-7-6 07:55:40 | 显示全部楼层
     
    米尔恰,
     
    坦克求救!
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 08:00:17 | 显示全部楼层
    teknomatika,
     
    旁白:您理解为什么在原始代码中“nil”返回到命令行吗?
    回复

    使用道具 举报

    57

    主题

    243

    帖子

    190

    银币

    后起之秀

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

    铜币
    285
    发表于 2022-7-6 08:04:23 | 显示全部楼层
     
    李,
    我认为是这样。
    对于Mircea的解释,也是因为我在循环中(Princ)的糟糕位置是一个错误。
     
    坦克的帮助。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 08:06:33 | 显示全部楼层
     
    为了向您澄清:在原始代码中,nil返回到命令行,因为defun表达式中包含的最后一个计算表达式是命令表达式,并且命令函数始终返回nil(如文档中所述)。
     
    请注意有关defun函数的Visual LISP IDE帮助文档中的此行为:
     
     
    定义“子功能”时,这种固有行为是直观的,例如:
    当使用数值参数调用时,上述函数将返回函数定义(defun)内最后一个表达式的计算结果,即对+函数的调用,返回提供的参数加2:
    请注意,这是defun函数的一个属性,因此适用于以这种方式定义的所有函数。符号名前缀为c:的函数以完全相同的方式处理-c:前缀只允许直接从命令行将函数作为命令调用。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-10 05:16 , Processed in 0.525864 second(s), 72 queries .

    © 2020-2025 乐筑天下

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