乐筑天下

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

[编程交流] 访问块中的实体

[复制链接]

9

主题

26

帖子

17

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 14:33:44 | 显示全部楼层 |阅读模式
你好
 
只是想知道我该怎么做?
 
例如,应用程序可以隔离块内的所有层。
 
我已经在entget中搜索并丢弃了block对象,但我真的不知道如何获得实体列表。
 
我在扩展数据和字典方面非常有限,所以我猜信息存储在那里。
 
如果我不够清楚,请告诉我。
 
任何帮助都会很好
 
谢谢
马丁
 
  1. ((-1 . <Entity name: 7ef06410>) (0 . INSERT) (5 . 253A) (102 .
  2. {ACAD_XDICTIONARY) (360 . <Entity name: 7ef06538>) (102 . }) (330 . <Entity
  3. name: 7ef01cb8>) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 .
  4. AcDbBlockReference) (2 . ms-block) (10 0.0 0.0 0.0) (41 . 1.0) (42 . 1.0) (43 .
  5. 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

 
  1. ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00cbef78>
  2. ;   Document (RO) = #<VLA-OBJECT IAcadDocument 016f6d08>
  3. ;   EffectiveName (RO) = "ms-block"
  4. ;   Handle (RO) = "253A"
  5. ;   HasAttributes (RO) = 0
  6. ;   HasExtensionDictionary (RO) = -1
  7. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0a6b7604>
  8. ;   InsertionPoint = (0.0 0.0 0.0)
  9. ;   InsUnits (RO) = "Unitless"
  10. ;   InsUnitsFactor (RO) = 1.0
  11. ;   IsDynamicBlock (RO) = 0
  12. ;   Layer = "0"
  13. ;   Linetype = "BYLAYER"
  14. ;   LinetypeScale = 1.0
  15. ;   Lineweight = -1
  16. ;   Material = "ByLayer"
  17. ;   Name = "ms-block"
  18. ;   Normal = (0.0 0.0 1.0)
  19. ;   ObjectID (RO) = 2129683472
  20. ;   ObjectName (RO) = "AcDbBlockReference"
  21. ;   OwnerID (RO) = 2129665208
  22. ;   PlotStyleName = "ByLayer"
  23. ;   Rotation = 0.0
  24. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 2126b740>
  25. ;   Visible = -1
  26. ;   XEffectiveScaleFactor = 1.0
  27. ;   XScaleFactor = 1.0
  28. ;   YEffectiveScaleFactor = 1.0
  29. ;   YScaleFactor = 1.0
  30. ;   ZEffectiveScaleFactor = 1.0
  31. ;   ZScaleFactor = 1.0
  32. ; Methods supported:
  33. ;   ArrayPolar (3)
  34. ;   ArrayRectangular (6)
  35. ;   ConvertToAnonymousBlock ()
  36. ;   ConvertToStaticBlock (1)
  37. ;   Copy ()
  38. ;   Delete ()
  39. ;   Explode ()
  40. ;   GetAttributes ()
  41. ;   GetBoundingBox (2)
  42. ;   GetConstantAttributes ()
  43. ;   GetDynamicBlockProperties ()
  44. ;   GetExtensionDictionary ()
  45. ;   GetXData (3)
  46. ;   Highlight (1)
  47. ;   IntersectWith (2)
  48. ;   Mirror (2)
  49. ;   Mirror3D (3)
  50. ;   Move (2)
  51. ;   ResetBlock ()
  52. ;   Rotate (2)
  53. ;   Rotate3D (3)
  54. ;   ScaleEntity (2)
  55. ;   SetXData (2)
  56. ;   TransformBy (1)
  57. ;   Update ()
回复

使用道具 举报

9

主题

26

帖子

17

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 14:57:59 | 显示全部楼层
http://www.cadtutor.net/forum/showthread.php?t=36100
 
刚刚找到这个。
 
还没查出来
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:10:12 | 显示全部楼层
这个链接应该对你有帮助是的。
 
只是想知道,如果这个应用程序是用于层隔离的,您还可以研究“nentsel”:
 
  1. (defun c:bLayIso (/ sEnt)
  2. (vl-load-com)
  3. (if (setq sEnt (car (nentsel "\nSelect Sub-Entity: ")))
  4.    (vlax-for lay
  5.      (vla-get-layers
  6.        (vla-get-ActiveDocument
  7.          (vlax-get-acad-object)))
  8.      (or  (eq (vla-get-Name lay) (cdr (assoc 8 (entget sEnt))))
  9.           (vla-put-layeron lay :vlax-false))))
  10. (princ))
回复

使用道具 举报

9

主题

26

帖子

17

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 15:28:18 | 显示全部楼层
谢谢李。
在那个链接的帮助下,我最终完成了一些事情(我想你的一个也一样)。不过,只需使用entsel和auto-lisp,基本上使用tblobjname和entnext函数。下一步可能是像ssget一样,合并一个临时层状态,然后用一个姐妹unisolate返回(我想类似于layiso和layuniso或其他类型)
 
没有使用entsel,所以不知道与entsel有什么不同。明天上班时结帐。
 
是的,虽然我不确信我完全理解你发布的vlisp是如何工作的(或有点让我困惑-我不认为我用过这种方式-有点像cond?),看起来它只是将选定的实体名称逐个与整个图层列表进行比较。如果层(层)名称等于选定实体层名称,则它不执行任何操作,但如果不等于,则将其关闭以保持“或”不变。
 
再次感谢
干杯
马丁
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:47:35 | 显示全部楼层
 
nentsel提供了对实体中子实体的直接访问-它返回一个类似于entsel的列表,但带有子实体的名称。
 
 
在配偶身上-
我使用“or”而不是(if(not…)仅仅是因为我喜欢它的简洁性。
vlax for只循环遍历层集合中的所有层,然后,对于每个层,“or”语句比较层名称,因此,如果层名称不等于所选名称,则将其关闭。
 
希望这能有所帮助,
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:23 , Processed in 0.435417 second(s), 62 queries .

© 2020-2025 乐筑天下

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