明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1455|回复: 6

[提问] 恳请大师帮忙看下如何批量修改块的explodable(允许分解)属性

[复制链接]
发表于 2018-6-14 17:09:02 | 显示全部楼层 |阅读模式
本帖最后由 herbie 于 2018-6-25 11:37 编辑

各位大侠,在论坛里看到CAOYIN大大的代码:
(vla-put-Explodable
  (vla-item
   (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
    "BlockName"
  )
  :vlax-false
)
是用于修改块的explodable属性的,于是有了几位大侠的程序,但只看到单个修改的用的是:
(setq X (entsel "\n选择块: "))
(setq X (vlax-ename->vla-object (car X)))

请大侠指教下怎么去编写可以批量选择并修改图块的这个属性呢?
对于菜鸟,这个问题太难了求顶 求指教
给个思路也行啊
有什么样的函数可以修改选择的多个快的属性呢




 楼主| 发表于 2018-6-21 11:19:13 | 显示全部楼层
人工置顶一下,帖子上不去啊
 楼主| 发表于 2018-6-25 10:46:34 | 显示全部楼层
人工置顶,描述的有点臃肿,希望大家评论下,保证下人气啊。
不太熟悉论坛搜索的技巧,但是我搜了关键词,也找到了类似的贴子,但未发现答案,
如:http://bbs.mjtd.com/forum.php?mo ... D6%BD%E2&page=2

再如http://bbs.mjtd.com/forum.php?mo ... A%D0%ED%B7%D6%BD%E2

再如:
http://bbs.mjtd.com/thread-102205-1-1.html
这个帖子的6L哥们和我遇到相同的问题了,但我发现他最后也没有解决

发表于 2018-6-25 16:45:05 | 显示全部楼层
本帖最后由 张大锤 于 2018-6-25 16:50 编辑

加循环就可以了 选择多个 就可以处理
现在是没有循环 选择多个 只会执行第一个选择的

(setq n 0)
(repeat (sslength ***)
(setq n(1+ n))
)

这是我常用的没有结合在一起的写法:
(setq ss (SSGET  '((0 . "INSERT"))))
(setq n 0)
(repeat (sslength ss)
(setq ent(ssname ss n))
(setq en(entget ent))
(setq p10 (cdr (assoc 10 en)))
(setq n(1+ n))
)
循環的時候寫法

(setq ss (SSGET  '((0 . "INSERT"))))                 
(setq ent (ssname ss 0))
(setq en (entget ent))
(setq p10 (cdr(assoc 10 en )))
不循環的時候寫法



我不会 vlisp 所以只能帮你到这了
发表于 2022-8-5 17:49:48 | 显示全部楼层
你好,楼主
这个问题解决了吗?能否提供一下部分代码
发表于 2023-12-30 09:57:57 | 显示全部楼层
yaokui25 发表于 2022-8-5 17:49
你好,楼主
这个问题解决了吗?能否提供一下部分代码

(vl-load-com)
(defun c:000 (/ block blocks i)
  (if (setq Blocks (vla-get-Blocks
                     (vla-get-ActiveDocument (vlax-get-acad-object))
                   )
      )
    (progn
      (setq i 0)
      (repeat (vla-get-Count Blocks)
        (setq
          Block        (vla-item Blocks i)
          i        (1+ i)
        )
        (vla-put-Explodable Block :vlax-true)
      )
    )
  )
)
发表于 2024-1-19 16:36:12 | 显示全部楼层
ly8zx2109 发表于 2023-12-30 09:57
(vl-load-com)
(defun c:000 (/ block blocks i)
  (if (setq Blocks (vla-get-Blocks

请问一下,怎么改成用户多选?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 23:45 , Processed in 0.166731 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表