明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4010|回复: 6

请教不开图,DBX插入图块

[复制链接]
发表于 2012-3-7 09:29:10 | 显示全部楼层 |阅读模式
;RetVal = object.InsertBlock(InsertionPoint, Name, Xscale, Yscale, ZScale, Rotation [, Password])
;想通过不开图在目标图中的指定点插入图中已有的图块对象,不成功。
;但查看(dump) DBX是有InsertBlock方法的
;另外[, Password]如何用,我没查到相关的用法。
;请高手们指点迷津。
(defun c:tt()
(setq dbx (cheng5276-dbx "c:\\02.dwg"))
(Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "aaa" 1 1 1 0) ;插入不成功
(vla-saveas dbx "c:\\02.dwg")
(vlax-release-object dbx)
)
;创建DBX通用函数
(defun cheng5276-dbx (file / dbxstr dbx)
(setq DbxStr (if (< (atof (getvar "ACADVER")) 16.0) 
"ObjectDBX.AxDbDocument" 
(strcat "ObjectDBX.AxDbDocument." (substr (getvar "acadver") 1 2))
) 
) 
(setq dbx (Vlax-Get-Or-Create-Object DbxStr))
(if file (vla-open dbx file))
dbx
)
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-9-22 08:58:17 | 显示全部楼层
最近也碰到这个问题,不知道有没有解决了
发表于 2012-9-22 11:09:53 | 显示全部楼层
AUTOCAD的设计中心可以直接拖入,没必要写程序
发表于 2013-11-12 17:00:26 | 显示全部楼层
我也想知道      
发表于 2014-6-11 12:02:05 | 显示全部楼层
老帖也回一回
DBX插入文件,试试插入外部文件,密码"778899"是"A$C7EC4176F.dwg" 加密的密码。。
  1. (defun c:tt()
  2. (setq dbx (cheng5276-dbx (findfile "20140611~11.dwg")))
  3. (Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "A$C7EC4176F.dwg" 1 1 1 0 "778899") ;插入不成功
  4. (vla-saveas dbx (findfile "20140611~11.dwg"))  
  5. (vlax-release-object dbx)
  6. )
  7. ;创建DBX通用函数
  8. (defun cheng5276-dbx (file / dbxstr dbx)
  9. (setq DbxStr (if (< (atof (getvar "ACADVER")) 16.0) 
  10. "ObjectDBX.AxDbDocument" 
  11. (strcat "ObjectDBX.AxDbDocument." (substr (getvar "acadver") 1 2))
  12. ) 
  13. ) 
  14. (setq dbx (Vlax-Get-Or-Create-Object DbxStr))
  15. (if file (vla-open dbx file))
  16. dbx
  17. )
发表于 2014-6-11 12:48:16 | 显示全部楼层
实现了当前文件的块插入到外部文件,应该是楼主所说的。。。
  1. (defun c:tt()
  2. (setq dbx (cheng5276-dbx (findfile "20140611~11.dwg")))
  3.   (setq mydoc(vla-get-activedocument(vlax-get-acad-object)))
  4. (setq BLOCKS (vla-get-blocks mydoc))
  5. (setq SB (vla-item BLOCKS "A$C7EC4176F" ))
  6. (vla-copyobjects
  7.    mydoc
  8.    (vlax-safearray-fill
  9.      (vlax-make-safearray
  10.        vlax-vbobject
  11.        '(0 . 0)
  12.      )
  13.      (list SB)
  14.    )
  15.    (Vlax-Get dbx 'ModelSpace)
  16. )
  17. (vlax-release-object SB)
  18.   (Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "A$C7EC4176F" 1 1 1 0 )
  19. ;(Vla-InsertBlock (Vlax-Get dbx 'ModelSpace) (vlax-3d-point '(0 0 0)) "A$C7EC4176F" 1 1 1 0 "778899") ;插入不成功
  20. (vla-saveas dbx (findfile "20140611~11.dwg"))  
  21. (vlax-release-object dbx)
  22. )
  23. ;创建DBX通用函数
  24. (defun cheng5276-dbx (file / dbxstr dbx)
  25. (setq DbxStr (if (< (atof (getvar "ACADVER")) 16.0) 
  26. "ObjectDBX.AxDbDocument" 
  27. (strcat "ObjectDBX.AxDbDocument." (substr (getvar "acadver") 1 2))
  28. ) 
  29. ) 
  30. (setq dbx (Vlax-Get-Or-Create-Object DbxStr))
  31. (if file (vla-open dbx file))
  32. dbx
  33. )
发表于 2020-7-2 23:32:19 | 显示全部楼层
谢大神指导,最近也在琢磨
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 22:52 , Processed in 0.365906 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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