明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2173|回复: 5

请大家帮帮忙啊!搜索多个文件中的块属性并统计

[复制链接]
发表于 2004-12-13 10:01:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-12-13 10:37:48 编辑

在CAD的材料单中的数据是用带属性的块插入的(带属性的块见bom.dwg),我现在需要统计多张图纸(这些图纸都在CAD支持搜索路径里)中的某一项目数据的总量(具体的说是bom.dwg块中标记为SHIP_MARK和PIECE_TOTAL两项,若SHIP_MARK相同,PIECE_TOTAL中的值累加),并把这些数据写到当前图纸.该怎么编写一个LISP程序啊?请版主跟热心人帮忙写一个程序好嘛?急啊!文件很多,现在传两个(图纸文件为S1.DWGG 和S2.DWG)做测试谢谢大家了,万分感谢!不胜感激啊~~



本帖子中包含更多资源

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

x
发表于 2004-12-13 16:28:00 | 显示全部楼层

;;参考看看

;;Source is a valid path & dwg name

;;提取dbx档中图块属性值(vlx档)

;;(DBX_ATT <Source> <blockname>)

;;(DBX_ATT (getfiled "选取图档" (getvar "dwgprefix") "dwg" 8) "标题")

;;(DBX_ATT (getfiled "选取图档" (getvar "dwgprefix") "dwg" 8) "BOM")

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=29561

 楼主| 发表于 2004-12-13 19:37:00 | 显示全部楼层
本帖最后由 作者 于 2004-12-13 22:27:43 编辑

龙版主,是vlx的啊,dbx档是什么文档啊?能给个源程序看看么?让俺学习学习,还有个问题,我将哪个VLX程序加载运行,然后运行下面的程序,选择要统计的文件后,出错,"no function definition: STARTAPP"怎么办啊?是不是我用的方法不对啊?那怎么用啊? (defun c:test()
(setq attbom (DBX_ATT (getfiled "选取图档" (getvar "dwgprefix") "dwg" 8) "bom")) )
还有,(DBX_ATT <Source> <blockname>)返回的是什么值?是块内属性的表么?请赐教!!万分感谢啊
发表于 2004-12-14 08:05:00 | 显示全部楼层
  1. ;|
  2. 请大家帮帮忙啊!搜索多个档中的块属性并统计
  3. 在CAD的材料单中的资料是用带属性的块插入的(带属性的块见bom.dwg),
  4. 我现在需要统计多张图纸(这些图纸都在CAD支援搜索路径里)中的某一专
  5. 案资料的总量(具体的说是bom.dwg块中标记为SHIP_MARK和
  6. PIECE_TOTAL两项,若SHIP_MARK相同,
  7. PIECE_TOTAL中的值累加),并把这些资料写到当前图纸.
  8. 该怎么编写一个LISP程式啊?请版主跟热心人帮忙写一个程式好嘛?
  9. 急啊!档很多,现在传两个(图纸档为S1.DWGG 和S2.DWG)(DBX_ATT <Source> <blockname>)返回值是属性的表!
  10. 没有你说的错误!我在R2005测试通过!可能是你objectdbx没有通过註册
  11. 我不是贴了一个dbx架构吗?只要会ActiveX就能使用,不会ActiveX....... 8-(
  12. |;
  13. (defun C:TT (/ LST NAME ATT ENT ENTT TMP BOM)
  14.    (vl-load-com)
  15.    (setq LST '("C:\\LSP\\S1.DWG" "C:\\LSP\\S2.DWG"))
  16.    (foreach NAME  LST
  17.        (setq ATT (DBX_ATT NAME "BOM"))
  18.        (if  ATT
  19.            (foreach ENT ATT
  20.   (setq ENTT (list (car ENT) (atof (cadr ENT))))
  21.   (if (setq TMP (assoc (car ENT) BOM))
  22.      (setq  BOM
  23.      (subst
  24.          (list (car ENTT) (+ (cadr ENTT) (cadr TMP)))
  25.          TMP
  26.          BOM
  27.      )
  28.      )
  29.      (setq BOM (append BOM (list ENTT)))
  30.   )
  31.            )
  32.        )
  33.    )
  34.    (vl-sort BOM
  35.        (function (lambda (E1 E2)
  36.                  (< (car E1) (car E2))
  37.              )
  38.        )
  39.    )
  40. )
 楼主| 发表于 2004-12-14 10:09:00 | 显示全部楼层
不会就学!一定要搞会它!龙版主,我去找找你前面的贴子,如果还不行再回来,一定帮到底啊,谢谢!
 楼主| 发表于 2004-12-15 16:27:00 | 显示全部楼层
问题解决了,感谢龙大侠!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-30 02:16 , Processed in 0.168286 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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