24小时热门版块排行榜    

查看: 1267  |  回复: 7

jwl2064

木虫 (正式写手)

木虫地学版长老

[交流] 【分享】在AutoCAD系统下自动生明细表已有6人参与

本文通过实例介绍如何在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...
程序运行结束后就可以生成一个的明细表。
回复此楼
凡是自己说得出“为什么这样做”的事,都可以说是有意思的生活。生活的为什么,就是生活的意思。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
caoshangfei2007:沙发有奖! 2010-11-24 22:02:59
顶一下撒!
2楼2010-11-24 18:53:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ys041

银虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖
在学习中,谢谢分享啊
勇往直前,绝不退缩,坚信只有在前进中生活才是最美好的
3楼2011-05-14 16:02:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

YZMHM

新虫 (初入文坛)


小木虫(金币+0.5):给个红包,谢谢回帖
gordon2008: 欢迎交流 2011-06-19 09:15:36
LZ精神可嘉啊!能否做成插件啊!
4楼2011-06-18 21:17:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianzhibin

至尊木虫 (著名写手)

帖子真精彩!
已经收录到淘贴专辑《AutoCAD学习交流
都在路上,都要努力。
5楼2011-09-04 19:47:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
谢谢分享
6楼2011-09-15 18:42:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eileenrhl

新虫 (正式写手)

多谢分享
7楼2011-09-16 17:59:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weijia198261

铜虫 (小有名气)

支持一下
走别人的路让别人无路可走
8楼2011-10-18 22:01:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jwl2064 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] F口信息学部拿面上,大概需要什么样的成果 +7 _奋黎_ 2024-06-16 12/600 2024-06-18 07:41 by ld_cauchy
[硕博家园] 硕博巨婴,也许才刚刚开始 +33 SNaiL1995 2024-06-12 85/4250 2024-06-18 00:06 by 博士求上上岸
[硕博家园] 关于硕博连读的一些疑问? +4 Lwenter 2024-06-14 5/250 2024-06-17 20:42 by Lwenter
[公派出国] 去英国的小伙伴儿都在哪儿租的房子呀? +5 65syn 2024-06-14 8/400 2024-06-17 19:57 by 爱吃菜的虫
[基金申请] 博后面上今天有bug可以看到是否资助? +22 lyfbangong 2024-06-12 33/1650 2024-06-17 16:17 by carolloo
[博后之家] 山东大学(青岛)“天然药物生物智造”课题组 招聘“博士后”(年薪20.4-55.6万元) +5 第二种态度 2024-06-11 11/550 2024-06-17 10:08 by 小懂事k
[基金申请] 博后基金,博管会会提前知道消息吗? +4 yuyiang 2024-06-13 4/200 2024-06-16 11:40 by yangyuzhong4
[论文投稿] 投稿被一个审稿人恶意评审了怎么样? +5 1chen 2024-06-14 7/350 2024-06-15 23:15 by xy66xy
[考博] 上海交大招收材料化学方向科研助理/“申请考核”博士(已招满) +3 灵梦and紫 2024-06-12 4/200 2024-06-15 20:58 by 1822836277
[基金申请] BO4的YQ答辩通知发布了吗? +6 博学笃行 2024-06-11 6/300 2024-06-15 16:04 by 悲催科研狗
[论文投稿] 投了一篇4区的SCI,审稿人一个拒稿,一个小修,编辑给了大修。 +9 安稳22123 2024-06-13 10/500 2024-06-14 23:45 by jurkat.1640
[基金申请] 博士后基金需要结题吗? +8 zhouchuck 2024-06-13 8/400 2024-06-14 17:27 by liuyupu132
[基金申请] E12面上申请 +4 汉风之遗 2024-06-13 4/200 2024-06-14 15:28 by 天外飞去来
[考博] 申博找导师 +4 疏影横斜水清浅3 2024-06-13 6/300 2024-06-14 14:31 by zxl_1105
[基金申请] 国自然基金公布的时候基金号有吗 +8 潇洒怡惜 2024-06-13 11/550 2024-06-14 11:24 by JRfei
[基金申请] 工材E10口函评结束了吗 10+3 我1的飞翔 2024-06-13 5/250 2024-06-14 06:35 by nono2009
[硕博家园] 机械研究生如何拿到年薪40+w +13 阿巴阿巴哦哦 2024-06-11 15/750 2024-06-13 15:40 by 113745685
[有机交流] 原料反应完了,怎么知道是产物还是中间体 +6 小胡在努力 2024-06-11 8/400 2024-06-13 13:33 by 091602
[基金申请] 博后特助这周出结果吗?往年都是啥时候啊? +13 jsqy 2024-06-12 17/850 2024-06-12 19:55 by Lynn212
[硕博家园] 申博 +3 悦悦小小鱼 2024-06-12 3/150 2024-06-12 15:11 by chen5805
信息提示
请填处理意见