| 查看: 1646 | 回复: 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... 程序运行结束后就可以生成一个的明细表。 |
» 收录本帖的淘帖专辑推荐
AutoCAD学习交流 | AutoCAD集合 |
» 猜你喜欢
审稿日期短时间内频繁更换,是被拒的节奏吗?
已经有10人回复
金属检测用的光谱仪
已经有19人回复
机械工程论文润色/翻译怎么收费?
已经有96人回复
如何产生Frank分位错
已经有2人回复
关于缓冲体系离子浓度的计算
已经有0人回复
关于离子浓度计算
已经有1人回复
请大家帮忙看下,这样的审稿状态是否凶多吉少?
已经有12人回复
硅溶胶和硅酸钠水玻璃干燥后的结构为什么出现明显差异?
已经有6人回复
解决渗碳体倾斜角度问题
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:

caoshangfei2007:沙发有奖! 2010-11-24 22:02:59
| 顶一下撒! |
2楼2010-11-24 18:53:10

3楼2011-05-14 16:02:06
4楼2011-06-18 21:17:21
tianzhibin
至尊木虫 (著名写手)
- 应助: 41 (小学生)
- 金币: 11077.7
- 散金: 40
- 红花: 18
- 帖子: 2608
- 在线: 224.1小时
- 虫号: 1332666
- 注册: 2011-06-28
- 性别: GG
- 专业: 生物化工与食品化工

5楼2011-09-04 19:47:41
谢谢分享![]() |
6楼2011-09-15 18:42:54
eileenrhl
新虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 1226.8
- 散金: 10
- 红花: 1
- 帖子: 315
- 在线: 96.4小时
- 虫号: 1187219
- 注册: 2011-01-10
- 专业: 机械动力学
7楼2011-09-16 17:59:28
weijia198261
铜虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 184.5
- 帖子: 122
- 在线: 35.1小时
- 虫号: 1174521
- 注册: 2010-12-21
- 性别: GG
- 专业: 工程热力学

8楼2011-10-18 22:01:24













)
回复此楼
在学习中,谢谢分享啊

。