乐筑天下

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

[编程交流] 帮助,关于txt选项,neede

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:07:23 | 显示全部楼层 |阅读模式
好的,伙计们,谢谢你们在这里为我们服务。我是lisp的初学者,这是我的第一篇帖子。我正在尝试编写一个lisp,它将创建一个点的txt数字描述(+每个下一个点1个数字),并将其放置在用户定义的点上。当lisp为一个点创建一个文本时,我希望它是可见的,并固定在一个光标上,直到我单击它将被定位的位置。你能建议我如何用Lisp程序的语言写下来吗?
 
提前谢谢你。
 
 
这是我的Lisp程序:
 
 
  1. (defun c:descr (/ startNum inp rot)
  2.      
  3.       (setq startNum (getint "\nInsert start number <1>: "))
  4.       (if (= startNum nil)(setq startNum 1))
  5.       (setq rot (getreal "\nInser txt rotation angle <0>: "))
  6.       (if (= rot nil)(setq rot 0))
  7.       (setq inp (getpoint "Specify first point: "))
  8.       (while inp
  9.     (command "text" inp 1.5 rot startNum)
  10.     (setq inp (getpoint "Specify next point: "))
  11.     (setq startNum (+ startNum 1))
  12.        )
  13.    
  14. (princ)
  15. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:19:25 | 显示全部楼层
也许这会帮助你:
 
增量编号套件
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:27:18 | 显示全部楼层
谢谢李,这是我需要的东西,但我正在努力学习lisp,这个例程太复杂了,我找不到与文本跟随光标问题相关的这部分
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 07:35:21 | 显示全部楼层
如果你需要一个简单的代码
 
  1. (defun c:descr (/ startNum inp rot)
  2. [color="blue"](defun chg ()
  3. (setq ent (entget (entlast)))
  4. (entmod (subst (cons 1 (itoa (setq startNum (1+ startNum))))
  5. (assoc 1 ent) ent )))[/color]
  6. (setq startNum (getint "\nInsert start number <1>: "))
  7. (if        (= startNum nil)
  8. (setq startNum 1)
  9. )
  10. (setq rot (getreal "\nInser txt rotation angle <0>: "))
  11. (if        (= rot nil)
  12. (setq rot 0)
  13. )
  14. (setq inp (getpoint "Specify first point: "))
  15. (command "text" inp 1.5 rot startNum)
  16. [color="blue"](while (and (princ "\nPress Escape to terminate:")
  17. (not (command "_copy" (entlast) "" inp pause (chg)))
  18. (setq inp (getvar 'lastpoint))
  19. ))[/color]
  20. (princ)
  21. )

 
记住按ESC键终止命令。
 
如果用户按ESC以外的任何键终止程序,则可以修改上述代码段。
 
HTH公司
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:42:54 | 显示全部楼层
谢谢pBe这就是我需要的,但既然我是初学者,你能解释一下“while”标签中发生了什么吗。我设法理解了“defun chg”的功能。
再次感谢
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 07:50:51 | 显示全部楼层
 
在上述情况下,终止while表达式的唯一方法是按ESC键,而不是通过任何方式完全退出,这并不是使用while的理想方式。我正在考虑使用grread函数通过按任意键来终止循环,使用该函数肯定会为初学者打开一罐蠕虫。最好慢慢来。
 
while函数通常会对表达式求值,只要条件不为零,它就会保持在“循环”中
 
例子:
  1. (while (setq object (Car (entsel "\nSelect Object: "))) ;<---- this line is the condition, will prompt you as long you keep selecting an entity
  2.       (princ (strcat "\nSelected object is a "
  3.                      (cdr (assoc 0 (entget object)))
  4.                      ) ;_ end of strcat
  5.              ) ;_ end of princ
  6.       ) ;_ end of while

 
玩得开心-大卫
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 07:57:29 | 显示全部楼层
FWIW:利用grread的附加代码
 
  1. [b][color=BLACK]([/color][/b]defun c:descr [b][color=FUCHSIA]([/color][/b]/ sdef num rot inp[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]setq sdef
  3.    [b][color=NAVY]([/color][/b]if global_sdef global_sdef 1[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]initget 0[b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]setq num [b][color=NAVY]([/color][/b]getint [b][color=MAROON]([/color][/b]strcat [color=#2f4f4f]"\nStarting Number <"[/color] [b][color=GREEN]([/color][/b]itoa sdef[b][color=GREEN])[/color][/b][color=#2f4f4f]">:   "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]or num [b][color=NAVY]([/color][/b]setq num sdef[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  7. [b][color=FUCHSIA]([/color][/b]setq global_sdef num[b][color=FUCHSIA])[/color][/b]
  8. [b][color=FUCHSIA]([/color][/b]initget 0[b][color=FUCHSIA])[/color][/b]
  9. [b][color=FUCHSIA]([/color][/b]setq rot [b][color=NAVY]([/color][/b]getangle [color=#2f4f4f]"\nInsert Text Rotation Angle <0>:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  10. [b][color=FUCHSIA]([/color][/b]or rot [b][color=NAVY]([/color][/b]setq rot 0[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  11. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]setq inp [b][color=MAROON]([/color][/b]getpoint [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"\nPoint Number "[/color] [b][color=BLUE]([/color][/b]itoa num[b][color=BLUE])[/color][/b] [color=#2f4f4f]" Location:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  12. [color=#8b4513];;;MAIN TEXT ENTITY VALUES[/color]
  13.         [b][color=NAVY]([/color][/b]entmake [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"TEXT"[/color][b][color=GREEN])[/color][/b]
  14.                        [b][color=GREEN]([/color][/b]cons 1 [b][color=BLUE]([/color][/b]itoa num[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  15.                        [b][color=GREEN]([/color][/b]cons 10 inp[b][color=GREEN])[/color][/b]
  16.                        [b][color=GREEN]([/color][/b]cons 50 rot[b][color=GREEN])[/color][/b]
  17.                        [b][color=GREEN]([/color][/b]cons 40 1.5[b][color=GREEN])[/color][/b]
  18. [color=#8b4513];;;TEXT SCALE AND OBLIQUE ANGLE[/color]
  19.                        [b][color=GREEN]([/color][/b]assoc 41 [b][color=BLUE]([/color][/b]tblsearch [color=#2f4f4f]"STYLE"[/color] [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"TEXTSTYLE"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  20.                        [b][color=GREEN]([/color][/b]cons 51 [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 50 [b][color=PURPLE]([/color][/b]tblsearch [color=#2f4f4f]"STYLE"[/color] [b][color=TEAL]([/color][/b]getvar [color=#2f4f4f]"TEXTSTYLE"[/color][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  21. [color=#8b4513];;;TEXT JUSTIFICATIONS[/color]
  22.                        [b][color=GREEN]([/color][/b]cons 11 [b][color=BLUE]([/color][/b]list 0 0 0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  23.                        [b][color=GREEN]([/color][/b]cons 71 0[b][color=GREEN])[/color][/b]
  24.                        [b][color=GREEN]([/color][/b]cons 72 0[b][color=GREEN])[/color][/b]
  25.                        [b][color=GREEN]([/color][/b]cons 73 0[b][color=GREEN])[/color][/b]
  26. [color=#8b4513];;;CURRENT ENTITY CONSTURUCTION SETTINGS[/color]
  27.                        [b][color=GREEN]([/color][/b]cons 7 [b][color=BLUE]([/color][/b]getvar [color=#2f4f4f]"TEXTSTYLE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  28.                        [b][color=GREEN]([/color][/b]cons 8 [b][color=BLUE]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  29.                        [b][color=GREEN]([/color][/b]cons 6 [b][color=BLUE]([/color][/b]getvar [color=#2f4f4f]"CELTYPE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  30.                        [b][color=GREEN]([/color][/b]cons 39 [b][color=BLUE]([/color][/b]getvar [color=#2f4f4f]"THICKNESS"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  31.                        [b][color=GREEN]([/color][/b]cons 62 [b][color=BLUE]([/color][/b]cond [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]= [b][color=TEAL]([/color][/b]getvar [color=#2f4f4f]"CECOLOR"[/color][b][color=TEAL])[/color][/b] [color=#2f4f4f]"BYLAYER"[/color][b][color=PURPLE])[/color][/b] 256[b][color=RED])[/color][/b]
  32.                                       [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]= [b][color=TEAL]([/color][/b]getvar [color=#2f4f4f]"CECOLOR"[/color][b][color=TEAL])[/color][/b] [color=#2f4f4f]"BYBLOCK"[/color][b][color=PURPLE])[/color][/b] 0[b][color=RED])[/color][/b]
  33.                                       [b][color=RED]([/color][/b]T  [b][color=PURPLE]([/color][/b]atoi [b][color=TEAL]([/color][/b]getvar [color=#2f4f4f]"CECOLOR"[/color][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  34.                        [b][color=GREEN]([/color][/b]cons 210 [b][color=BLUE]([/color][/b]trans '[b][color=RED]([/color][/b]0 0 1[b][color=RED])[/color][/b] 0 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  35.         [b][color=NAVY]([/color][/b]setq num [b][color=MAROON]([/color][/b]1+ num[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  36. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
不过有点乱。愉快地剖析代码的grread行
 
在此处了解grread:
http://www.cadtutor.net/forum/showthread.php?57304-Get-quot-alert-quot-when-pressing-a-key-in-a-while-loop-how&highlight=Wrap+statements+expression
 
祝大家新年快乐。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:04:49 | 显示全部楼层
新年快乐
 
谢谢你们的回答伙计们
 
@pBe我理解这一部分,但接下来的几行都是我不理解的
 
对于grread函数,我需要更多的时间。如果你们不介意的话,我会问你们更多的问题
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:12:07 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 15:08 , Processed in 0.796447 second(s), 70 queries .

© 2020-2025 乐筑天下

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