乐筑天下

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

更改DYN块可视化状态(命令行)?

[复制链接]

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2016-1-11 07:40:54 | 显示全部楼层 |阅读模式
是否有一种方法可以通过命令提示符更改块可见性状态?我正在四处交换秤。我想选择公司箭头,并将可见性状态更改为我需要的任何规模。我确定我错过了什么!再次感谢。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2016-1-11 08:04:22 | 显示全部楼层
从未在命令行尝试过
您能用autolisp完成吗?我有一个例程,根据视口的比例在条形图上设置文本。
回复

使用道具 举报

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2016-1-11 08:06:29 | 显示全部楼层
我本想使用视口的字段部分,但…无法使用该部分。。。
回复

使用道具 举报

38

主题

1350

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1502
发表于 2016-1-11 08:43:14 | 显示全部楼层
我的大多数指北针都是注释性块....放置在模型空间中,以便根据世界UCS自动向北旋转。
插入后无需缩放或旋转它们。
由于paperspace指北针很难处理,而且不需要一些代码就能100%正确旋转。
回复

使用道具 举报

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2016-1-11 13:03:14 | 显示全部楼层
好吧,我有机会找到一些有用的东西。李先生又这样做了
我想知道如何将(“成本计算”)更改为(“1”=10”)?我得到一个错误
;错误:输入的字符串太长
  1. (setq blk "DWA STAMP" ;; Block Name
  2. vis "For Costing" ;; New Visibility State
  3. )

这是他的代码:
http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/changing-visibility-states-in-dynamic-block/td-p/5322263
  1. (defun c:changevis ( / blk idx obj sel vis )
  2. (setq blk "DWA STAMP" ;; Block Name
  3. vis "For Costing" ;; New Visibility State
  4. )
  5. (if (setq sel (ssget "_X" (list '(0 . "INSERT") (cons 2 (strcat "`*U*," blk)) '(410 . "~Model"))))
  6. (repeat (setq idx (sslength sel))
  7. (if (= (strcase blk) (strcase (LM:blockname (setq obj (vlax-ename->vla-object (ssname sel (setq idx (1- idx))))))))
  8. (LM:SetVisibilityState obj vis)
  9. )
  10. )
  11. )
  12. (princ)
  13. )
  14. ;; Block Name - Lee Mac
  15. ;; Returns the true (effective) name of a supplied block reference
  16. (defun LM:blockname ( obj )
  17. (if (vlax-property-available-p obj 'effectivename)
  18. (defun LM:blockname ( obj ) (vla-get-effectivename obj))
  19. (defun LM:blockname ( obj ) (vla-get-name obj))
  20. )
  21. (LM:blockname obj)
  22. )
  23. ;; Set Dynamic Block Visibility State - Lee Mac
  24. ;; Sets the Visibility Parameter of a Dynamic Block (if present) to a specific value (if allowed)
  25. ;; blk - [vla] VLA Dynamic Block Reference object
  26. ;; val - [str] Visibility State Parameter value
  27. ;; Returns: [str] New value of Visibility Parameter, else nil
  28. (defun LM:SetVisibilityState ( blk val / vis )
  29. (if
  30. (and
  31. (setq vis (LM:getvisibilityparametername blk))
  32. (member (strcase val) (mapcar 'strcase (LM:getdynpropallowedvalues blk vis)))
  33. )
  34. (LM:setdynpropvalue blk vis val)
  35. )
  36. )
  37. ;; Set Dynamic Block Property Value - Lee Mac
  38. ;; Modifies the value of a Dynamic Block property (if present)
  39. ;; blk - [vla] VLA Dynamic Block Reference object
  40. ;; prp - [str] Dynamic Block property name (case-insensitive)
  41. ;; val - [any] New value for property
  42. ;; Returns: [any] New value if successful, else nil
  43. (defun LM:setdynpropvalue ( blk prp val )
  44. (setq prp (strcase prp))
  45. (vl-some
  46. '(lambda ( x )
  47. (if (= prp (strcase (vla-get-propertyname x)))
  48. (progn
  49. (vla-put-value x (vlax-make-variant val (vlax-variant-type (vla-get-value x))))
  50. (cond (val) (t))
  51. )
  52. )
  53. )
  54. (vlax-invoke blk 'getdynamicblockproperties)
  55. )
  56. )
  57. ;; Get Dynamic Block Property Allowed Values - Lee Mac
  58. ;; Returns the allowed values for a specific Dynamic Block property.
  59. ;; blk - [vla] VLA Dynamic Block Reference object
  60. ;; prp - [str] Dynamic Block property name (case-insensitive)
  61. ;; Returns: [lst] List of allowed values for property, else nil if no restrictions
  62. (defun LM:getdynpropallowedvalues ( blk prp )
  63. (setq prp (strcase prp))
  64. (vl-some '(lambda ( x ) (if (= prp (strcase (vla-get-propertyname x))) (vlax-get x 'allowedvalues)))
  65. (vlax-invoke blk 'getdynamicblockproperties)
  66. )
  67. )
  68. ;; Get Visibility Parameter Name - Lee Mac
  69. ;; Returns the name of the Visibility Parameter of a Dynamic Block (if present)
  70. ;; blk - [vla] VLA Dynamic Block Reference object
  71. ;; Returns: [str] Name of Visibility Parameter, else nil
  72. (defun LM:getvisibilityparametername ( blk / vis )
  73. (if
  74. (and
  75. (vlax-property-available-p blk 'effectivename)
  76. (setq blk
  77. (vla-item
  78. (vla-get-blocks (vla-get-document blk))
  79. (vla-get-effectivename blk)
  80. )
  81. )
  82. (= :vlax-true (vla-get-isdynamicblock blk))
  83. (= :vlax-true (vla-get-hasextensiondictionary blk))
  84. (setq vis
  85. (vl-some
  86. '(lambda ( pair )
  87. (if
  88. (and
  89. (= 360 (car pair))
  90. (= "BLOCKVISIBILITYPARAMETER" (cdr (assoc 0 (entget (cdr pair)))))
  91. )
  92. (cdr pair)
  93. )
  94. )
  95. (dictsearch
  96. (vlax-vla-object->ename (vla-getextensiondictionary blk))
  97. "ACAD_ENHANCEDBLOCK"
  98. )
  99. )
  100. )
  101. )
  102. (cdr (assoc 301 (entget vis)))
  103. )
  104. )
  105. (vl-load-com) (princ)

回复

使用道具 举报

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2016-1-11 13:15:50 | 显示全部楼层
您将需要使用反斜杠转义字符转义字符串中的双引号,即:
  1. "1"=10'"

我很高兴您发现代码有用!
回复

使用道具 举报

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2016-1-11 13:17:10 | 显示全部楼层
伙计,太棒了。真的真的太棒了!很容易改变,也很容易理解。再次感谢你!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-2 20:47 , Processed in 0.732353 second(s), 66 queries .

© 2020-2025 乐筑天下

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