明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2298|回复: 11

块的BYLAYER问题

  [复制链接]
发表于 2005-3-7 13:37 | 显示全部楼层 |阅读模式
我做了一个块,做块的实体不是BYLAYER的,而且在图纸上按不同的比例插入很多个,现在我想把块中的实体都变成BYLAYER的,有什么办法吗?谢谢。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2005-3-7 16:42 | 显示全部楼层
再插入一个X、Y相同比例的块,编辑这个块就可以了,编辑完后把这个删掉
发表于 2005-3-8 14:50 | 显示全部楼层
  1. (defun Blkbylyr       (bn)
  2.    (vlax-map-collection
  3.        (vla-item
  4.            (vlax-get-property
  5.        (vlax-get-property (vlax-get-acad-object) 'activedocument)
  6.        'blocks
  7.            )
  8.            bn
  9.        )
  10.        '(lambda (x)
  11.              (vlax-put-property x 'color 256)
  12.          )
  13.    )
  14. )
  15. (defun c:tt (/ e)
  16.    (if (setq e (car (entsel))) ;_ select insert
  17.        (blkbylyr (cdr (assoc 2 (entget e))))
  18.    )
  19.    (princ)
  20. )
发表于 2005-3-8 17:25 | 显示全部楼层

Citykunan可能的话把EA的程序改一下,使它支持所有物件好吗?

注意:嵌套图块,属性,引线,公差

完成这样的程序,以后有关图块的问题那就简单多了!

发表于 2005-3-8 19:25 | 显示全部楼层
用2000版本以上的refedit不行吗?
发表于 2005-3-9 00:53 | 显示全部楼层
这个函数在网上可以搜到的,好像明经的函数库中就有。我是临时写的,考虑的不周全只是作个参考
发表于 2005-3-9 10:09 | 显示全部楼层
;;By LUCAS
;;遍歷的另种写法
(defun BLKBYLYR_LAI (BN)
(vlax-for ENT
(vla-item (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
)
BN
)
(vla-put-color ENT 256)
)
) (defun C:TTT (/ E)
(if (setq E (car (entsel))) ;_ select insert
(BLKBYLYR_LAI (cdr (assoc 2 (entget E))))
)
(princ)
)
发表于 2005-3-9 13:39 | 显示全部楼层
另外一个 (defun BLKBYLYR_LAI (BN)
(setq e (tblobjname "block" bn))
(while (setq e (entnext e))
(vla-put-color (vlax-ename->vla-object e) 256)
)
)
 楼主| 发表于 2005-3-14 15:54 | 显示全部楼层
版主给我出的题目真难啊,我嵌套块就不知道怎么处理,能不能提示一下?我一定努试试,谢谢。
发表于 2005-3-14 17:20 | 显示全部楼层
本帖最后由 作者 于 2005-3-15 12:34:43 编辑

嵌套块-----写一个递归的程序(很简单的) 8-) ;;By LUCAS
;;增加了嵌套图块
;;属性,引线,公差,尺寸....就留给你
(defun BLKBYLYR_LAI (BN COL / ENT NAME)
(vlax-for ENT
(vla-item (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
)
BN
)
(vla-put-color ENT COL)
(if (= (vla-get-objectname ENT) "AcDbBlockReference")
(BLKBYLYR_LAI (vla-get-name ENT) COL)
)
)
) (defun C:TTT (/ E LST)
(if (and (setq E (car (entsel "\nSelect block: ")))
(setq COL (acad_colordlg 7))
)
(BLKBYLYR_LAI (cdr (assoc 2 (entget E))) COL)
)
(command "_.REGEN")
(princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 03:11 , Processed in 0.287900 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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