明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 伪书虫86

[已解答] 有没有懂动态块的大师啊,帮帮忙啊

[复制链接]
 楼主| 发表于 2015-9-29 08:11:51 | 显示全部楼层
lucas_3333 发表于 2015-9-28 21:02
难道你试过?不成功? ,贴出你的代码。。。

“楼主,你具体想干嘛? 你是想获取"单联单控开关" 或"三联单控开" 下的所有对象集合?”
正是此意啊

回复

使用道具 举报

发表于 2015-9-29 08:29:59 | 显示全部楼层
本帖最后由 菜卷鱼 于 2015-9-29 08:39 编辑

发一个动态属性块的动态属性控制源码
http://bbs.mjtd.com/forum.php?mo ... 2096&fromuid=399892


  1. (DynamicValueCtrl (car(entsel)) "设备名称" "单联单控开关")



之前搞了好久才搞出来的,你一定要请我吃个饭,但是,我发那个帖子的时候你是沙发诶!!!!

点评

属性获取、设置这些我都已经找到leemac的代码了,现在是想获取某一个可见性状态下的图元集  发表于 2015-9-29 08:39
回复

使用道具 举报

发表于 2015-9-29 08:49:05 | 显示全部楼层
没有看9楼吗? 给出思路了,你不按套路走, 那也没办法了 ,你说不行,你就贴出你不行的代码,
你要是这样下去等别人给你写代码, 那此贴可以结了!
回复

使用道具 举报

发表于 2015-9-29 08:55:41 | 显示全部楼层
代码里面都有啊!里面有获得动态属性名称,属性参数,根据这两个你可以反推啊
回复

使用道具 举报

 楼主| 发表于 2015-9-29 09:26:45 | 显示全部楼层
lucas_3333 发表于 2015-9-29 08:49
没有看9楼吗? 给出思路了,你不按套路走, 那也没办法了 ,你说不行,你就贴出你不行的代码,
你要是这样下去等 ...

一、首先,应你的要求,代码贴到下面。不过我想好奇一下,都玩到动态块的人,还有没用过entnext循环或者vlax-for遍历的?
二、然后非常感谢你还能一直在关注此帖,但是如果你会并且愿意帮我,那我感谢你,不愿意呢,也没人会逼着你。
三、你说的思路,提问之前早就尝试过了,而你在自己并没实践过的情况下就去怀疑别人,是不是有点太自以为是了呢?
四、不知道你是从哪儿看出来,我就是来等代码的,至于结不结帖,该不该结贴,要不要结贴,你急什么呢?
  1. (defun getenlst(blkname / en enlst)
  2.   (setq enlst (list (cdr (assoc -2 (tblsearch "block" blkname)))))
  3.   (while (setq en (entnext (car enlst)))
  4.     (setq enlst (cons en enlst))
  5.   )
  6.   enlst
  7. )
  1. (defun getenlst(en / lst)
  2.   (vlax-for x
  3.     (vla-item (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
  4.       (Vlax-Get (vlax-ename->vla-object en)"Name"))  
  5.     (setq lst (cons (vlax-vla-object->ename x) lst))
  6.   )
  7.   lst
  8. )
回复

使用道具 举报

发表于 2015-9-29 09:44:31 | 显示全部楼层
伪书虫86 发表于 2015-9-29 09:26
一、首先,应你的要求,代码贴到下面。不过我想好奇一下,都玩到动态块的人,还有没用过entnext循环或者v ...

没码就不叫讨论 , 我说的结贴意思是如果不上码,估计没人会来给你建议. ...

10点钟要去出差 ,当然放假前如果有时间 ,我会看看的.  

希望你好运!
回复

使用道具 举报

 楼主| 发表于 2015-9-29 09:46:15 | 显示全部楼层
菜卷鱼 发表于 2015-9-29 08:55
代码里面都有啊!里面有获得动态属性名称,属性参数,根据这两个你可以反推啊

兄弟,你还是没理解我的意思,额,这么说吧,比如我一个动态块里所有的图元(直线啊圆啊之类的)一共是10个,其中某一个可见性状态下,用到的图元肯定是小于等于10,比如说“可见性状态A”用了其中的3个图元,“可见性状态B”用了其中的5个图元,……而我现在想获取的就是“可见性状态A”的这三个图元。
我查过了跟动态块有关的函数,没看到这个功能的,我猜想的是应该藏在哪个组码里或者什么地方,不过应该是跟图块绑在一起的。

点评

藏组码里? 你真会想!  发表于 2015-9-29 09:50
回复

使用道具 举报

发表于 2015-9-29 09:51:52 | 显示全部楼层
伪书虫86 发表于 2015-9-29 09:46
兄弟,你还是没理解我的意思,额,这么说吧,比如我一个动态块里所有的图元(直线啊圆啊之类的)一共是10 ...

另外一个疑问, 获取这些图元后, 你用来干什么?
回复

使用道具 举报

发表于 2015-9-29 20:31:22 | 显示全部楼层
一个偷鸡的做法是在0,0,0点以缺省参数插入图块,分别设置可见性并炸开,这样可以得到的分解的实体列表,然后以此表对照块定义的所有实体列表,对应后标记。
不过可能同一实体在多个可见性中均可见,也实在想不出构造一个这样的单一可见性实体选择集有何用处。

点评

你这个方法有考虑过,打算是实在没办法了才采用的。动态块是不能直接炸开的,得设置可见性后,插入同名无名块后再炸开。  发表于 2015-9-30 09:10
回复

使用道具 举报

发表于 2015-9-29 22:11:41 | 显示全部楼层
确实不知道或则这个集合用途何在,希望楼主能谈谈?
讨论一下也好,这个帖子都招来好几个大神了哈

点评

图块之间连线是图块内部图元之间连线?那样的话在做块的时候直接连好即可;图块之间连线的话,不可能需要在图块内部还继续连线吧?那样可以直接使用图块插入点作为连线的节点即可,不需要操控可见性后显示的实体啊  发表于 2015-9-30 09:47
图块之间连线,控制连接点的  发表于 2015-9-30 09:11
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 14:11 , Processed in 0.191553 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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