明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 走路

求助;如何提取 明细表?

  [复制链接]
发表于 2002-5-17 21:51:00 | 显示全部楼层

两步走吧:1.将明细表转换成属性图块(可用程序完成);2.将属性输出到数据库(也可用

两步走吧:1.将明细表转换成属性图块(可用程序完成);2.将属性输出到数据库(也可用程序完成)[br]
发表于 2002-5-18 08:42:00 | 显示全部楼层

您这种想法...

据我所知,已经在许多年、有多少个人都触礁了,您还想再来一次?
不解决数据结构的基本问题,任何表面的程序都不可能做好。
其实数据结构和流程已经存在了,这就是百年历史的传统设计数据构建和管理方法。一点都不复杂。
关键是我们许多应用程序设计者,不熟悉传统设计的成熟经验,也不想去熟悉,而是企图另立规则。
我敢担保:您再聪明,也比不过传统设计的积累。
 楼主| 发表于 2002-5-18 18:28:00 | 显示全部楼层

真是不好意思,我的思维比较简单!

 楼主| 发表于 2002-5-18 18:30:00 | 显示全部楼层

知道了,谢谢大家,这个问题就此打住.

发表于 2002-9-4 17:08:00 | 显示全部楼层

我的解决做法(delphi4.0 acad14.01 excel97)

1.选择表格内容并将其中的文字提出
sset.SelectOnScreen;   //选择屏幕上的物体
count :=sset.count;    //选择集中实体的个数
for I := 0 to count-1 do
    if sset.item(i).entityname = 'AcDbText' then //判断是否为文字
    begin
    text:= sset.item(i).textstring;//文字字符串提出
    point:=sset.item(i).InsertionPoint;
     tstring.add(text);         //文字字符加入数组
     xstring.add(vartostr(point[0])) ;//文字X坐标加入数组
     ystring.add(vartostr(point[1])) ;;//文字Y坐标加入数组
    end;
2.文字的判别和处理
  1)遍历数组,将所有表头文字(序号,代号,名称,数量。。。)找到并记录它们的X,Y坐标植,为下面表格中文字的分栏提供判断标准.
   例: if pos('序号',text(i))=1 then  //找到“序号”
        begin
        xhx.add(floattostr(point[0]));//序号附近的X坐标
        xhy.add(floattostr(point[1]));//序号附近的Y坐标
        end;
2)再次遍历数组,根据1)中得到的X,Y值将文字分栏,例如
if (x<dhx[0]) and  (x>xhx[0)-10) //文字的X植小于代号X值大于序号X值
        and (y<xhy[0]-8) then   //文字的Y植小于序号Y值
       begin
        tstring.add(text);     //文字加入序号栏数组
        xstring.add(floattostr(x)) ;  //文字的X植加入序号栏X数组
        ystring.add(floattostr(y)) ;文字的X植加入序号栏Y数组
       end;
3)对每一相应栏数组中的文字进行排序,得出每一单元格的文字。
a.按Y值由大到小重排列数组
b.如果每一格文字没有连续,既有两个或多个字在同一格中,则按X值由小
  到大合并文字
4)将每个单元格的文字写入EXCEL相应的位置,我的做法是将EXCEL表头文件先做好,然后在DELPHI中用循环写入其相应的位置,再另存文件.

因为ACAD14.01版和EXCEL97都支持ACTIVE ,所以用VB或DELPHI编程很容易
关键是将ACAD中的文字如何提出,如何排序和分类得到的文字、。关于排序的算法我采用的是冒泡法.以上编程思路也可用于其他需要对ACAD中文字作处理的地方,我就先后遍了图纸目录自动归档,材料表自动统计,电缆自动开列等,都是一样的思路。
发表于 2008-9-2 07:53:00 | 显示全部楼层
如果单单这样做很难做到整套工程图一次性提取,即不能对一台设备一次性完成
而且也很难有专业的技术人员长时间从事这个岗位的工作

有需要提取产品综合明细表的公司可以和我联系,我可以快速帮助你公司完成提取工作。
当然可以提取特定的标准件、外购件等表,具体问题我们可以商谈。
提高准确度——提高效率
邮箱地址:minging2005@yahoo.com.cn
发表于 2008-9-4 10:33:00 | 显示全部楼层

还是陈伯雄老师以前所提到的“柔性数据”的概念较为有用,建立文本的零件表,编制lisp程序,先行读取零件表,判断确定表的行列范围,自动生成基于拾取点的相对坐标系列,循环生成“数据-坐标”点对,OK?

发表于 2008-9-8 13:07:00 | 显示全部楼层

看看这个

(("13" "WZFX1-13-08" "隔风板" "1" "组合件" "7.23" "7.23" "" (120.0 280.0 0.0) 18.0)
("12" "WZFX1-13-07" "固定块" "1" "Q235A" "0.04" "0.04" "" (120.0 252.0 0.0) 18.0)
("4" "WZFX1-13-04" "压板" "1" "Q235A" "1.3" "1.3" "" (120.0 28.0 0.0) 18.0) ("11"
"GB/T 41-2000" "六角螺母M10" "1" "Q235A" "0.01" "0.01" "" (120.0 224.0 0.0) 18.0)
("10" "GB/T 5781-2000" "六角头螺栓M10x30" "1" "Q235A" "0.01" "0.01" "" (120.0 196.0
0.0) 18.0) ("9" "GB95-2002" "平垫圈10" "1" "Q235A" "0.005" "0.005" "" (120.0 168.0
0.0) 18.0) ("8" "WZFX1-13-06" "支撑管" "1" "Q235A" "7.9" "7.9" "" (120.0 140.0
0.0) 18.0) ("7" "GB/T 5781-2000" "六角头螺栓M6x10" "15" "Q235A" "0.01" "0.15" ""
(120.0 112.0 0.0) 18.0) ("6" "GB95-2002" "平垫圈6" "15" "Q235A" "0.005" "0.075" ""
(120.0 84.0 0.0) 18.0) ("5" "WZFX1-13-05" "连接片" "1" "Q235A" "2.2" "2.2" ""
(120.0 56.0 0.0) 18.0) ("3" "WZFX1-13-03" "固定座" "1" "Q235A" "0.15" "0.15" ""
(120.0 8.52651e-014 0.0) 18.0) ("2" "WZFX1-13-02" "支撑弹片" "1" "65Mn" "2.6" "2.6"
"" (840.0 308.0 0.0) 18.0) ("1" "WZFX1-13-01" "硅胶片" "1" "硅橡胶δ2" "1.2" "1.2" ""
(840.0 280.0 0.0) 18.0))

发表于 2008-9-8 13:12:00 | 显示全部楼层

接上

不必做成属性块,这样别人编辑很困难,

可把格子做成块,

插入一个格子,后面紧接着用entmake方法写8项文字,

以此类推,

在提取数据时,

先找到插入的格子块,再用entnext方法就可找到每个格子的8项数据,

是不是很简单!?

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

本版积分规则

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

GMT+8, 2025-6-18 17:53 , Processed in 1.661216 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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