乐筑天下

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

[编程交流] 帮助改进顺序n

[复制链接]

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:17:37 | 显示全部楼层 |阅读模式
我有一个很好的lisp,它可以对现有文本或具有属性的块按顺序编号/字母。我不太精通Lisp程序。我想知道是否有人可以修改这个lisp来处理带有文本的多重引线,更重要的是,使用包含属性的块的多重引线。或者可能已经有一个Lisp程序的存在?
 
提前谢谢,
(我不知道这个Lisp程序是从哪里来的,也不知道是谁写的)。
以下是lisp代码:
 
  1. ;  SEQ.LSP          Sequential text
  2. ;;Automatic Sequential Numbering and Lettering
  3. (defun *ERROR*  (MSG)
  4. (princ MSG)
  5. (princ "\nFunction cancelled")
  6. (princ)
  7. )
  8. (defun SQN  ()
  9. (princ "\n")
  10. (princ SEQ)
  11. (setq ENT (entget (car (nentsel "\n - Select Text to Number"))))
  12. (while ENT
  13.    (if (or (= (cdr (assoc 0 ENT)) "TEXT")
  14.            (= (cdr (assoc 0 ENT)) "ATTRIB"))
  15.      (progn
  16.        (entmod
  17.          (subst (cons 1 SEQ) (assoc 1 ENT) ENT)
  18.          )
  19.        (entupd (cdr (car ENT)))
  20.        (setq SEQ (itoa (1+ (read SEQ))))
  21.        )
  22.      (princ "\nEntity Must be TEXT")
  23.      )
  24.    (princ "\n")
  25.    (princ SEQ)
  26.    (setq ENT (entget (car (nentsel " - Select Text: "))))
  27.    (setq *SEQ (itoa (1+ (read SEQ))))
  28.    )
  29. )
  30. (defun SQL  ()
  31. (princ "\n")
  32. (princ SEQ)
  33. (setq ENT (entget (car (nentsel "\nSelect Text to Letter"))))
  34. (while ENT
  35.    (if (or (= (cdr (assoc 0 ENT)) "TEXT")
  36.            (= (cdr (assoc 0 ENT)) "ATTRIB"))
  37.      (progn
  38.        (entmod
  39.          (subst (cons 1 SEQ) (assoc 1 ENT) ENT)
  40.          )
  41.        (entupd (cdr (car ENT)))
  42.        (setq SEQ (chr (1+ (ascii SEQ))))
  43.        )
  44.      (princ "\nEntity Must be TEXT")
  45.      )
  46.    (princ "\n")
  47.    (princ SEQ)
  48.    (setq ENT (entget (car (nentsel " - Select Text: "))))
  49.    (setq *SEQ (chr (1+ (ascii SEQ))))
  50.    )
  51. )
  52. (defun C:SEQ  (/ SEQ ENT)
  53. (if (not *SEQ)
  54.    (setq *SEQ "1")
  55.    )
  56. (princ (strcat "\nStarting Letter or Number <" *SEQ "> :"))
  57. (setq SEQ (getstring))
  58. (if (not (read SEQ))
  59.    (setq SEQ *SEQ)
  60.    (setq *SEQ SEQ)
  61.    )
  62. (setq NUM (numberp (read SEQ)))
  63. (setvar "cmdecho" 0)
  64. (graphscr)
  65. (if (not NUM)
  66.    (SQL)
  67.    (SQN)
  68.    )
  69. (setvar "cmdecho" 1)
  70. (princ)
  71. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:04:05 | 显示全部楼层
这可能有助于它处理数字或alpha 1 A,版本2将检查最后一个数字/apha
 
  1. ; bubble pt num
  2. ; BY ALAN H AUG 2014
  3. (alert "Type Bub to repeat")
  4. (defun C:bub ( / ptnum ptnumb pt pt2 oldsnap chrnum)
  5. (setq oldsnap (getvar "osmode"))
  6. (setvar "textstyle" "standard")
  7. (setq ptnum (getstring "\nEnter Pt Number or alpha"))
  8. (setq chrnum (ascii (substr ptnum 1 1))) ; 1st character is number
  9. (if (< chrnum 58)
  10. (setq ptnumb (atof ptnum)) ;convert back to a number
  11. )
  12. (while (setq pt (getpoint "\Pick end of line Enter to exit"))
  13. (setq pt2 (polar pt (/ pi 2.0) 3.0))
  14. (setvar "osmode" 0)
  15.       
  16. (Command "circle" pt 3.0)
  17. (command "move" "L" "" pt pt2)
  18. (if (< chrnum 58)
  19. (progn
  20. (command "-Text" "J" "MC" pt "3.0" "" (rtos ptnumb 2 0))
  21. (setq ptnumb (+ ptnumb 1))
  22. )
  23. (progn
  24. (command "-Text" "J" "MC" pt "3.0" "" (chr chrnum))
  25. (setq chrnum (+ chrnum 1))
  26. )
  27. )
  28. (command "move" "L" "" pt pt2)
  29. (setvar "osmode" 1)
  30. )
  31. (setvar "osmode" oldsnap)
  32. (princ)
  33. ) ; end defun
  34. (C:BUB)
  35. (princ)
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 23:28:26 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:06 , Processed in 0.701053 second(s), 58 queries .

© 2020-2025 乐筑天下

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