乐筑天下

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

[编程交流] 插入具有属性a的块

[复制链接]

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:58:50 | 显示全部楼层 |阅读模式
你好
我是个新手,需要帮助。
我需要一个lisp插入两个块交替电缆编号。第一个区块是电缆的起点,第二个区块是目的地。块具有一个名为KNUM的值的属性。在此KNUM中,应插入cablenumber。我在本论坛其他LISP的帮助下编写了以下LISP。是可行的,但目前我必须插入块,并且必须选择插入的块,它将值KNUM更改为我的电缆编号。
有人能帮我吗?
例如,在插入块时设置值,
或者通过插入点选择一个块,这样我就不必再次单击插入的块了?
 
  1. ;--------------------------------------------------------------------------
  2. ; INSERTBLK
  3. ;--------------------------------------------------------------------------
  4. (defun InsertBlock (bNme Pt)
  5. (vl-load-com)
  6. (vla-InsertBlock
  7. (if (eq acPaperSpace
  8.    (vla-get-ActiveSpace
  9.    (setq doc (vla-get-ActiveDocument
  10.    (vlax-get-acad-object)))))
  11.    (if (eq :vlax-true (vla-get-MSpace doc))
  12.    (vla-get-ModelSpace doc)
  13.    (vla-get-PaperSpace doc))
  14.    (vla-get-ModelSpace doc))
  15. (vlax-3D-point Pt) bNme 1. 1. 1. 0.)
  16. (setvar "KNUM" bNme)
  17. )
  18. ;--------------------------------------------------------------------------
  19. (defun LM:SetAttributeValue ( block tag value )
  20. ;; © Lee Mac 2010
  21. (vl-some
  22.    (function
  23.      (lambda ( attrib )
  24.        (if (eq tag (vla-get-TagString attrib))
  25.          (progn (vla-put-TextString attrib value) value)
  26.        )
  27.      )
  28.    )
  29.    (vlax-invoke block 'GetAttributes)
  30. )
  31. )
  32. ;--------------------------------------------------------------------------
  33. ;--------------------------------------------------------------------------
  34. (defun c:ins (/ oldPref oldKNR curStr ss)
  35. ;(vl-load-com)
  36. (setq snapwert (getvar "snapmode"))
  37. (setvar "snapmode" 1)
  38. ;--------------------------------------------------------------------------
  39. (initget 6)
  40. (setq numZeros (getInt "\nAnzahl der Stellen Eingeben <4>: "))
  41. (if(not numZeros)(setq numZeros 4))
  42. (defun num2str (num / numStr)
  43.    (setq numStr (itoa num))
  44.    (If (< (strlen numStr) numZeros)
  45.      (repeat (- numZeros (strlen numStr))
  46.    (setq numStr (strcat "0" numStr))
  47.    )
  48.      )
  49.    numStr
  50.    )
  51. ;--------------------------------------------------------------------------
  52. ;request of Prefix und Start KNR (= cable Number)
  53. ;--------------------------------------------------------------------------
  54. (if(not rnm:Pref)(setq rnm:Pref ""))
  55. (setq oldPref rnm:Pref)
  56. (if(not rnm:KNR)(setq rnm:KNR 1))
  57. (setq oldKNR rnm:KNR)
  58. (setq rnm:Pref (getstring T (strcat "\nPrefix: <"rnm:Pref">: ")))
  59. (if (= "" rnm:Pref)
  60.    (setq rnm:Pref oldPref))
  61. (if (= " " rnm:Pref)
  62.    (setq rnm:Pref ""))
  63. (setq rnm:KNR (getint (strcat "\nEnter Start KNR <"(itoa rnm:KNR)">: ")))
  64. (if (null rnm:KNR)
  65.    (setq rnm:KNR oldKNR))
  66. ;--------------------------------------------------------------------------
  67. (while T
  68. (setq curStr(strcat rnm:Pref(num2Str rnm:KNR)))
  69. ;--------------------------------------------------------------------------
  70. ;Insert of Block: ZU-BUS
  71. ;--------------------------------------------------------------------------
  72. (setq insPt (getpoint (strcat "\nInsert Point ZU <"curStr">: ")))
  73. (InsertBlock "ZU-BUS" insPt)
  74. ;--------------------------------------------------------------------------
  75. ;set attribute in Block: ZU-BUS
  76. ;--------------------------------------------------------------------------
  77. (if
  78. (setq ss (ssget "_+.:E:S:L" '((0 . "INSERT") (66 . 1))))
  79.    (LM:SetAttributeValue
  80.      (vlax-ename->vla-object (ssname ss 0)) "KNUM" curStr
  81.    )
  82. )
  83. ;--------------------------------------------------------------------------
  84. ;Insert of Block: VON-BUS
  85. ;--------------------------------------------------------------------------
  86. (setq insPt (getpoint (strcat "\nInsert Point VON <"curStr">: ")))
  87. (InsertBlock "VON-BUS" insPt)
  88. ;--------------------------------------------------------------------------
  89. ;set attribute in Block: VON-BUS
  90. ;--------------------------------------------------------------------------
  91. (if (setq ss (ssget "_+.:E:S:L" '((0 . "INSERT") (66 . 1))))
  92.    (LM:SetAttributeValue
  93.      (vlax-ename->vla-object (ssname ss 0)) "KNUM" curStr
  94.    )
  95. )
  96. ;--------------------------------------------------------------------------
  97. ;Increasement of KNR
  98. ;--------------------------------------------------------------------------
  99. (setq rnm:KNR(1+ rnm:KNR))
  100. (princ curStr)
  101. ) ; End while
  102. (princ)
  103. )
  104. ;--------------------------------------------------------------------------
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:16:07 | 显示全部楼层
附件是我写的一个旧的,我很快用一些新的潜艇更新了它,它可能会对你有所帮助。这些设置都在代码的顶部。
递增属性编号。lsp
回复

使用道具 举报

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 10:35:15 | 显示全部楼层
非常感谢。
我会尝试插入我的LISP或适合你的
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:52:21 | 显示全部楼层
看看你的代码,我想我的代码已经快到了
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 11:12:41 | 显示全部楼层
尝试使用Binc或BincA命令
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:36 , Processed in 0.597896 second(s), 62 queries .

© 2020-2025 乐筑天下

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