乐筑天下

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

[编程交流] ssget或其他方式

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 10:53:38 | 显示全部楼层 |阅读模式
我正在拼凑一个LISP,它允许用户在可以从LISP插入的注释旁边输入数字。我将其设置为在特定层上插入数字。如果有人删除或添加了一个层,并希望重新运行数字,则该层将被删除,并重新创建一个新的数字集。我意识到,如果有人在这一层上放了东西(即使有所有的警告不要这样做),这并不是最好的方法。我试着创建一个选择集,然后用其中的数字创建一个块。
 
有人能帮我编写代码吗?或者告诉我有没有更好的方法来完成这项工作?
 
  1. (defun C:notenumbers (/ ECL EOM EOS ECC ECE EFS)
  2. (setq ECL (getvar "clayer"))
  3. (setq EOM (getvar "orthomode"))
  4. (setq EOS (getvar "osmode"))
  5. (setq ECC (getvar "cecolor"))
  6. (setq ECE (getvar "cmdecho"))
  7. (setq EFS (getvar "style"))
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  9. (command "laydel" "N" "CCC_SHEET_LAYOUT_Note_Numbers" "" "YES")
  10. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  11.    (if (null (tblsearch "STYLE" "CCC_Note_Numbers"))
  12.   (progn
  13.       (entmake
  14.          (list
  15.            (cons 0 "STYLE")
  16.            (cons 100 "AcDbSymbolTableRecord")
  17.            (cons 100 "AcDbTextStyleTableRecord")
  18.            (cons 2 "CCC_Note_Numbers")
  19.            (cons 3 "Verdana.ttf")
  20.            (cons 40 0)
  21.    (cons 74 1) ;Bold
  22.            (cons 70 0)))))
  23. ;(command "_-style" "CCC_Note_Numbers" "verdana.ttf" "0" "1" "0" "N" "N")
  24. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  25.    (if (null (tblsearch "layer" "CCC_SHEET_LAYOUT_Note_Numbers"))
  26.       (progn
  27.         (entmake
  28.            (list
  29.              (cons 0   "LAYER")
  30.             (cons 100 "AcDbSymbolTableRecord")
  31.              (cons 100 "AcDbLayerTableRecord")
  32.              (cons 2    "CCC_SHEET_LAYOUT_Note_Numbers")
  33.              (cons 62   7)
  34.              (cons 70   0)
  35.              (cons 370  30)))))
  36. ;(command "_-layer" "s" "CCC_SHEET_LAYOUT_Note_Numbers" "")
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. (setvar "textstyle" "CCC_Note_Numbers")
  39. (setvar "clayer" "CCC_SHEET_LAYOUT_Note_Numbers")
  40. (setvar "osmode" 4)
  41. (setq myheight 2.5)
  42. (setq mynumber 1)
  43. (setq myincrement 1)
  44. (setq mypoint (getpoint "\nPick point: "))
  45. (while mypoint
  46. (command "text" "j" "BL" mypoint myheight "0" (itoa mynumber))
  47. (setq mynumber (+ mynumber myincrement))
  48. (setq mypoint (getpoint "\nPick point: "))
  49.        )
  50. ;(setq sel1 (ssget entlast))
  51.                          ;(setq sel1 (ssadd ent sel1))
  52. (alert (strcat sel1))
  53. ;(command "_-block" "notenos" "0,0" sel1)
  54. (setvar "clayer" ECL)
  55. )

115338ty3fqpnyqqnafyfu.jpg
回复

使用道具 举报

4

主题

57

帖子

53

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 11:52:05 | 显示全部楼层
你看到这个了吗。。。
 
http://www.cadtutor.net/forum/showthread.php?t=37420
 
李·麦克?对于你正在寻找的东西来说,这是一个很好的起点。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 12:10:56 | 显示全部楼层
是的,我也下载了,但我正在寻找一些非常简单的在这种情况下。我办公室的人倾向于回避有很多选择的事情。
 
这就是为什么我想这样做。我是从另一个lisp中得到的,我认为这是沿着这些线的东西,这只是选择了所有的文本,而我只想选择我在这个lisp中创建的文本。
 
  1. (setq sset (ssget "_X" '((0 . "TEXT"))) i 0)
  2. (repeat (sslength sset)
  3.    (setq ent (ssname sset i))
  4.    (setq lst (entget ent))
  5.    (setq i (1+ i))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 12:00 , Processed in 0.324903 second(s), 61 queries .

© 2020-2025 乐筑天下

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