找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 902|回复: 10

[求助]:如何在一张图纸里查询另一张图纸里的变量

[复制链接]
发表于 2004-11-25 07:58:47 | 显示全部楼层 |阅读模式

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

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

×
如何在一张图纸里查询另一张图纸里的变量?有些变量都是保存在图面里的,那么我打开一张图纸时,同时又需要得到另一张图纸里的某个变量,如何查询?请教各位高手!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-25 12:26:46 | 显示全部楼层
某个变量---請確實指出是那個变量!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-25 15:07:36 | 显示全部楼层
比如说,我打开drawing1.dwg,它的cecolor是白色,这时我在drawing1.dwg里插入drawing2.dwg,drawing2.dwg里的cecolor是红色,这个时候我如何通过命令或函数在drawing1.dwg里查询drawing2.dwg里的cecolor变量。因为cecolor变量是保存为图文件中的。好多变量也都是保存在图文件中的,我想知道。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-26 08:27:00 | 显示全部楼层

  1. 這是一些ObjectDBX的限制, ObjectDBX不能存取變數,但有外掛acadX.arx則可以存取變數(但現在要收費了)

  2. Here are some assumptions that I am going on from my results.  If anyone can
  3. verify them I would appreciate it.
  4. 1.) You cannot use setvariable or getvariable functions in the ObjectDBX
  5. file, but commands that depend on these settings adopt the values from the
  6. activedocument in the AutoCAD application.
  7. 2.) There is no ActiveUCS, active layer, or active color in the ObjectDBX
  8. file, and these again are adopted from the activedocument in the AutoCAD
  9. application.
  10. 3.) You can only use the saveas method to save the ObjectDBX file.
  11. 4.) You cannot use the close method to close an ObjectDBX file.
  12. 5.) When you use the open method on the dbx_document (opened ObjectDBX file)
  13. it closes the existing file without saving it.  ObjectDBX essentially works
  14. with only 1 drawing file at a time.
  15. ;;;Do not use (vla-* methods with ObjectDBX.AxDbDocument, or any
  16. ;;;other object in the AxDb15Lib type library.
  17. ;;;(vla-*) methods are intended for use with AutoCAD's Automation
  18. ;;;model, not with ObjectDBX (the two are very similar, leading
  19. ;;;one to believe that (vla-*) methods apply to both, but in fact,
  20. ;;;they don't, and in cases where (vla-*) methods do work, it is
  21. ;;;purely by accident).


  22. ;;有外掛acadX.arx可用下列程序-------未更新---我也沒有acadX.arx   8-(
  23. (defun REGISTEROBJECTDBX (/ DBXSERVER)        ;by Tony Tanzillo
  24.   (cond
  25.     ((vl-registry-read
  26.        "HKEY_CLASSES_ROOT\\ObjectDBX.AxDbDocument\\CLSID"
  27.      )
  28.     )
  29.     ((not (setq DBXSERVER (findfile "AxDb15.dll")))
  30.      (alert "Error: Can't locate ObjectDBX Library (AxDb15.dll)")
  31.     )
  32.     (t
  33.      (startapp "regsvr32.exe" (strcat "/s "" DBXSERVER """))
  34.      (or
  35.        (vl-registry-read
  36.          "HKEY_CLASSES_ROOT\\ObjectDBX.AxDbDocument\\CLSID"
  37.        )
  38.        (alert
  39.          "Error: Failed to register ObjectDBX ActiveX services."
  40.        )
  41.      )
  42.     )
  43.   )
  44. )
  45. (arxload "acadx.arx" NIL)
  46. (defun DBXGETVAR (DWGNAME VARNAME / XDB DBXDOC *ACAD* RES)
  47.    (if (not (REGISTEROBJECTDBX))
  48.     (exit)
  49.   )

  50.   (vl-load-com)
  51.   (setq *ACAD* (vlax-get-acad-object))
  52.   (setq        DBXDOC
  53.          (vla-getinterfaceobject
  54.            *ACAD*
  55.            "ObjectDBX.AxDbDocument"
  56.          )
  57.   )
  58.   (setq        XDB
  59.          (vla-getinterfaceobject
  60.            *ACAD*
  61.            "AcadX.Database"
  62.          )
  63.   )
  64.   (vlax-invoke-method DBXDOC 'open DWGNAME)
  65.   (vlax-put-property
  66.     XDB
  67.     'DATABASE
  68.     (vlax-get-property DBXDOC 'DATABASE)
  69.   )
  70.   (setq        RES
  71.          (vlax-invoke-method
  72.            XDB
  73.            'GETVARIABLE
  74.            VARNAME
  75.          )
  76.   )
  77.   (vlax-release-object XDB)
  78.   (vlax-release-object DBXDOC)
  79.   RES
  80. )
  81. (DBXGETVAR "11.DWG""CECOLOR")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-26 08:54:30 | 显示全部楼层
LUCAS 的方法是好,但我觉得不直观,能否有工具能对比两个DWG中的不同的变量,并能打印出来(从纸面看可以选自己想保留的)?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-26 12:34:58 | 显示全部楼层
You cannot use setvariable or getvariable functions in the ObjectDBX(XREF-------BLOCK)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-26 14:14:00 | 显示全部楼层
那就是AutoCAD公司在定制开发标准的时候就加以限制了?就没有一点办法了吗?版主说的我不是很明白,小弟只是刚入门,很想就在lisp里面找到答案。我真的很急呀。帮帮忙啦,各位高人!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-29 08:16:32 | 显示全部楼层
;;當然有辦法,衹是得到另一張圖的變數有甚麼用??
;;雖然objectdbx沒有保存SetVariable和讀取GetVariable系統變量的方法
;;但它有DXFIn和DXFOut兩個方法,轉個彎就可取得系統變量
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-29 22:57:02 | 显示全部楼层
感谢斑竹的关注,其实小弟想编写一个简单的面积计算程序,要求对每一个封闭图形进行面积计算,然后再把它们分别作为外部参照插到总图中,再次计算所有面积之和。因为以前看到有篇文章说CAD的每个图文件可以保存15个用户定义变量,所以我就想把单个图形的面积保存。然后在总图中查询这个变量,再求和。恳求斑竹告知小弟lisp中实现方法,因为目前我还没有接触VL打头的程序设计。
抑或斑竹有针对小弟问题更好的解决办法,也请不吝赐教!谢谢了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-30 08:22:55 | 显示全部楼层

  1. ;;提問要以目的為基準,勿聽傳言!!  8-)
  2. ;;保存資料不一定要變數,xdata,xrecord,ldata,SummaryInfo會更方便
  3. ;;你早說出來可能問題就解決了!
  4. ;;在summaryinfo第一欄記錄面積資料
  5. ;;FOR R2005+
  6. ;;By 龍龍仔(LUCAS)
  7. (defun C:INFO (/ SUM KEY VALUE)
  8.   (setq        SUM (vla-get-summaryinfo
  9.               (vla-get-database
  10.                 (vla-get-activedocument (vlax-get-acad-object))
  11.               )
  12.             )
  13.   )
  14.   (if (> (vla-numcustominfo SUM) 0)
  15.     (vla-setcustombyindex SUM 0 "面積" 1200) ;寫資料
  16.     (vla-addcustominfo SUM "面積" 1200)        ;寫資料
  17.   )
  18.   (vla-getcustombyindex SUM 0 'KEY 'VALUE) ;讀資料
  19.   (list KEY VALUE)
  20. )

  21. ;;讀xref---summaryinfo第一欄記錄資料
  22. (defun C:READ_XREF_INFO        (/ OBJ SUM KEY VALUE)
  23.   (setq OBJ (vlax-ename->vla-object (car (entsel "\nSelect xref: "))))
  24.   (if (vlax-property-available-p OBJ 'PATH)
  25.     (progn
  26.       (setq
  27.         SUM (vla-get-summaryinfo
  28.               (vla-get-xrefdatabase
  29.                 (vla-item
  30.                   (vla-get-blocks
  31.                     (vla-get-activedocument (vlax-get-acad-object))
  32.                   )
  33.                   (vla-get-name OBJ)
  34.                 )
  35.               )
  36.             )
  37.       )
  38.       (if (> (vla-numcustominfo SUM) 0)
  39.         (progn
  40.           (vla-getcustombyindex SUM 0 'KEY 'VALUE)
  41.           (list KEY VALUE)
  42.         )
  43.       )
  44.     )
  45.   )
  46. )

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

使用道具 举报

 楼主| 发表于 2004-11-30 12:43:50 | 显示全部楼层
好感激版主,你真是个热心的好版主。谢谢!我好好学习学习。我还没有接触过VAL-类的程序呢。我只是初学者,但是我有信心成为高手。向版主致敬!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 21:49 , Processed in 0.442659 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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