wf_1980 发表于 2004-10-26 17:32:00
<b>(转帖)强烈推荐AutoCAD中自动生成明细表<BR></b>AutoCAD中自动生成明细表<BR><BR><BR>保存 打印 推荐 评论 <BR><BR>在利用计算机进行机械绘图的领域里,AutoCAD是国内公认的功能强大的绘图软件。但其在文字、表格处理上却显得很薄弱,尤其是在制作表格上,甚至没有提供此项功能。而人工绘制表格和文字输入不但花费的时间长,而且严重地影响了绘图速度。因此,如何自动而有效地生成明细表便显得很有意义。本文通过实例介绍如何在AutoCAD系统下自动生明细表的方法。 <BR>本文例子中的明细表格式如图1所示。 <BR><BR>实现方法 <BR>1. 建立明细表数据文件 <BR>首先,把明细表的数据信息,用文字编辑器按如下格式写入磁盘文件MXB.TXT中,作为明细表数据文件。 <BR>“1”“35.1”“气缸透盖”“1”“ZG35”“”“”“” <BR>“2”“35.2”“气缸体”“1”“35”“”“”“” <BR>“3”“35.3”“螺塞”“2”“A3F”“”“”“” <BR>“4”“GB6170-86”“螺母M10”“12”“A3F”“”“”“” <BR>“5”“35.4”“压盖”“1”“TH200”“”“”“” <BR>…… <BR>然后用AutoLisp的READ-LINE函数提取有关数据信息,并把该数据信息赋给表格图块属性。 <BR>注意:各字符串要加双引号,空字符串引号“”不可省略,以便AutoLisp识别。 <BR>2.建立明细表格式图块 <BR>通常,一个明细表是由表头和表体两部分组成。表头是固定的,因此可以用AutoCAD命令生成一个固定的表头,并把它作为一个图块存入磁盘。 <BR>假设要得到如图1所示的明细表,则先做一个如图2所示的明细表表头。 <BR><BR>表头实际上是一个图形文件,本文设定该文件名为MXB.DWG,然后用AutoCAD命令建立一个如图3所示的图块,设其文件名为MXB1.DWG,图3中M1~M8均为属性名。 <BR><BR>当用户向表中插入该块时,系统会向用户询问属性值,此时用AutoLisp程序将上面建立的明细表数据文件中的数据分别赋给各个属性。属性的定义是用AutoCAD命令ATTDEF完成的。 <BR>编制程序 <BR>首先,用AutoLisp的I/O函数READ-LINE读入数据文件MXB.TXT,再用字符串连接函数STRCAT给文件的每一行加上括号,此时数据类型为字符串(STR)。然后,再利用READ函数把字符串转换成一个表(LIST),以方便AutoLisp对表中的每一项进行各种操作。最后,用AutoLisp的COMMAND函数调用INSERT命令,先将图块MXB.DWG插入表中,再将MXB1.DWG插入表中,用NTH函数将前面AutoLisp读入的数据中各项信息分别赋给MXB1.DWG中的各个属性。 <BR>程序框图如图4所示。 <BR><BR>下面给出实现上述功能的程序清单: <BR>(defun C:mxb(/scmde p f1 bk a m1 m2 m3 m4 m5 m6 m7 m8 p1) <BR>(setq scmde (getvar “cmdecho")) <BR>(setvar “cmdecho" 0) <BR>(setq p (getpoint “\n Please input a point:")) <BR>(setq f1 (getstring “\n Please input file name:")) <BR>(setq f (open f1 “r")) <BR>(print “\n Please wait ...") <BR>(setq bk “mxb") <BR>(command “insert" bk p 1 1 0) <BR>(setq bk “mxb1") <BR>(setq p1 (list (car p) (+ (cadr p) 8))) <BR>(while (setq a (read-line f )) <BR>(setq a (strcat “(“a ")")) <BR>(setq a (read a)) <BR>(setq m1 (nth 0 a)) <BR>(setq m1 (nth 0 a)) <BR>(setq m2 (nth 1 a)) <BR>(setq m3 (nth 2 a)) <BR>(setq m4 (nth 3 a)) <BR>(setq m5 (nth 4 a)) <BR>(setq m6 (nth 5 a)) <BR>(setq m7 (nth 6 a)) <BR>(setq m8 (nth 7 a)) <BR>(command “insert" bk p1 “" “" “" m1 m2 m3 m4 m5 m6 m7 m8) <BR>(setq p1 (list (car p1) (+ 8 (cadr p1)))) <BR>) <BR>(setvar “comdecho" scmde) <BR>(close f) <BR>(print) <BR>) <BR>程序的安装与使用 <BR>1.安装程序 <BR>可以选择以下三种装载方式的任意一种: <BR>在AutoCAD环境下,将MXB.LSP拷贝至当前目录,再执行(LOAD“MXB”),即可装载MXB.LSP。 <BR>先将MXB.LSP拷贝至\ACAD\SUPPORT子目录下,再在\ACAD\SUPPORT\ACAD.LSP中加入下面一条语句: <BR>(AUTOLOAD “MXB”(“MXB”)) <BR>即可实现启动AutoCAD时自动装载该程序。 <BR>先将MXB.LSP拷贝至\ACAD\SUPPORT子目录下,再在\ACAD\SUPPORT\子目录下的菜单文件ACAD.MNU中的合适位置处加上下面一条语句: <BR>[生成明细表]^C^C(LOAD “C:/ACAD/SUPPORT/MXB.LSP")MXB <BR>即可直接在菜单中操作生成明细表。 <BR>2.程序的使用 <BR>当用户装载该程序并运行之后,程序首先出现提示信息: <BR>Please input a point: <BR>用户给出一个定位点后,程序继续提示: <BR>Please input file name: <BR>再输入明细表数据文件名后,程序继续运行,并提示: <BR>Please wait... <BR>程序运行结束后就可以生成一个如图1所示的明细表。wf_1980 发表于 2004-10-26 17:50:00
<b>(转帖)AutoCAD 经验与技巧<BR></b>标题:AutoCAD 经验与技巧<BR>绘 图 <BR>问:开始绘图要做哪些准备? <BR><BR>答:磨刀不误砍柴工。计算机绘图跟手工画图一样,也要做些必要的准备。如设置图层、线型、标注样式、目标捕捉、单位格式、图形界限等。很多重复性的工作则可以在模板图如ACAD.DWT中预先做好,开始新图拿来就能用。 <BR>问:在AutoCAD中采用什么比例绘图好? <BR>答:最好使用1∶1比例画,输出比例可以随便调整。画图比例和输出比例是两个概念,输出时使用“输出1单位=绘图500单位”就是按1/500比例输出,若“输出10单位=绘图1单位”就是放大10倍输出。用1∶1比例画图好处很多。第一、容易发现错误,由于按实际尺寸画图,很容易发现尺寸设置不合理的地方。第二、标注尺寸非常方便,尺寸数字是多少,软件自己测量,万一画错了,一看尺寸数字就发现了(当然,软件也能够设置尺寸标注比例,但总得多费工夫)。第三、在各个图之间复制局部图形或者使用块时,由于都是1∶1比例,调整块尺寸方便。第四、由零件图拼成装配图或由装配图拆画零件图时非常方便。第五、用不着进行烦琐的比例缩小和放大计算,提高工作效率,防止出现换算过程中可能出现的差错。 <BR>问:图层有什么用处? <BR>答:合理利用图层,可以事半功倍。一开始画图,就预先设置一些基本层。每层有自己的专门用途,这样做的好处是:只须画出一份图形文件,就可以组合出许多需要的图纸,需要修改时也可针对图层进行。 <BR>问:命令别名是怎么回事? <BR>答:为便于输入命令,省得记忆英文全名,可以用命令别名(ALIAS)来代替命令。如输入C就相当于输入了CIRCLE命令,L相当于LINE命令。命令别名可以大大加快命令的输入速度,提高绘图效率。老手一般都是左手敲命令,右手点鼠标。 <BR>命令别名在ACAD.PGP文件中设置,用任何文本编辑器均可编辑该文件。AutoCAD提供了修改命令别名的工具ALIASEDIT,以对话框的方式交互编辑别名。 <BR>问:绘图前,绘图界限(LIMITS)一定要设好吗? <BR>答:画新图最好按国标图幅设置图界。图形界限好比图纸的幅面,画图时就在图界内,一目了然。按图界绘的图打印很方便,还可实现自动成批出图。当然,有人习惯在一个图形文件中绘制多张图,这样设置图界就没有太大的意义了。 <BR>问:尺寸标注后,图形中有时出现一些小的白点,却无法删除,为什么? <BR>答:AutoCAD在标注尺寸时,自动生成一DEFPOINTS层,保存有关标注点的位置等信息,该层一般是冻结的。由于某种原因,这些点有时会显示出来。要删掉可先将DEFPOINTS层解冻后再删除。但要注意,如果删除了与尺寸标注还有关联的点,将同时删除对应的尺寸标注。 <BR>问:习惯了R12的全屏幕十字光标,可R14的光标很小,怎么办? <BR>答:可点击菜单Tools\preferences\point device,将光标的百分比设为100%即可(默认5%)。也可在命令行上直接修改CURSORSIZE系统变量。 <BR>问:目标捕捉(OSNAP)有用吗? <BR>答:用处很大。尤其绘制精度要求较高的机械图样时,目标捕捉是精确定点的最佳工具。Autodesk公司对此也是非常重视,每次版本升级,目标捕捉的功能都有很大提高。切忌用光标线直接定点,这样的点不可能很准确。 <BR>问:为什么绘制的剖面线或尺寸标注线不是连续线型? <BR>答:AutoCAD绘制的剖面线、尺寸标注都可以具有线型属性。如果当前的线型不是连续线型,那么绘制的剖面线和尺寸标注就不会是连续线。 <BR>编 辑 <BR>问:怎样用R12的“命令取消”键? <BR>答:R14默认的“命令取消”键是“ESC”键,如果你已经习惯了R12的“Ctrl+C”,可点击菜单Tools\preferences\compatibility\priority for accelerator keys\AutoCAD classic,然后就可以用“Ctrl+C”取消命令了,同时“ESC”键仍然有效。 <BR>问:怎样一次剪除多条线段? <BR>答:TRIM命令中提示选取要剪切的图形时,不支持常用的window和crossing选取方式。当要剪切多条线段时,要选取多次才能完成。这时可以使用fence选取方式。当trim命令提示选择要剪除的图形时,输入“f”,然后在屏幕上画出一条虚线,回车,这时与该虚线相交的图形全部被剪切掉。 <BR>类似的,对于EXTEND命令,在select object:提示时输入F,可一次延伸多个实体。 <BR>问:为什么删除的线条又冒出来了? <BR>答:最大的可能是有几条线重合在一起了。对于新手,这是很常见的问题。 <BR>另外,当一条中心线或虚线无论如何改变线型比例也还是象连续线(REGEN后),多半也是这个原因。 <BR>问:如何快速变换图层? <BR>答:单击“Object Propertys(物体特性)”工具条上的“Make objects'' layer current”按钮(工具条的最左边的按钮),然后在作图区选择要去的图层上的任一图形,当前层立刻变换到选取的图形所在层。 <BR>问:如何处理手工绘制的图纸,特别是有很多过去手画的工程图样? <BR>答:把图纸扫描到计算机里或许是个办法。但注意,AutoCAD处理的图形是矢量图,而扫描的图纸形成的是点阵图,两者性质上的不同使得虽然可以把扫描图纸生成的图形文件插入到AutoCAD中,但你只能观看而不能编辑。也有一些矢量化的工具,可以把点阵图转换为矢量图,但限于技术水平,转换的效率和效果都不能使人满意。笔者试用过多种这样的工具,结果令人失望。(有处理那工夫,还不如重新画一遍) <BR>保存 <BR>问:如何减少文件大小? <BR>答:在图形完稿后,执行清理(PURGE)命令,清理掉多余的数据,如无用的块、没有实体的图层,未用的线型、字体、尺寸样式等,可以有效减少文件大小。一般彻底清理需要PURGE二到三次。 <BR>另外,缺省情况下,在R14中存盘是追加方式的,这样比较快一些。如果需要释放磁盘空间,则必须设置ISAVEPERCENT系统变量为0,来关闭这种逐步保存特性,这样当第二次存盘时,文件尺寸就减少了。 <BR>问:如何设置自动保存功能? <BR>答:将变量SAVETIME设成一个较小的值,如10(分钟)。AutoCAD默认的保存时间为120分钟。 <BR>问:如何将自动保存的图形复原? <BR>答:AutoCAD将自动保存的图形存放到AUTO.SV$或AUTO?.SV$文件中,找到该文件将其改名为图形文件即可在AutoCAD中打开。 <BR>一般该文件存放在WINDOWS的临时目录,如C:\WINDOWS\TEMP。 <BR>问:误保存覆盖了原图时如何恢复数据? <BR>答:如果仅保存了一次,及时将后缀为BAK的同名文件改为后缀DWG,再在AutoCAD中打开就行了。如果保存多次,原图就无法恢复。 <BR>问:为什么提示出现在命令行而不是弹出Open或Export对话框? <BR>答:AutoCAD的系统变量FILEDIA用来控制文件列表对话框的显示,设置FILEDIA为1时将使这些对话框显示,如果FILEDIA被设为0,通过输入一个符号“~”来响应你所选择命令的第一个提问,你仍然可以获得一个对话框显示。当然,从一个批处理命令或AutoLISP/ADSRX/ObjectARX应用程序中调用一个文件操作命令时,需要命令行提示,而不应该出现对话框。 <BR>问:为什么当一幅图被保存时文件浏览器中该文件的日期和时间不被刷新? <BR>答: Autodesk已经发现了这个问题,它仅仅出现在Win95B的操作系统中,在Win95A或Windows NT环境下从没有发生过。作为一个权宜之策,可以在AutoCAD R14中设置系统变量ISAVEPERCENT为0,使AutoCAD在每次存盘时都重写整个绘图内容,这可能使保存时间长一些,但却能保证文件日期被正确刷新。 <BR>字 体 <BR>问:为什么不能显示汉字?或输入的汉字变成了问号? <BR>答:原因可能是: <BR>1. 对应的字型没有使用汉字字体,如HZTXT.SHX等; <BR>2. 当前系统中没有汉字字体形文件;应将所用到的形文件复制到AutoCAD的字体目录中(一般为...\FONTS\); <BR>3. 对于某些符号,如希腊字母等,同样必须使用对应的字体形文件,否则会显示成?号。 <BR>问:如何解决在R14中打开R12文件出现汉字乱码问题? <BR>答:用R14打开R12的文件时,即使正确地选择了汉字字形文件,还是会出现汉字乱码,原因是R14与R12采用的代码页DWGPAGECODE不同。可到AutoDesk公司主页下载代码页转换工具wnewcp。运行wnewcp 后,首先选中“R11/R12”复选框,再单击“Browse”按钮,选择要转换的文件或目录,然后选择新的代码页(ANSI),单击“Start Conversion”即开始转换。转换后,在R14中就能正确地显示汉字。 <BR>天正提供的代码转换工具DWGCODE.EXE同样可以进行代码转换。 <BR>如果没有这些工具,可在R12的环境中打开要转换的图形文件,在COMMAND状态下输入DWGCODEPAGE,修改其值为ASCII后保存文件即可。 <BR>批量修改可使用SCR命令组文件或用LISP编程实现。 <BR>问:为什么输入的文字高度无法改变? <BR>答:使用的字型的高度值不为0时,用DTEXT命令书写文本时都不提示输入高度,这样写出来的文本高度是不变的,包括使用该字型进行的尺寸标注。 <BR>问:如何改变已经存在的字体格式? <BR>答:如果想改变已有文字的大小、字体、高宽比例、间距、倾斜角度、插入点等,最好利用“特性(DDMODIFY)”命令(前提是你已经定义好了许多文字格式)。点击“特性”命令,点击要修改的文字,回车,出现“修改文字”窗口,选择要修改的项目进行修改即可。 <BR>问:可以使用系统字体吗,如宋体、楷体等? <BR>答:虽然ACADR14能够使用*.TTF汉字字体文件,可是这种字体太花费CPU时间,对于档次稍低的电脑,显示速度(如使用实时缩放命令时)实在太慢。建议档次低的电脑还是使用*.shx文件好。在汉字*.shx文件当中,推荐使用大恒或浩辰公司为ACADR12配套的HZ*.shx字体文件,但在不同机器上没有相应字体会引起汉字显示问题。当然为美观起见少量使用系统字库也未尝不可。 <BR>菜 单 <BR>问:为什么工具条的按钮图标被一些笑脸代替了? <BR>答:当AutoCAD找不到按钮位图文件的路径时,工具条或工具框中的这些按钮图标将被一张笑脸所代替。这可能出现在工具条被用户化之后,菜单模板文件(MNU)又被手工编辑了。 <BR>这种情况,可以用文本编辑器打开菜单源文件(MNS)和菜单模板文件(MNU),从MNS文件中复制用户化工具条部分,粘贴到MNU文件中,然后更名或删除掉旧的MNS、MNC和MNR文件,再用MENU/MENULOAD命令装载MNU文件,AutoCAD将重新编译菜单文件,产生新的MNS、MNC和MNR文件,这样就会解决问题。 <BR>另外,如果位图文件不在AutoCAD的支持路径上,这一问题也会出现。请确信在“Preferences(系统配置)”对话框中的支持路径已经包括了该位图文件所在的目录。例如,如果你从一个用户化工具条中移动一个按钮到AutoCAD的标准菜单中的一个工具条时,你必须编辑这一按钮文件,以便该位图文件保存在被支持路径里。可按以下步骤来做: <BR>1.移动或复制图标到一个不同的菜单工具条中之后,保持工具条对话框仍然是打开的,用鼠标右键单击该图标来编辑它。 <BR>2.在按钮属性对话框中,选“编辑”按钮。 <BR>3.在按钮编辑器对话框中,选择Save as 按钮,指定在AutoCAD支持的路径中的位图文件目录。 <BR>4.关闭按钮编辑器,然后在按钮属性对话框中选择Apply(应用)按钮,最后关闭AutoCAD,再重新启动它。 <BR>问:如何汉化菜单? <BR>答:在WIN95/98下,用编辑器如写字板将support目录下的acad.mnu文件,将[]内的英文命令名称改为中文,存盘退出。再在R14中输入“menu“命令,将acad.mnu菜单文件装入,下拉菜单就变成了中文。 <BR>如果有已汉化的菜单文件可以直接使用。 <BR>打 印 <BR>问:PLOT和ASE命令后只能在命令行出现提示,而没有弹出对话框,为什么? <BR>答:AutoCAD的系统变量CMDDIA用来控制PLOT命令和ASE命令的对话框显示,设置CMDDIA为1,就可以解决问题。 <BR>问:打印出来的图效果非常差,线条有灰度的差异,为什么? <BR>答:这种情况,大多与打印机或绘图仪的配置,驱动程序,以及操作系统有关。通常从以下几点考虑,就可以解决问题。 <BR>1.配置打印机或绘图仪时,误差抖动开关是否关闭; <BR>2.打印机或绘图仪的驱动程序是否正确,是否需要升级; <BR>3.如果把AutoCAD配置成以系统打印机方式输出,换用AutoCAD为各类打印机和绘图仪提供的ADI驱动程序重新配置AutoCAD打印机; <BR>4.对不同型号的打印机或绘图仪,AutoCAD都提供了相应的命令,可以进一步详细配置。 <BR>例如对支持HPGL/2语言的绘图仪系列,可使用命令“hpconfig”; <BR>5.在AutoCAD Plot对话框中,设置笔号与颜色和线型以及笔宽的对应关系;为不同的颜色指定相同的笔号(最好同为1),但这一笔号所对应的线型和笔宽,可以不同。某些喷墨打印机只能支持1-16的笔号,如果笔号太大则无法打印; <BR>6.笔宽的设置是否太大,例如大于1; <BR>7.操作系统如果是Windows NT,可能需要更新的NT补丁包(Service Pack)。 <BR>问:安装R14以后,MS WORD里什么字体也没有了,怎么回事? <BR>答:影响MS WORD字体的原因,是与R14为系统安装的一个叫做Phantom AutoCAD OLE/ADI的虚拟打印机有关。Phantom AutoCAD OLE/ADI虚拟打印机使得R14能够通过新的ADI驱动程序,打印或绘制光栅图形。R14典型安装中,并不包含这个选项,只有在全安装或定制安装时,才会产生这个虚拟打印机,有时它还会被设置为默认系统打印机,而不做任何提示。 <BR>根据Microsoft Office软件"所见即所得"的原则,MS WORD文档所使用的字体,与系统默认打印机有关。也就是说,屏幕显示字体应与打印机打印字体一样或相近。Windows首先会根据打印机打印字体,去寻找合适的屏幕显示字体,如果找不到匹配的字体,或打印机驱动程序不提供屏幕字体信息, Windows 会选择最接近打印机字体的屏幕字体。如果把Phantom AutoCAD OLE/ADI的虚拟打印机作为默认系统打印机,MS WORD的字体就只有两种:morden和plotter。 <BR>在Windows系统中,指定正确的系统打印机作为默认打印机,MS WORD的字体就可以恢复正常了。如果系统里没有其他任何打印机,就应该在“打印机设置”里,先配置一个Windows系统打印机,即使是个“逻辑”的打印机也可。 <BR>有一点要切记,不能修改Phantom AutoCAD OLE/ADI虚拟打印机的属性,更不能随意删除它,否则,将会影响光栅图形和OLE对象的输出,甚至会引起系统崩溃。 <BR>问:能否实现成批打印? <BR>答:方法一:将图形首先输出到PLT文件,再在DOS下用批处理文件将指定目录下的PLT文件成批打印。 <BR>方法二: R14有专门的外部函数,能够把多个图形文件,根据不同的打印配置文件,输出到一台或多台打印机或绘图仪中,而达到成批出图的目的。这两种方式,更加灵活,出错机会也少,效率也就更高。在AutoCAD程序组中选择Batch Plot Utility即可。 <BR>问:粘贴到Word文档中的AutoCAD图形,打印出的线条太细,怎么办? <BR>答:把AutoCAD的图形剪贴到MS Word文档里,看起来一切都比较顺利。但当把文档打印出来后,那些AutoCAD图形线条变得非常细,效果着实不好。我们提供给用户如下的解决方法: <BR>1.在AutoCAD中使用PostScript打印驱动程序,配置一个PostScript打印机。 <BR>2.如果AutoCAD的背景颜色与MS Word的背景颜色不同,例如R14默认的背景颜色是黑色,这时要先改变AutoCAD的背景颜色,与MS Word的背景颜色相同。 <BR>3.运行PLOT命令,选择出图到文件。在画笔指定对话框中设置笔的宽度。 <BR>4.开始一个新图,用PSIN命令输入这个.eps文件。 <BR>5.然后再把图形剪贴到MS Word中 <BR>还有一种方法,可以在AutoCAD中将线条转换成PLINE线,设好宽度再复制、粘贴到WORD中。 <BR>问:为什么有些图形能显示,却打印不出来? <BR>答:如果图形绘制在AutoCAD自动产生的图层(DEFPOINTS、ASHADE等)上,就会出现这种情况。应避免在这些层上绘制实体。wf_1980 发表于 2004-10-26 17:55:00
9转帖)<b>AUTOCAD经验集</b>hulikun 发表于 2004-10-27 14:55:00
好的,我下来看看niejun1983 发表于 2004-10-28 21:42:00
为什么下不了?wf_1980 发表于 2004-10-29 08:35:00
那一个下不了??sunlimiao 发表于 2004-11-2 13:39:00
不错,顶一下,研究研究kzloo 发表于 2004-11-2 14:31:00
支持!~~研究一下~~wxhxq 发表于 2004-11-2 21:30:00
Thankscadnewface 发表于 2004-11-3 18:19:00
谢了!!呵呵!!一起学习!!