明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2505|回复: 14

无名块改为有名块,手中的老出错

  [复制链接]
发表于 2009-3-31 17:58:00 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-3-31 22:05:00 | 显示全部楼层
这个如何?
(defun Anon2Namedblock
       (anonblkref bname / doc blks objs idx namedblkdef anonblkde)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (setq blks (vla-get-blocks doc))
  (setq anonblkdef (vla-item blks (vla-get-name anonblkref)))
  (setq namedblkdef (vla-add blks (vlax-3d-point '(0 0 0)) bname))
  (setq    objs (vlax-make-safearray
           vlax-vbobject
           (cons 0 (1- (vla-get-count anonblkdef)))
         )
  )
  (setq idx 0)
  (vlax-for obj    anonblkdef
    (vlax-safearray-put-element objs idx obj)
    (setq idx (1+ idx))
  )
  (vla-copyobjects doc objs namedblkdef)
  (vla-put-origin namedblkdef (vla-get-origin anonblkdef))
  (vla-put-name anonblkref bname)
)
 楼主| 发表于 2009-4-1 09:17:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-4-1 12:35:00 | 显示全部楼层
alin版主的方法固然好,我也用过,但对动态块无效
发表于 2009-4-1 14:29:00 | 显示全部楼层
You can use on a dynamic block but all the dynamic features will be lost.  As I understand a dynamic block should be anonymous but with an Effective Name.
发表于 2009-4-1 14:41:00 | 显示全部楼层
vla-copyobjects 是无法复制动态块的动态属性,不知有其他方法不??
 楼主| 发表于 2009-4-1 15:22:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-4-1 16:26:00 | 显示全部楼层
楼上的你认错人了,alin版主不是你的飞哥
 楼主| 发表于 2009-4-1 22:34:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-4-2 02:06:00 | 显示全部楼层

把有名块又可以改回无名块就简单了

(vla-put-name

(vla-item

(vla-get-Blocks (vla-get-activedocument(vlax-get-acad-object)))

"BlockName")

"*U")

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

本版积分规则

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

GMT+8, 2025-2-25 12:44 , Processed in 0.177225 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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