纳士达 都百特 鑫工艺

热加工行业论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始


查看: 6717|回复: 6

在AutoCAD中自动生成明细表1

[复制链接]
  • TA的每日心情
    郁闷
    2018-9-8 10:43
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2008-4-3 18:43:47 | 显示全部楼层 |阅读模式

    马上注册,结交更多热工坛友,更多精彩内容等着您!

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

    x
    在AutoCAD中自动生成明细表1

    在AutoCAD中自动生成明细表1.doc

    93 KB, 下载次数: 64

    评分

    参与人数 1热加工币 +7 收起 理由
    qinsdau + 7 非常实用!

    查看全部评分

    该用户从未签到

    发表于 2008-4-3 20:59:43 | 显示全部楼层

    好资料

    在AutoCAD中自动生成明细表
    本文通过实例介绍如何在AutoCAD系统下自动生明细表的方法。
    本文例子中的明细表格式如图1所示。

    实现方法
    1. 建立明细表数据文件
    首先,把明细表的数据信息,用文字编辑器按如下格式写入磁盘文件MXB.TXT中,作为明细表数据文件。
    “1”“35.1”“气缸透盖”“1”“ZG35”“”“”“”
    “2”“35.2”“气缸体”“1”“35”“”“”“”
    “3”“35.3”“螺塞”“2”“A3F”“”“”“”
    “4”“GB6170-86”“螺母M10”“12”“A3F”“”“”“”
    “5”“35.4”“压盖”“1”“TH200”“”“”“”
    ……
    然后用AutoLisp的READ-LINE函数提取有关数据信息,并把该数据信息赋给表格图块属性。
    注意:各字符串要加双引号,空字符串引号“”不可省略,以便AutoLisp识别。
    2.建立明细表格式图块
    通常,一个明细表是由表头和表体两部分组成。表头是固定的,因此可以用AutoCAD命令生成一个固定的表头,并把它作为一个图块存入磁盘。
    假设要得到如图1所示的明细表,则先做一个如图2所示的明细表表头。

    表头实际上是一个图形文件,本文设定该文件名为MXB.DWG,然后用AutoCAD命令建立一个如图3所示的图块,设其文件名为MXB1.DWG,图3中M1~M8均为属性名。

    当用户向表中插入该块时,系统会向用户询问属性值,此时用AutoLisp程序将上面建立的明细表数据文件中的数据分别赋给各个属性。属性的定义是用AutoCAD命令ATTDEF完成的。
    编制程序
    首先,用AutoLisp的I/O函数READ-LINE读入数据文件MXB.TXT,再用字符串连接函数STRCAT给文件的每一行加上括号,此时数据类型为字符串(STR)。然后,再利用READ函数把字符串转换成一个表(LIST),以方便AutoLisp对表中的每一项进行各种操作。最后,用AutoLisp的COMMAND函数调用INSERT命令,先将图块MXB.DWG插入表中,再将MXB1.DWG插入表中,用NTH函数将前面AutoLisp读入的数据中各项信息分别赋给MXB1.DWG中的各个属性。
    程序框图如图4所示。

    下面给出实现上述功能的程序清单:
    (defun C:mxb(/scmde p f1 bk a m1 m2 m3 m4 m5 m6 m7 m8 p1)
    (setq scmde (getvar “cmdecho"))
    (setvar “cmdecho" 0)
    (setq p (getpoint “\n Please input a point:"))
    (setq f1 (getstring “\n Please input file name:"))
    (setq f (open f1 “r"))
    (print “\n Please wait ...")
    (setq bk “mxb")
    (command “insert" bk p 1 1 0)
    (setq bk “mxb1")
    (setq p1 (list (car p) (+ (cadr p) 8)))
    (while (setq a (read-line f ))
    (setq a (strcat “(“a ")"))
    (setq a (read a))
    (setq m1 (nth 0 a))
    (setq m1 (nth 0 a))
    (setq m2 (nth 1 a))
    (setq m3 (nth 2 a))
    (setq m4 (nth 3 a))
    (setq m5 (nth 4 a))
    (setq m6 (nth 5 a))
    (setq m7 (nth 6 a))
    (setq m8 (nth 7 a))
    (command “insert" bk p1 “" “" “" m1 m2 m3 m4 m5 m6 m7 m8)
    (setq p1 (list (car p1) (+ 8 (cadr p1))))
    )
    (setvar “comdecho" scmde)
    (close f)
    (print)
    )
    程序的安装与使用
    1.安装程序
    可以选择以下三种装载方式的任意一种:
    在AutoCAD环境下,将MXB.LSP拷贝至当前目录,再执行(LOAD“MXB”),即可装载MXB.LSP。
    先将MXB.LSP拷贝至\ACAD\SUPPORT子目录下,再在\ACAD\SUPPORT\ACAD.LSP中加入下面一条语句:
    (AUTOLOAD “MXB”(“MXB”))
    即可实现启动AutoCAD时自动装载该程序。
    先将MXB.LSP拷贝至\ACAD\SUPPORT子目录下,再在\ACAD\SUPPORT\子目录下的菜单文件ACAD.MNU中的合适位置处加上下面一条语句:
    [生成明细表]^C^C(LOAD “C:/ACAD/SUPPORT/MXB.LSP")MXB
    即可直接在菜单中操作生成明细表。
    2.程序的使用
    当用户装载该程序并运行之后,程序首先出现提示信息:
    Please input a point:
    用户给出一个定位点后,程序继续提示:
    Please input file name:
    再输入明细表数据文件名后,程序继续运行,并提示:
    Please wait...
    程序运行结束后就可以生成一个如图1所示的明细表。

    该用户从未签到

    发表于 2010-4-20 22:28:22 | 显示全部楼层
    ACAD2004找不到ACAD*.MNU

    该用户从未签到

    发表于 2010-4-25 11:37:34 | 显示全部楼层
    这么厉害的方法,以前我都是一格一格自己输入的
  • TA的每日心情
    开心
    2015-12-1 12:52
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-6-15 09:34:29 | 显示全部楼层
    值得一看!!

    该用户从未签到

    发表于 2012-7-6 10:29:02 | 显示全部楼层
    我还是觉得清华天河比较好用
  • TA的每日心情
    慵懒
    2017-10-28 17:14
  • 签到天数: 51 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-8-7 10:30:57 | 显示全部楼层
    谢谢,学习了~~
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    QQ|手机版|Archiver|热加工行业论坛 ( 苏ICP备18061189号-1|豫公网安备 41142602000010号 )
    版权所有:南京热之梦信息技术有限公司

    GMT+8, 2024-4-28 12:52 , Processed in 0.149233 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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