找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 623|回复: 7

[编程申请]:插入另一张图中某个块

[复制链接]
发表于 2006-6-3 21:27:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
图B中有a,b,c 3个图块,想b块插入图A中;
有这样的函数么,类似于INSERT
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-6-4 19:02:38 | 显示全部楼层
在lisp中没有类似函数,在VBA中使用ObjectDBX能够解决楼主问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-5 01:40:55 | 显示全部楼层
最初由 qjcpj 发布
[B]在lisp中没有类似函数,在VBA中使用ObjectDBX能够解决楼主问题。 [/B]

lisp也可以用dbx
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-6-5 08:30:30 | 显示全部楼层
这个问题上次讨论过了的! eachy老板 给了个链:
http://www.mjtd.com/a2/list.asp?id=314
使用VLISP添加未打开图形中的图块到当前图形中!
不过我个人希望还是要打设计中心的所有功能都写出对应的函数来
如:图层,标注样式 等等!这样以后就省事不少了!

  1. ;; COPYBLOCK.LSP  Copyright ?999  Tony Tanzillo
  2. ;;
  3. ;; AutoCAD 2000  Visual LISP / ObjectDBX 示例
  4. ;;
  5. ;;   [url]http://www.caddzone.com[/url]
  6. ;;   [email]tony.tanzillo@caddzone.com[/email]
  7. ;;
  8. ;; 该范例演示了怎样在Visual LISP中使用ObjectDBX将任意
  9. ;; 图形文件中的图块定义添加到当前图形中。
  10. ;;
  11. ;; (CopyBlock <文件名> <图块名>)
  12. ;;
  13. ;; 该函数可从名称为<文件名>(字符串)的.DWG文件中复制名称为
  14. ;; <图块名>(字符串)的图块定义到当前图形的图块表中。
  15. ;;
  16. ;; CopyBlock返回新复制过来的在当前图形的图块表中的图块对象。
  17. ;;
  18. ;; Note that this example performs none of the
  19. ;; error checking that is required, and does not
  20. ;; attempt to determine what actually happened
  21. ;; within the deep clone operation.

  22. (vl-load-com)

  23. (setq *acad* (vlax-get-acad-object))

  24. (defun CopyBlock (DwgName BlkName / blocks dbxDoc)

  25.    (setq blocks
  26.       (vla-get-blocks
  27.          (vla-get-ActiveDocument *acad*)
  28.       )
  29.    )
  30.    
  31.    (setq dbxDoc
  32.       (vla-GetInterfaceObject
  33.          *acad*
  34.          "ObjectDBX.AxDbDocument"
  35.       )
  36.    )
  37.    
  38.    (vla-open dbxDoc DwgName)
  39.    
  40.    (vla-CopyObjects
  41.       dbxDoc
  42.       (vlax-safearray-fill
  43.          (vlax-make-safearray
  44.             vlax-vbObject
  45.            '(0 . 0)
  46.          )
  47.          (list
  48.             (vla-item
  49.                (vla-get-blocks dbxDoc)
  50.                BlkName
  51.             )
  52.          )
  53.       )
  54.       blocks
  55.    )
  56.    
  57.    (vlax-release-object dbxDoc)
  58.    
  59.    (vla-item blocks BlkName)

  60. )
  61. (princ "\n(CopyBlock <图形文件名> <图块名>)")
  62. (princ)
  63. ;;;;;;;;;;;;;;;;;  CopyBlock.lsp ;;;;;;;;;;;;;;;;;;;;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-6 20:08:15 | 显示全部楼层
局部调一下:
........
(if (= "15" (substr (getvar "acadver") 1 2))
      (setq
      DBXDOC (vla-getinterfaceobject *acad* "ObjectDBX.AxDbDocument")
      )
    (setq
      DBXDOC (vla-getinterfaceobject *acad* "ObjectDBX.AxDbDocument.16")
    )
  )
................
额外有个问题,xp系统+cad02
上面函数不好用,发现注册表没有下列项:
hkey_classes_root\\ObjectDBX.AxDbDocument
有关系么?
怎么样才能加上此项?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-6 23:25:16 | 显示全部楼层
我用02也不好用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-7 03:46:34 | 显示全部楼层
我的AutoCAD是英文版,LISP程序中有中文好像用不了,怎么办。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-6-7 10:39:33 | 显示全部楼层
这个问题还是去问版主吧!
本人对vlisp一无所知 。哎!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 21:29 , Processed in 0.185647 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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