求一个将属性文字转为TEXT的lisp 程序!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个将属性文字转为TEXT的lisp 程序!相关的知识,希望对你有一定的参考价值。

不知道你是什么版本的,但你说的那一般默认的都是1,改快捷键输入ACAD.PGP就可以改了,你也可以加载一些你想用的程序,比如"贱人工具箱"也可以,新手很有用.鉴于你说的问题,你看了以下东西可能有帮助
1.如何替换找不到的原文字体?
复制要替换的字库为将被替换的字库名,如:打开一幅图,提示未找到字体jd,你想用hztxt.shx替换它,那么你可以去找AutoCAD字体文件夹(font)把里面的hztxt.shx 复制一份,重新命名为jd.shx,然后在把XX.shx放到font里面,在重新打开此图就可以了。以后如果你打开的图包含jd这样你机子里没有的字体,就再也不会不停的要你找字体替换了。
2.如何删除顽固图层?
方法1:将无用的图层关闭,全选,COPY 粘贴至一新文件中,那些无用的图层就不会贴过来。如果曾经在这个不要的图层中定义过块,又在另一图层中插入了这个块,那么这个不要的图层是不能用这种方法删除的。
方法2: 选择需要留下的图形,然后选择文件菜单->输出->块文件,这样的块文件就是选中部分的图形了,如果这些图形中没有指定的层,这些层也不会被保存在新的图块图形中。
方法3:打开一个CAD文件,把要删的层先关闭,在图面上只留下你需要的可见图形,点文件-另存为,确定文件名,在文件类型栏选*.DXF格式,在弹出的对话窗口中点工具-选项-DXF选项,再在选择对象处打钩,点确定,接着点保存,就可选择保存对象了,把可见或要用的图形选上就可以确定保存了,完成后退出这个刚保存的文件,再打开来看看,你会发现你不想要的图层不见了。
方法4:用命令laytrans,可将需删除的图层影射为0层即可,这个方法可以删除具有实体对象或被其它块嵌套定义的图层。
3.打开旧图遇到异常错误而中断退出怎么办?
新建一个图形文件,而把旧图以图块形式插入即可。
4.在AUTOCAD中插入EXCEL表格的方法。
复制EXCEL中的内容,然后在CAD中点编辑(EDIT)--选择性粘贴(PASTE SPECIAL)--AutoCAD图元--确定--选择插入点—插入后炸开即可。
5.在Word文档中插入AutoCAD图形的发法。
可以先将AutoCAD图形拷贝到剪贴板,再在Word文档中粘贴。须注意的是,由于AutoCAD默认背景颜色为黑色,而Word背景颜色为白色,首先应将AutoCAD图形背景颜色改成白色(工具-选项-显示-颜色)。另外,AutoCAD图形插入Word文档后,往往空边过大,效果不理想,可以利用Word图片工具栏上的裁剪功能进行修整,空边过大问题即可解决。
6.将AutoCAD中的图形插入WORD中有时会发现圆变成了正多边形怎么办?
用VIEWRES命令,将它设得大一些,可改变图形质量。
7.将AutoCAD中的图形插入WORD时的线宽问题。
当需要细线时,请使用小于等于0.25的线宽;当需要粗线时,设置大于0.25的线宽(大于0.25的线在Word里面打印时,打印出来的宽度大于0.5mm)。注意:必须在CAD里面激活线宽显示,如果从Word里面双击编辑过图片,请重新检查激活线宽。 当需要的线宽在0.25--0.5之间时,请使用多段线设置宽度。
8.AutoCAD在XP操作系统下打印时致命错误怎么办?
这跟AutoCAD 2002及以上版本使用打印戳记有关。在2000版时,增补的打印戳记功能就有很多的BUG,这个功能在2002版本后就直接做为AutoCAD功能。该功能在98操作系统中是完全没有问题的,但在有些XP系统中就会出错。所以在XP系统中最好不要去开启该功能。如果你已经不幸开启了该功能而使AutoCAD在打印时出现致命错误,解决的方法只能是这样:在AutoCAD的根目录下找到AcPltStamp.arx文件,把它改为其它名称或删除掉,这样再进行打印就不会再出错了,但也少了打印戳记的功能,该方法对于2002版及2004版均有效。
9.在AutoCAD2002中移动文字就出错是什么缘故?
移动文字时注意不要跨越尺寸线等文本,否则cad就会出现致命错误,取消正交绕过这些对象。
10.打开dwg文件时,系统弹出“AutoCADMessage”对话框提示“Drawingfileisnotvalid”,告诉用户文件不能打开怎么办?
这种情况下可以先退出打开操作,然后打开“File”菜单,选“DrawingUtilities/Recover”命令,或者在命令行直接用键盘输入“recover”,接着在“SelectFile”对话框中输入要恢复的文件,确认后系统开始执行恢复文件操作。
11.在多行文字(mtext)命令中使用Word97编辑文本。
Mtext多行文字编辑器是AutoCADR14中的新增功能,它提供了Windows文字处理软件所具备的界面和工作方式,它甚至可以利用Word97的强大功能编辑文本,这一功能可以用如下方法实现:打开“Tools”菜单选“Preferences”命令,“Preferences”对话框弹出后,打开“Files/TextEditor,Dictionary, andFontFileName/TextEditorApplication/Internal”,双击“Internal”,出现“Selectafile”对话框,接着找到“Winword.exe”应用程序文件,击“打开”钮,最后单击“OK”返回。完成以上设置后,用户如再使用mtext命令时系统将自动调用我们熟悉的Word97应用程序,为AutoCAD中的文本锦上添花。
12.AutoCAD图导入photoshop的方法。
这已经是一个很古老的问题了,解决的方法就是“虚拟打印”!下面一步步的来(为方便大家,采取中英文对照,括号里面是英文版):
1、打开“文件(file)”菜单下的“打印机管理器(plottermanager)”。
2、运行“打印机添加向导(Add-A-Plotter Wizard)。
3、点击“下一步(next)”,在右边的选项中选择“我的电脑(My Computer)”,继续“下一步”,进入“打印机型号(Plotter Model)”选择页面。
4、在左边的“厂商(Manufacturers)”中选择“光栅文件格式(Raster File Formats)”,这是我们可以看到在右边的“型号(Model)”中列出了很多种我们熟悉的图形格式,我习惯于使用JPG格式,选择“独立的JPEG编组(Independent JPEG Group JFIF)”,点击“下一步(next)”,直到完成。这样我们以后就可以将CAD图形输出位JPG格式了。接下来我们来看看该如何使用它。
5、用CAD做好一幅图后,我们打开“文件(file)”菜单下的“打印(plotter...)”。在打印对话框中,在打印机类型中选择我们刚刚装好的“Independent JPEG Group JFIF”,在下面的“打印到文件(plot to file)”里添上生成的文件名称和路径,这个文件就是一个可以再photoshop中编辑的图形了。在页面设置中选择一个我们需要的尺寸,其他的就和使用真正的打印机方法是一样的。点击打印后,等几秒钟,图形就生成了。
注:系统默认的页面尺寸只有1280*1600,这个尺寸并不能满足我们的需要。我们可以在打印机的属性中自定义我们所需要的尺寸。
Enjoy!补充:如果cad是2004或更高版本,就不用自己装打印机了,在打印设备中有一个“PublishToWeb JPG.pc3”的打印机,直接用就行了
6:补充曾老师的一点,如果你想导出纯黑色线形记得要在出图的同时把所有颜色的笔号都改为7号色,这样就可以导出纯黑色的图了,记得要在PS里把模式改为RGB,这样图象会更清晰。
13.修改完ACAD.PGP文件后,不必重新启动AUTOCAD立刻加载刚刚修改过的ACAD.PGP文件的方法。
键入REINIT命令,钩选PGP,再确定
14.从备份文件中恢复图形
首先要使文件显示其扩展名(打开我的电脑在工具——文件夹选项——查看—把隐藏已知文件的扩展名前面的钩去掉);其次要显示所有文件(打开我的电脑在工具——文件夹选项——查看—隐藏文件和文件夹—选显示所有文件和文件夹);再次找到备份文件(它的位置可以在工具—选项—文件—临时图形文件位置查到),将其重命名为“.DWG”格式;最后用打开其他CAD文件的方法将其打开即可。
15. 解决AutoCAD2005不能注册的方法。
去掉文件和文件夹的隐藏性。 删除 C:\\Documents and Settings\\All Users\\Application Data\\Autodesk\\Software Licenses\\B2260000.dat
16.acad.pgp文件的修改
XP:到c:\\\\Documents and Settings\\自己的用户名\\Application
Data\\Autodesk\\AutoCAD 2004\\R16.0\\chs\\Support\\acad.pgp.修改就行了。
98:到c:\\\\windows\\Application Data\\Autodesk\\AutoCAD 2004\\R16.0\\chs\\Support\\acad.pgp.
17.AUTOCAD中的工具栏不见了怎么办?
点工具——选项——配置——重置;也可用命令MENULOAD,然后点击浏览,选择ACAD.MNC加载即可。
18.如何关闭CAD中的*BAK文件?
(1)工具——选项,选“打开和保存”选项卡,再在对话框中将“每次保存均创建备份”即“CREAT BACKUP COPY WITH EACH SAVES”前的对钩去掉。
(2)也可以用命令ISAVEBAK,将ISAVEBAK的系统变量修改为0,系统变量为1时,每次保存都会创建“*BAK”备份文件。
19.如何调整AUTOCAD中绘图区左下方显示坐标的框?
按F6键切换。或者将COORDS的系统变量修改为1或者2。系统变量为0时,是指用定点设备指定点时更新坐标显示。系统变量为1时,是指不断更新坐标显示。系统变量为2时,是指不断更新坐标显示,当需要距离和角度时,显示到上一点的距离和角度。
20.绘图时没有虚线框显示怎么办?
修改系统变量DRAGMODE,推荐修改为AUTO。系统变量为ON时,再选定要拖动的对象后,仅当在命令行中输入DRAG后才在拖动时显示对象的轮廓;系统变量为OFF时,在拖动时不显示对象的轮廓;系统变量位AUTO时,在拖动时总是显示对象的轮廓。
21.选取对象时拖动鼠标产生的虚框变为实框且选取后留下两个交叉的点怎么办?
将BLIPMODE的系统变量修改为OFF即可。
22.命令中的对话框变为命令提示行怎么办?
将CMDDIA的系统变量修改为1。系统变量为0时,为命令行;系统变量为1时,为对话框。
23.如何给AutoCAD工具条添加命令及相应图标?
以cad2004为例
cad的工具条并没有显示所有可用命令,在需要时用户要自己添加。
例如绘图工具条中默认没有多线命令(mline),就要自己添加。
做法如下:
视图->工具栏->命令选项卡,选中绘图右侧窗口显示相应命令
这时找到“多线”,点左键把它脱出,若不放到任何已有工具条中,则它以单独工具条出现;否则成为已有工具条一员。
这时又发现刚拖出的“多线”命令没有图标!!就要为他添加图标。
做法如下:
把命令拖出后,不要关闭自定义窗口,单击“多线”命令,在弹出的面板的右下角,给它选择相应的图标!
这时,我们还可以发现,cad允许我们给每个命令自定义图标。这样作个个性化工具条就变得easy了!!
最后,要删除命令,重复以上操作,把要删除命令拖回,然后在确认要求中选“是”就行了。
24.怎么修改CAD的快捷键?
CAD2002及以下,直接修改其SUPPORT目录下的ACAD.PGP文件即可。
CAD2004是在工具-自定义-编辑自定义文件-程序参数(ACAD.PGP)处
25.在AutoCAD中有时有交叉点标记在鼠标点击处产生怎么办?
用BLIPMODE命令,在提示行下输入OFF可消除它。
26.怎样控制命令行回显是否产生?
将CMDECHO系统变量改为0或1。
27.快速查出系统变量的方法?
要记住多达两三百个变量有一定难度,可以用以下方法查出是哪个变量出了差错。为叙述方便,将有问题的文件命名为文件1,新建一个文件命名为文件2(最好新建,因为那样所有变量都是默认值,也可以用没问题的文件),分别在两文件中运行SETVAR,然后选?列出变量,将变量拷到Excel,比较变量中哪些不一样,这样可以大大减少查询变量的时间。举例:假设一个图其中变量ANGBASE设为90,那若用程序生成文本的话,所有文本中的字都会旋转90。现用setvar命令将变量列出,然后将所有变量复制-粘贴到一个Excel文件B列。新建一个文件,再用setvar命令将变量列出,将所有变量复制-粘贴到Excel文件A列,在Excel文件文件C1格输入“=IF(A1=B1,0,1)”下拉单元格算出所有行的值,然后对C列按递减排列,这样,值不相同的变量就集中在前几列,再分析这些变量,很快就能查出是ANGBASE变量的设置有问题
28.块文件不能炸开及不能用另外一些常用命令的问题。
这是一种在局域网传播较广的lisp程序造成的,使几个常用的命令不能用,块炸开只能用XP命令。可以有两种方法解决,一是删除acad.lsp和acadapp.lsp 文件,大小应该一样都是3K,然后复制acadr14.lsp两次,命名为上述两个文件名,加上只读,就免疫了。要删掉你DWG图形所在目录的所有lsp文件。不然你会感染别人的。 二是有种专门查杀该病毒的软件。
29.如何实现中英文菜单切换使用?
在AutoCAD中同时保存中英文两套菜单系统,来回切换是可行的。具体作法是把汉化菜单文件改名为Pacad.mnu,放在AutoCAD安装目录下的\\\\SUPPORT子目录中,当然还别忘了将acad.mnl复制成Pacad.mnl,放?*** acad.mnu同一目录中。在用中文菜单时,用menu命令加载Pacad;换回英文菜单时就再次使用menu命令加载acad菜单文件。
30.如何为autocad2004图形设置密码?
工具—选项—打开和保存按纽—安全选项,设置密码即可,如果取消密码在此把密码删掉即可。
31.标注时使标注离图有一定的距离
执行DIMEXO命令,再输入数字调整距离。
32.如何将图中所有的STANDADN样式的标注文字改为SIMPLEX样式?
可在ACAD.LSP中加一句:(vl-cmdf ".style" "standadn" "simplex.shx")。
33.重合的线条怎样突出显示?
可以使用工具——显示顺序功能。
34.如何快速变换图层?
点取想要变换到的图层中的任一元素,然后点击图层工具栏的-将对象的图层置为当前-即可。
35.在标注文字时,标注上下标的方法:
使用多行文字编辑命令:
上标:输入2^,然后选中2^,点a/b键即可。
下标:输入^2,然后选中^2,点a/b键即可。
上下标:输入2^2,然后选中2^2,点a/b键即可。
36.如何特殊符号?
打开多行文字编辑器-在输入文字的矩形框里点右键-选符号-其它打开字符映射表-选择符号即可。注意字符映射表的内容取决于用户在“字体”下拉列表中选择的字体。
37.如何用break命令在一点打断对象?
执行break命令,在提示输入第二点时,可以输入@再回车,这样即可在第一点打断选定对象。
38.使用编辑命令时多选了某个图元如何去掉?
在命令未结束下按住shift键选择多选的图元即可,很方便的喔。
39.“!”键的使用。
假设屏幕上有一条已知长度的线(指单线、多义线,未知长度当然也可以),且与水平方向有一定的角度,要求将它缩短一定的长度且方向不变,操作过程如下:直接选取该线,使其夹点出现,将光标移动到要缩短的一端并激活该夹点,使这条线变为可拉伸的皮筋线,将光标按该线的方向移动,使皮筋线和原线段重合,移动的距离没有限制,有人觉得移动的方向不能和原来一样那么就用辅助点捕捉命令,输入“捕捉到最近点(即near命令)”,然后在 “near 到(即near to)”的提示后输入“!XX”(XX为具体数值)后回车,该线的长度就改变了。很放便的呦!!!
40.图形的打印技巧。
由于没有安装打印机或想用别人高档打印机输入AutoCAD图形,需要到别的计算机去打印AutoCAD图形,但是别的计算机也可能没安AutoCAD,或者因为各种原因(例:AutoCAD图形在别的计算机上字体显示不正常,通过网络打印,网络打印不正常等),不能利用别的计算机进行正常打印,这时,可以先在自己计算机上将AutoCAD图形打印到文件,形成打印机文件,然后,再在别的计算机上用DOS的拷贝命令将打印机文件输出到打印机,方法为:copy <打印机文件> prn /b,须注意的是,为了能使用该功能,需先在系统中添加别的计算机上特定型号打印机,并将它设为默认打印机,另外,COPY后不要忘了在最后加/b,表明以二进制形式将打印机文件输出到打印机。
41.质量属性查询。
AutoCAD提供点坐标(ID),距离(Distance),面积(area)的查询,给图形的分析带来了很大的方便,但是在实际工作中,有时还须查询实体质量属性特性,AutoCAD提供实体质量属性查询(Mass Properties),可以方便查询实体的惯性矩、面积矩、实体的质心等,须注意的是,对于曲线、多义线构造的闭合区域,应先用region命令将闭合区域面域化,再执行质量属性查询,才可查询实体的惯性矩、面积矩、实体的质心等属性
42.如何计算二维图形的面积?
1.对于简单图形,如矩形、三角形。只须执行命令AREA(可以是命令行输入或点击对应命令图标),在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,打开捕捉依次选取矩形或三角形各交点后回车,AutoCAD将自动计算面积(Area)、周长(Perimeter),并将结果列于命令行。
2.对于简单图形,如圆或其它多段线(Polyline)、样条线(Spline)组成的二维封闭图形。执行命令AREA,在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,选择Object选项,根据提示选择要计算的图形,AutoCAD将自动计算面积、周长。
3.对于由简单直线、圆弧组成的复杂封闭图形,不能直接执行AREA命令计算图形面积。必须先使用region命令把要计算面积的图形创建为面域,然后再执行命令AREA,在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,选择Object选项,根据提示选择刚刚建立的面域图形,AutoCAD将自动计算面积、周长。
43.如何设置线宽?
要想改变AutoCAD对象线宽有很多种方法。最常的办法是是用图形屏幕上实体的颜色来得到不同的出图线宽。也就是说在画图的时候不同类型的图形根据自己的需要画成不同的颜色。然后在打印输出时设置不同颜色不同的线宽。方法如下:点击“File”菜单,选择“Print”,或按“Ctrl+P”,这时会弹出对话框“Print/Plot Configuration”。在“Pen Parameters”中点击“Pen Assignment”。弹出“Pen Assignment”对话框,在这里可以对每种颜色号码,指定笔号,并且选择合适的笔宽。这里先给大家介绍一下笔宽的大小是怎么决定的。笔宽的大小主要由打印设备分辨率和打印点之间的宽度决定的,公式为<点距>/<设备分辨率>。AutoCAD将用这些标准值来代替我们随意输入的值。 下面列举了几种常见打印机的最小的笔宽:
HP Laserjet III 打印机系列用1/300
Canon BubbleJet 喷墨打印机系列用1/360
HP LaserJet IV 打印机系列用1/600
新的Canon BubbleJet 喷墨打印机用1/720
明白了以上的道理,我们就可以在“Pen Assignment”对话框中根据需要填写线型宽度的值了。比如一号颜色用“1/300”,二号颜色就用“2/300”,等等。系统自动会算出相近的小数值
44.关于线宽的问题。
LineWeight线宽是绝对线宽,而多义线线宽是相对线宽,也就是说,无论图形以多大尺寸打印LineWeight线宽都不变,而多义线线宽则随打印尺寸比例大小变化而变化,无论实体被缩放多少倍,LineWeight线宽都不变,而多义线线宽则随缩放比例改变而改变。
45.[TAB]键在AutoCAD捕捉功能中的巧妙利用。
当需要捕捉一个物体上的点时,只要将鼠标靠近某个或某物体,不断的按TAb键,这个或这些物体的某些特殊点(如直线的端点、中间点、垂直点、与物体的交点、圆的四分圆点、中心点、切点、垂直点、交点)就回轮换显示出来,选择需要的点左键单击即可以捕中这些点。 注意当鼠标靠近两个物体的交点附近时这两个物体的特殊点将先后轮换显示出来(其所属物体会变为虚线),这对于在图形局部较为复杂时捕捉点很有用。
46.椭圆命令生成的椭圆是多义线还是实体?
由系统变量 PELLIPSE决定,当其为1时,生成的椭圆是多义线。
47.一些常用快捷键。
F1: 获取帮助
F2: 实现作图窗和文本窗口的切换
F3: 控制是否实现对象自动捕捉
F4: 数字化仪控制
F5: 等轴测平面切换
F6: 控制状态行上坐标的显示方式
F7: 栅格显示模式控制
F8: 正交模式控制
F9: 栅格捕捉模式控制
F10: 极轴模式控制
F11: 对象追踪式控制
Ctrl+B: 栅格捕捉模式控制(F9)
Ctrl+C: 将选择的对象复制到剪切板上
Ctrl+F: 控制是否实现对象自动捕捉(f3)
Ctrl+G: 栅格显示模式控制(F7)
Ctrl+J: 重复执行上一步命令
Ctrl+K: 超级链接
Ctrl+N: 新建图形文件
Ctrl+M: 打开选项对话框
Ctrl+1: 打开特性对话框
Ctrl+2: 打开图象资源管理器
Ctrl+6: 打开图象数据原子
Ctrl+ 打开图象文件
Ctrl+P: 打开打印对说框
Ctrl+S: 保存文件
Ctrl+U: 极轴模式控制(F10)
Ctrl+v: 粘贴剪贴板上的内容
Ctrl+W: 对象追 踪式控制(F11)
Ctrl+X: 剪切所选择的内容
Ctrl+Y: 重做
Ctrl+Z: 取消前一步的操作
参考技术A 转属性文字为TEXT?是要将图块中的定义属性转换出来,还是单纯的定义属性转成TEXT?楼主补充说明下。

写一个简单的lisp解释器

YouTube上看到了一个2004年版的SICP讲解

 

看完解释器那一个视频后,对解释器中的Eval和Apply有了基本的认识于是想开始直接写一个简单lisp的解释器

 

我的理解是:

Eval是来求表达式的值的;

Apply 则是用来求函数值的;

 

什么是表达式 ? atom 或者 a list of expression

 

atom 包括 symbol number 还有 string

number 和 string 都是代表它们自己

symbol 代表一个变量(variable) 它需要绑定一个值(value) 或者是一个number,string 或者 一个函数

 

所以综上:

Eval 根据一些规则来求表达式的值

1.是number 或 string 吗? 是就返回它们因为它们就代表它们本身

2.是 if , define....... 这些需要特殊考虑的值吗? 是就执行它们特殊的语法

3.是函数调用吗? 是则利用Apply来进行函数调用,同时Apply也需要Eval来得到函数和值

举个例子,eval 的过程如下:

 

1 (eval ‘(* (+ 1 2 3) 2))
2 
3 (apply (eval *) (map eval ((+ 1 2 3) 2)))
4 
5 (apply [primitive *] (list 6 2))
6 
7 ;====> 12

 

4.都不是则报错

 

参考

以上是关于求一个将属性文字转为TEXT的lisp 程序!的主要内容,如果未能解决你的问题,请参考以下文章

CAD做一个LISP程序,实现按属性块图框里的一个图号按从左到右排列?

CAD图中的数字都是动态块,数字只能在属性编辑器里修改。现在需要将块中的数值数字保存为多行文字,求高手

Asp.net 如何取母版页的属性及控件及方法调用求解答

html中表格怎样设置文字居中

微信小程序 text属性设置 WXSS样式

为啥PDF转为Word以后打开没有文字