autolisp驱动对话框的popup_list问题
get-tile获得的是所选择的项在列表中的索引,是一个数字字符串,将其转化为整型(Atoi),然后用(nth 索引 list)就行了。你前面加载数据项到下拉框中最好用串行Llst,后面取值就方便。
对于AutoCAD二次开发,VBA和AutoLISP哪一种更好
没有更好的说法。各有优点。VBA在计算方面有优势,autolisp的话,计算是弱项,其它方面表现很是不错。所以先学习autolisp,然后学习VBA,互相结合。
一个autolisp程序中断的问题
(setq en2_data (entget (car en2)));;获取文字的联合属性列表;这里好像有问题。少了";;"另外由于你要删除图元,因为en2不是图元名,所以要在(command "erase" en2 "")前面加一句(setq en2 (car en2))
关于AutoLISP中repeat和while的命令判读
repeat m ,m是5,循环了5次,这个时候i等于5,那么N等于1200。while (<= i 5)如果i等于5,那么就循环了6次,这个时候,i等于6了,那么结果N等于7200了。看看循环的次数。
AUTOLISP程序能在打开CAD时自动导入吗,还是必须打开CAD后再装载?
可以自动导入,用ap命令先打开“加载和卸载应用程序”,在该选项下的“启动组-内容”按钮,点击进入,添加你需要加载的lisp程序,下次打开cad时该程序随着同步加载,不需要再手动装载。
请问CAD autolisp二次开发怎么弄啊?帮忙把具体步骤说一下,就是自己创建一个命令的步骤。谢了
;;;灯管T4(defun C:T4206() ;;;用户输入T4206执行命令(不带任何参数,如果没有此行,加载后立即运行以后的程式)(graphscr)(setvar "cmdecho" 0);;;命令行显示关闭 (setq P1(getpoint " 请指定灯管(T4 206.5mm 6W)放置位置:"));;;设定一个插入点P1,返回点 (command "-INSERT" "D:/YZ_ZCAD/TK/DGT/T4206.dwg" "S" "1" P1 "0");;;执行CAD标准命令,前面加“-”(此问题参考CAD命令),为命令行执行命令,不使用对话框;;;在程式执行时,不能便用对话框,在命令前加“-”或用变量FILEDIA控制;少数用其它方式控制(setvar "cmdecho" 1);;;命令行显示打开 (princ);;;结束语 ) ;;;将以上文字放到LISP里面以任何英文名命名保存;;;在保存以后,在CAD中用AP加载文件,;;;执行T4206命令执行插入命令,(确;认文件的存在) 我个人认为VBA开发要比LISP更为方便,LISP会一点就好了,不必学太深,LISP对话框开发(DCL)比VBA复杂得多,但要用部分LISP函数用于命令执行VBA的函数.在AutoCAD帮助里面有开发人员帮助,里面很多东西都很详细,那些编书人好多东西也是直接用里面的东西,你不妨去看一下。
AutoLisp中的mirror命令怎么用
(defun c:MJL1 ( / &kw @p1 @p2) (setq &kw (ssget)) (if (/= &kw nil) (setq @p1 (getpoint " 请选择镜像第一点")) ) (if (/= @p1 nil) (setq @p2 (getpoint @p1 " 请选择镜像第二点")) ) (if (/= @p2 nil) (command "mirror" &kw "" @p1 @p2 "Y");;Y删除原来的对象;N不删除原来的对象 ) (prin1))
AutoLISP默认字符串
在没有其他输入的情况下,空格 enter本身也是字符串,所以必须手动输入
怎么用autolisp写一个插入块的程序,插入后这个块的比例随标注比例变化,谢谢!!
和CAD一样 可以 自定义的CAD快捷键一览 创建三维阵列 3A 创建三维面 3F 在三维空间创建由直线段组成的多段线 3P 在二维和三维空间中将某对象与其他对象对齐 AL 加载 AutoLISP、ADS 和 ARX 应用程序 AP 创建圆弧 A 计算对象或定义区域的面积和周长 AA 创建按指定方式排列的多重对象拷贝 AR 执行外部数据库命令的管理功能 AAD 输出选择对象的链接信息 AEX 管理对象和外部数据库之间的链接 ALI 显示并编辑表数据并创建链接和选择集 ARO 从链接到文字选择集和图形选择集的行中创建选择集 ASE 执行结构查询语言 (SQL) 语句 ASQ 创建属性定义 -AT 改变不依赖于块定义的属性信息 -ATE 用图案填充封闭区域 H或BH 根据选定对象创建块定义 -B 用对话框定义块 B 用封闭区域创建面域或多段线 BO (使用命令行)用封闭区域创建面域或多段线 -BO 部分删除对象或把对象分解为两部分 BR 给对象加倒角 CHA 修改现有对象的特性 -CH 根据圆心和直径或半径绘制圆 C 复制对象 CO或CP 创建属性定义 AT 编辑单个块的可变属性 ATE 修改对象的颜色、图层、线型和厚度 CH 设置新对象的颜色 COL 编辑文字和属性定义 ED 显示夹点并设置颜色 GR 创建并修改标注样式 D 插入块或另一图形 I 控制现有对象的特性 MO 修改对象名称 REN 设置绘图辅助工具 RM 设置对象选择模式 SE 管理已定义的用户坐标系 UC 选择预置用户坐标系 UCP 控制坐标和角度的显示格式及精度 UN 创建和恢复视图 V 设置三维观察方向 VP 创建对齐线性标注 DAL或DIMALI 创建角度标注 DAN或DIMANG 从前一个或选择的标注的第一尺寸界线处连续标注 DBA或DIMBASE 创建圆和圆弧的圆心标记或中心线 DCE 从前一个或选择的标注的第二尺寸界线处连续标注 DCO或DIMCONT 创建圆和圆弧的直径标注 DDI或 DIMDIA 编辑标注 DED或DIMED 创建线性尺寸标注 DLI或DIMLIN 创建坐标点标注 DOR或DIMORD 替换标注系统变量 DOV或DIMOVER 创建圆和圆弧的半径尺寸标注 DRA或DIMRAD 在命令行创建和修改标注样式 DST或DIMSTY 移动和旋转标注文字 DIMTED 测量两点之间的距离和角度 DI 将点对象或块沿对象的长度或周长等间隔排列 DIV 绘制填充的圆和环 DO 修改图像和其他对象的显示顺序 DR 打开鸟瞰视图窗口 AV 输入文字时在屏幕上显示 DT 定义平行投影或透视视图 DV 创建椭圆或椭圆弧 EL 从图形删除对象 E 将组合对象分解为对象组件 X 以其他文件格式保存对象 EXP 延伸对象到另一对象 EX 通过拉伸现有二维对象来创建三维实体 EXT 给对象加圆角 F 创建根据特性选择有关对象时用到的过滤器列表 FI 创建对象的命名选择集 G 使用命令行创建选择集 -G 用图案填充一块指定边界的区域 -H 修改现有的图案填充对象 HE 重生成三维模型时不显示隐藏线 HI 以多种格式向 AutoCAD 图形文件中插入图像 IM 使用命令行插入图像 -IM 控制选定图像的亮度、对比度和褪色度 IAD 向当前图形中定义并附着新的图像对象 IAT 为单个图像对象创建新剪切边界 ICL 向 AutoCAD 输入3DS/DXF/EPS /SAT/WMF等文件 IMP 将命名块或图形插入到当前图形中 -I 插入链接或嵌入对象 IO 找出两个或多个三维实体的干涉区并用公用部分创建三维组合实体 INF 从两个或多个实体或面域的交集创建组合实体或面域 IN 管理图层 LA 在命令行上执行 LAYER 命令 -LA 创建一条引出线将注释与一个几何特征相连 LE或LEAD 拉长对象 L 创建、加载和设置线型 LT 使用命令行创建、加载和设置线型 -LT 显示选定对象的数据库信息 LI或LS 设置线型比例因子 LTS 把某一对象的特性复制到其他若干对象 MA 将点对象或块按指定的间距放置 ME 创建对象的镜像副本 MI 创建多线 ML 在指定方向上按指定距离移动对象 M 从图纸空间切换到模型空间视口 MS 创建多行文字 T或MT 使用命令行创建多行文字 -T 创建浮动视口和打开现有的浮动视口 MV 创建对象的等距线,如同心圆、平行线和平行曲线 O 设置运行对象捕捉模式并修改靶框大小 OS 使用命令行设置运行对象捕捉模式并修改靶框大小 -OS 移动显示在当前视口的图形 P 使用命令行移动视口 -P 插入剪贴板数据并控制数据格式 PA 编辑多段线和三维多边形网格 PE 创建二维多段线 PL 将图形打印到绘图仪、打印机或文件 PLOT 创建点对象 PO 创建用多段线表示的正多边形 POL 自定义 AutoCAD 系统参数的设置 PR 显示打印图形的效果 PRE 从模型空间视口切换到图纸空间 PS 删除数据库中未用的命名对象,例如块或图层 PU 退出 AutoCAD EXIT 绘制矩形多段线 REC 刷新显示当前视口 R 刷新显示所有视口 RA 重生成图形并刷新显示当前视口 RE 重新生成图形并刷新所有视口 REA 从选择的一组现有对象中创建面域对象 REG 修改对象名 -REN 创建三维线框或实体模型的具有真实感的渲染图像 RR 沿轴旋转二维对象以创建实体 REV 绕基点旋转对象 RO 设置渲染系统配置 RPR 在 X、Y 和 Z 方向等比例放大或缩小对象 SC 从脚本文件执行一系列命令 SCR 用剖切平面和实体截交创建面域 SEC 列出系统变量并修改变量值 SET 显示当前视口图形的着色图像 SHA 用平面剖切一组实体 SL 规定光标按指定的间距移动 SN 创建二维填充多边形 SO 检查图形中文字的拼写 SP 创建二次或三次样条曲线 SPL 编辑样条曲线对象 SPE 移动或拉伸对象 S 创建命名样式 ST 用差集创建组合面域或实体 SU 校准、配置、打开和关闭已安装的数字化仪 TA 设置当前三维实体的厚度 TH 控制对图纸空间的访问以及控制视口的行为 TI 创建形位公差标注 TOL 显示、隐藏和自定义工具栏 TO 创建圆环形实体 TOR 用其他对象定义的剪切边修剪对象 TR 通过并运算创建组合面域或实体 UNI 设置坐标和角度的显示格式和精度 -UN 保存和恢复已命名的视图 -V 设置图形的三维直观图的查看方向 -VP 将块对象写入新图形文件 W 创建三维实体使其倾斜面尖端沿 X 轴正向 WE 将一个外部参照附加到当前图形中 XA 将外部参照依赖符号绑定到图形 XB 使用命令行执行XBINDW命令 -XB 定义外部参照或块剪裁边界,并且设置前剪裁面和后剪裁面 XC 创建无限长的直线,称为参照线 XL 控制图形中的外部参照 XR 使用命令行执行XREF命令 -XR 放大或缩小当前视口对象的外观尺寸 Z
autolisp 程序 用 entmake函数创建“text”图元时,怎么控制文字的对齐方式?
对于mtext,控制文字的对齐格式可以使用以下组码:(71 . 1) 左对齐-上对齐 这个是默认的对齐方式(71 . 4) 左对齐-中央对齐(71 . 7) 左对齐-下对齐(71 . 2) 居中对齐-上对齐(71 . 5) 居中对齐-中央对齐(71 . 8) 居中对齐-下对齐(71 . 3) 右对齐-上对齐(71 . 6) 右对齐-中央对齐(71 . 9) 右对齐-下对齐
[求助]请问如何用AUTOLISP读取文件中的数据?
先用open函数打开文件,如(open "f:/1.txt" "r"),再用read-line就可以读取了!
autolisp中car是什么意思
命令: (setq a (getpoint))(72.5416 38.3038 0.0)命令: (car a)72.5416 也就是表中第一个数据(表)
autocad中如何使用autolisp把图层a上面的某个文字复制到图层b上?
(defun c:test() (setq ss (ssget)) (command "copy" ss "" "non" "0,0" "non" "0,0") (command "chprop" ss "" "layer" "图层b" ""))
CAD加载Autolisp,是为了里面的命令能够快速画出杆路和管道
提示的意思是查找文件夹【autolisp】没有找到。按截图,文件夹命名是【autolisp TT】,修改文件夹命名为【autolisp】。
请教一下关于Autolisp中关于线型设置的一些基础知识,
1: "c" 表示结束,close。 你也可以 用 "" 代替2. m表示 生成新的图层 ,你生成了 “cuxian” c 表示 颜色,color, 7就是颜色名,白色 lw 表示 线宽。0.6就是线宽值 备注:你可以再命令行里输入“-layer” 。这些值的意思你就明白了
求一个autolisp程序,这个程序有以下要求
我在编写这个程序了,因为要输入的数值有两个,而且有三个不同的设定方式,及两种选择模式,所以我编写的是带有储存数据功能的对话框程序。目前界面如下图所示:另外“当然你有好的办法的话,直接画出大的多边形:“就是扣除小矩形的形状”,我有工具可以直接得到多段线围的所有统计面积,如果画出大的多边形,小矩型就不画;我希望是这个形状”这段的意思是?程序最终要不要画小矩形是看你说的要不要扣除小矩形面积么?如果不扣除就不用画?
autolisp运行后打开cad为什么是三维
方法如下1、首先,在计算机上启动Auto-CAD软件,接着,在下图所示的软件界面选项框中选择“AutoCAD经典”选项。2、接下来,单击工具栏中的“查看”选项,这时单击其页面中的“视觉样式/2D线框”选项。3、然后,单击“视图”选项页中的“三维视图/俯视图”。4、接下来,此时,就可以找到已转移到二维视图的软件界面模式,然后单击“栅格”关闭界面中的栅格了。5、最后,完成上述设置后,这样就可以在Auto CAD 2007中将界面设置为二维了。
autolisp 输入的列表有缺陷 ; 错误: 参数太多: (IF (= ( ... ) 1) (SETQ PTLST ( ... )) (SETQ N ( ... )
程序太乱了,你试下我写的这个吧,功能应该是你要的。(defun $Vp->Lp ( opt ) (if (= (type opt) "variant) (Vlax-SafeArray->List (Vlax-Variant-Value opt)) (Vlax-3d-Point opt) ))(defun $Len->Vob ( obj ) (if (= (type obj) "vla-object) (Vlax-Vla-Object->Ename obj) (Vlax-Ename->Vla-Object obj) ))(defun c:qxc ( / &doc &mod &sel #cm #os &ob #si #sn @pl ) (if (null vlax-dump-object) (vl-load-com) ) (setq &doc (vla-get-activedocument (vlax-get-acad-object)) &mod (vla-get-modelspace &doc)) (if (setq &sel (ssget "((-4 . "<OR") (0 . "POLYLINE") (0 . "LWPOLYLINE") (0 . "LINE") (-4 . "OR>")))) (progn (if (null #oth) (setq #oth (getvar "textsize")) ) (if (setq #th (getreal (strcat " 请输入字高: <" (rtos #oth) "> "))) (setq #oth #th) (setq #th #oth) ) (if (null #oof) (setq #oof 0.2) ) (if (setq #of (getreal (strcat " 请输入间距: <" (rtos #oof) "> "))) (setq #oof #of) (setq #of #oof) ) (setq #cm (getvar "cmdecho") #os (getvar "osmode")) (setvar "cmdecho" 0) (setvar "osmode" 0) (repeat (setq @pl "() #si 0 #sn (sslength &sel)) (setq &ob ($Len->Vob (ssname &sel #si)) #si (1+ #si)) (cond ((= (vla-get-objectname &ob) "AcDbLine") ($lxc-addline &ob) ) ((= (vla-get-objectname &ob) "AcDbPolyline") ($lxc-addpolyline &ob) ) ) ) ($lxc-writetext @pl) (setvar "osmode" #os) (setvar "cmdecho" #cm) ) (princ " 未选择对象,程序退出!") ) (princ))(defun $lxc-writetext ( @pl / &tx @p1 @p2 @p3 #an #ds ) (foreach @cp @pl (setq @p1 (nth 0 @cp) @p2 (nth 1 @cp) #an (angle @p1 @p2) #ds (distance @p1 @p2)) (setq @p3 (polar (polar @p1 #an (/ #ds 2.0)) (+ #an (/ pi 2)) (+ #of (/ #th 2.0)))) (setq &tx (vla-addtext &mod (rtos #ds) ($vp->lp @p3) #th)) (vla-put-alignment &tx 4) (vla-put-rotation &tx #an) (vla-put-textalignmentpoint &tx ($vp->lp @p3)) ))(defun $lxc-addline ( &ob / ) (setq @pl (cons (list ($Vp->Lp (vla-get-startpoint &ob)) ($Vp->lp (vla-get-endpoint &ob))) @pl)))(defun $lxc-addpolyline ( &ob / ) (foreach ob ($vp->lp (vla-explode &ob)) (if (= (vla-get-objectname ob) "AcDbLine") ($lxc-addline ob) ) (vla-erase ob) ))命令是qxc
autolisp-图元信息的读取和修改
在Autocad中,一条线,一个圆,一个块,都是图元。想要控制某个图元,就要掌握该图元的信息。 比如,图纸空间中有一条Line。 这些属性中间有个 . ,叫做 点对 。 每项属性前面的数字,叫做 群码 ,类似于索引值,方便引用。 不同的图元有共有的属性,也有特有的属性。 观察这些属性,我们应该能看出来,0是图元名称,8是图层,10是line的起点坐标,11是line的终点坐标。 得到图元信息后,我们自然就想修改。 想要修改信息,可以使用一下步骤 现在,我们可以试试修改line的起点位置。 替换的时候要注意,如果 old_spoint 和图元当前状态匹配不上,替换会不成功。 此时,我们得到了 new_line_data ,但是,想要图形发生变化,还需要更新下 回到autocad,会发现图形已经变化。
怎么让autolisp程序变成exe文件
1、第一步先打开c语言编辑工具,然后在工具中写入程序的源代码。 2、填写完之后,点击编译后点击组建,然后点击执行。 3、执行完程序,然后再按回车键。 4、 然后在点击页面左上角的“文件”下的“另存为”,然后把文件存到相应的文件夹中。 5、然后再从电脑上找到这个文件夹并打开,然后从里面找到一个名称为Bebug的文件夹。 6、然后打开此文件夹,可以从里面看到有一个以.exe为后缀名的文件,这个就是所需要的可执行文件,将其拷贝出,就可以单独执行了,也就是一个小软件生成了。
Autolisp怎样实现工程图纸的打开
格式:(open filename mode)filename:指定要打开文件的名称和扩展名,文件的全部路径。例:(setq a (open "c:/program files/ *** " "r"))mode:指明文件的状态为打开文件用于读、写或追加。字符串可以包含下列字符之一:r 打开用于读操作。w 打开用于写操作。a 打开文件用于追加操作。
CAD计算器在计算时总是出现“autoLISP变量 没有值”,怎么回事呢?
操作CAD计算器之前需要把输入法切换为“英文”输入法,就可以正常进行计算了,也不含出现“autoLISP变量 没有值”的提示了。
autolisp列表如(1 2 3 4 5 6 7 8 9 );获得3到6之间的子列表怎么写命令
(setq a "(1 2 3 4 5 6 7 8 9));;;;提取表n至m项无素;;;用法:(getlst_n->m a 3 6);;;返回:表;;;例:(getlst_n->m a 3 6) 返回(3 4 5 6)(defun getlst_n->m (lst n m / new_lst) (repeat (1+ (- m n)) (setq new_lst (cons (nth (1- n) lst) new_lst)) (setq n (1+ n)) ) (reverse new_lst));;;;删除指定第几项元素;;;用法:(del_lst-n a 3) 删除表a第3项元素;;;返回:表;;;例:(del_lst-n a 3) 返回 (1 2 4 5 6 7 8 9)(defun del_lst-n (lst n / new_lst tem_lst m ) (setq tem_lst lst m 0) (repeat (1- n) (setq new_lst (cons (nth m lst) new_lst)) (setq m (1+ m)) (setq tem_lst (cdr tem_lst)) ) (append (reverse new_lst) (cdr tem_lst)) )
autolisp 错误: DXF 组不正确:
组码40和62需要的都是数字,dcl读取出来的都是字符串,只要将这些字符串转换成数字就可以了,可以用函数atof和atoi转换。
AutoLISP在尼康全站仪原始数据重新计算中的应用:尼康全站仪
摘 要:AutoLISP是针对AutoCAD系统的开发工具之一,也是开发AutoCAD图形软件的强有力工具,在很大程度上减轻了作业人员的工作强度。本文作者在研究AutoLISP与尼康全站仪原始数据结构的基础上,编制出应用广泛的全站仪原始数据重新计算程序。 关键词:AutoLISP 全站仪 程序 中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2012)05(a)-0012-02 AutoCAD是一套向量式计算机辅助制图软件,可广泛地应用于机械、土木、结构、建筑、水电、消防、室内设计、地理信息、地图、考古及服装设计等各行业中的工作图绘制。而各行业各有其特有的制图方法及所需的绘图功能,如果将这些功能都放进来,AutoCAD势必会变得庞大而笨拙。因此,AutoCAD提供了程序应用界面,让用户以AutoCAD作为平台,利用AutoLISP、VisualLISP、VBA、VB、ObjectARX(C++)等计算机语言进行二次开发,如此能同时兼顾软件的执行速度与用户的工作效率。 AutoLISP语言是一种嵌在AutoCAD内部的LISP编程语言,既具有一般高级语言的基本结构和功能,包括赋值、打印、条件、循环、文件等函数,又具备AutoCAD所特有的图形处理能力。利用AutoLISP语言编制的程序可以直接增加、修改和调用AutoCAD命令,在各种工程CAD系统的开发中起着重要的作用。 在现今测绘行业中,全站仪是最普遍的碎部点采集工具。利用AutoLISP语言对全站仪原始观测数据进行开发,是一个全新的课题。本文以尼康全站仪为例,进行介绍。 1 尼康全站仪的数据分析 在使用全站仪进行常规测量中,首先应通过GPS、导线测量等方式进行控制测量,计算出控制点的平面坐标和高程,然后再进行碎步点的采集。但也经常出现控制点坐标录入错误,X与Y值输反等错误。如出现控制点平面坐标录入错误的情况,需要逐站进行平移、旋转来解决;如出现控制点高程录入错误的情况,需要逐站进行常数改正;如出现X与Y值输反的情况,需要重新进行外业数据采集。 经过对尼康全站仪通讯数据进行研究发现,尼康全站仪具有存储功能,进行碎步点采集的同时,可生成两个数据文件:raw原始观测数据文件和xyz坐标数据文件。通过传输软件可将这两个数据文件下传至计算机。 1.1 原始观测数据(raw数据)分析 raw数据为全站仪外业原始观测数据,示例如下。 CO,Temp:0CPress:1024hPaPrism:3015-Feb-200815:35:12 MP,G1,,284867.451,512096.664,28.169,102 MP,G2,,284721.423,512087.176,26.570,102 MP,G3,,284534.903,512153.025,26.135,102 ST,G1,,G2,,1.440,180.0000,180.0000 F1,G2,1.800,,0.0000,90.2832,15:35:12 SS,G2A,1.800,146.368,180.0001,90.2834,15:37:36,102 SS,1,1.800,146.366,180.0003,90.2833,15:38:06, SS,2,1.800,24.312,92.3516,89.2145,15:46:31,GAO SS,3,1.800,32.593,113.1934,90.0001,15:47:38,KAN SS,4,1.800,28.045,121.4828,90.2821,15:48:07,KAN SS,5,1.800,22.977,257.5212,89.3530,15:49:46,KAN SS,6,1.800,44.188,147.0905,91.4958,15:50:41,PENG SS,7,1.800,39.705,172.2815,91.5047,15:52:09,GAO SS,8,1.800,66.224,257.0453,91.0520,15:54:18,LB SS,9,1.800,70.833,256.4149,91.0424,15:54:35,LB SS,10,1.800,69.744,261.3030,90.2914,15:55:14,KENG 可通过每行第一个逗号之前的字母代码确定本行的数据类型,详见表1。 1.2 坐标成果数据(xyz数据)分析 xyz数据为全站仪坐标成果数据,示例如下。 G1,284867.451,512096.664,28.169,102 G2,284721.423,512087.176,26.570,102 G3,284534.903,512153.025,26.135,102 G2A,284721.396,512087.173,26.593,102 1,284721.398,512087.172,26.594, 2,284864.781,512120.827,28.080,GAO 3,284852.632,512125.693,27.809,KAN 4,284851.156,512119.488,27.578,KAN 5,284864.090,512073.935,27.973,KAN 6,284828.872,512118.164,26.396,PENG 7,284827.854,512099.302,26.530,GAO 8,284856.864,512031.304,26.550,LB 9,284855.658,512026.832,26.482,LB 10,284861.646,512027.164,27.216,KENG 数据格式解释为以逗号为分隔,分别表示点名,纵坐标,横坐标,高程,代码。 2 算法流程 进行重新计算之前,先将raw文件中的MP,UP后的控制点坐标数据修改正确。然后,根据ST后的摆站信息中读出摆站方位角,并与利用控制点坐标数据计算出的方位角进行比较:如一致,则ST后的所有碎步观测的方位角数据均不用进行改正,直接利用坐标正算计算xyz即可;如不一致,则ST后的所有碎步观测的方位角数据均需进行常数改正后,再进行xyz计算。具体流程详见图1。 为了使条例更加清晰,并增加运算速度,程序中自定义了3个函数。分别实现将平面坐标数据小数点后不满3位的补足3位,将弧度转换为度分秒,度分秒数据相减的功能。 3 结语 采用了全站仪等先进外业采集设备,并不能意味着测绘任务的圆满完成,还需采用实用的内业程序来减少人工干预,提高工作效率。本程序在北京市测绘设计研究院市政测量、管线测量中应用广泛,经受了实践和时间检验,有效提高了工作效率。 参考文献 [1] 蓝屹生.AutoLISP学习导引[M].北京:中国铁道出版社,2003. [2] 全琳卡.AUTOLISP在城市道路规划中的应用[J].科技信息,2009(19):453~454. [3] 汪河,周永辉,孙永辉.AutoLISP在公路普查测量中的应用[J].中国非金属矿工业导刊(增刊),2009(76):51~53.
autolisp 中nth是什么意思
用来提取表中"第几项"数据,如:(nth 2 "(1 2 3 4 5 6))返回3,注意计数从0开始
cad出现autolisp应用程序源代码怎么处理
这个cad里面一种编程语言,保存后产生的文件,你要用的话在cad里面选择工具---autolisp----选择应用工具-----再选这个文件即可,一般不用的话你也不用管它
autolisp 自定义函数使用报错,新手求教送上所有分
对应单片机ADC端口输入的模拟电压,在单片机采样后就变成了数字量,对于10位ADC而言,模拟电压应对的数字量数据是date=1024*(Vin/Vcc),这个算法对应的是以单片机的电源电压Vcc为基准参照电压的计算,例如:对应1.5V采样值,其数据计算后为date=0x0133或十进制的307;如果需要输出真实的十进制电压数据,就要变换一下计算公式,此时:Vin=((date*Vcc)/1024)*2(降压倍数);对应1.5V的采样值,程序采样后的数据date=307,带入变换后的公式计算的结果即为实际电压值3V,编程时各个转换数据用的变量应该设置为16位以上的变量或浮点变量,并且采用浮点运算,可以得到比较精确的数据。
cad出现autolisp应用程序源代码怎么处理
这个CAD里面一种编程语言,保存后产生的文件,你要用的话在cad里面选择工具---autolisp----选择应用工具-----再选这个文件即可,一般不用的话你也不用管它
Auto cad中的LISP语言是什么?有怎样的用途?
AutoLISP语言是在普通的LISP语言基础上,又扩充了许多适用于CAD应用的功能而形成的一种程序设计语言。它是一种解释性求值语言,速度较慢,难以保密,可用任何文字编辑软件编辑,用纯文本的格式保存。例如:(setqi1);就是代码i值是1(command"CIRCLE""(00)100);命令在坐标原点绘制半径100的圆。AutoLISP语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行AutoLISP程序就是执行一些函数,再调用其它函数。例如:(setqpt1(getpoint" 请选择圆心插入点"))(command"CIRCLE"pt1100);命令这个插入点绘制圆,半径为100AutoLISP把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。例如:一条直线,起点坐标"(00),端点坐标"(1000 0),图层为0层,颜色为1【红色】这个是一条直线的一些数据,怎么执行变为程序代码如下:(entmake(list"(0."LINE")"(8."0")"(62.1)"(1000)"(1110000)))以上可以直观的看数据,也可以粘贴到AutoCAD的命令行,就绘制出以上要求的直线。AutoLISP语言中程序运行过程就是对函数求值的过程,是在对函数求值的过程中实现函数的功能。在AutoCAD里面,所有的对象可以看成是由无数的点构成,每个点都有自己的坐标,函数的运行就是计算出这些点的数值,根据得到的数值进行判断。AutoLISP语言的主要控制结构是采用递归方式。递归方式的使用,使得程序设计简单易懂。例如:(setq&k1(entsel));选择对象(setq&k1(car&k1));提取图元(setq#g1(entget&k1));取得属性列表(setqc0(cdr(assoc0#g1)));取得图元名称以上是一个个的写下来,可以写成以下: (setqc0(cdr(assoc0(entget(car(entsel))))));简单易懂由于autolisp简单,容易,所以上手很快。编写程序后,可以大大的提高绘图效率,有名的【天正】插件,就是绘图的好帮手。autolisp程序也有不足的地方,如提取坐标,这个只能在图元属性里面提取,这样的话会有局限性,法向坐标1与-1的坐标值相同,但是图形的位置不同,造成计算坐标的困难,所以提取坐标值,最好使用VLAX函数来提取。
请问autolisp里面哪一个函数可以进行四舍五入的?例如我量一条直线的实际长度为1003,我想他输出到excle
EXCEL里面四舍五入函数是ROUND
autolisp多个点连线后怎么在最后一个店终止
在循环结束后,输入命令:(command "");结束命令;(command "C");多段线封闭结束
autolisp程序加载时显示:“错误: 输入的列表有缺陷”
(defun c:draw ( / ) (setq delta (/ (* 2 pi) 50));;3.14用pi表示即可 (setq j1 (/ 30 50 )) (setq a 0) (setq jj 0) (setq ii 0) (command "3dpoly" (list 100 0 0)) (repeat 3 (repeat 50 (setq jj (+ jj 1));;这个地方少了一个挂号,所以有缺陷。 ( setq a ( + delta a ) ) (setq x (* 100 (cos a))) (setq y (* 100 (sin a))) (setq z (* j1 jj)) (setq p2 (list x y z)) (command p2) ) (setq ii (+ ii 1)) (setq z (* t1 ii)) ) (command "") )
autolisp程序调试问题! 如何调试一个带有用户输入的autolisp程序呢?
cad自带的visual lisp编辑器中,就有参数监视的功能,还能加入断点,你想在哪一行代码停下来都可以,界面上就有图标的,你自己找一下吧,我好久没用了
AUTOLISP难学吗?
不难学,LISP的特点就是解释性语言,输入一句,运行一句,调试一句。是可以现学现用的好东西。就是网上的资料不太多,相关书籍也不多,推荐两个网站分别是明经社区和晓东CAD,绝非广告,这两个网站让我受益匪浅。网址自己百度吧。
用autolisp怎么调用修剪伸缩等需要先选中对象的命令啊
(defun c:tm ( ) (command "_.line" (list -10 0) (list 10 0) "") (setq l1 (entlast)) (command "_.line" (list 0 10) (list 0 -10) "") (setq l2 (entlast)) (command "_.trim" l1 "" (list l2 (list 0 2)) ""))这是依照你追问一楼的基础写的,你看下吧.
autolisp 怎么查询一个图层是否存在呢?用IF条件语句!
其实不用if的。直接 (command "layer" "m" "new_layer" "c" 1 "" "")如果不存在,建立图层new_layer,并且置为当前图层。
AUTOLISP怎么将(# #)转化为表(1 34)
(vl-load-com)(setq a (vlax-make-variant 1 5)) ;创建变体a,类型双精度浮点数(setq b (vlax-make-variant 34 5));创建变体b,类型双精度浮点数(mapcar "vlax-variant-value (list a b)) ;返回(1.0 34.0)如果要转为整数请用下面一句:(mapcar "fix (mapcar "vlax-variant-value (list a b))) ;返回 "(1 34)
autolisp 加载时 ; 错误: 参数类型错误: stringp nil
((draw))感觉这个地方错了。外层括号应该褪去。
AutoLisp,怎么实现重复执行命令
不知道你具体想做什么,就编了一小段,大概可以实现你说的功能,在Vlisp控制台运行。提示选择一点后,判断是否有效,有效则作为标注的第一点,否则退出循环。(setq a 0)(while (/= a nil)(progn(setq a (getpoint "选择标注的第一点:"))(if (/= a nil)(command "_dimlinear" a pause pause))))
cad中autolisp病毒怎么才能杀尽啊
您好:CAD中毒的话建议您使用腾讯电脑管家的杀毒功能杀毒吧,腾讯电脑管家是采用“4+1”核“芯”杀毒引擎的专业杀毒软件,是完全可以帮助您彻底查杀autolisp病毒的,您可以点击这里下载最新版的腾讯电脑管家:最新版腾讯电脑管家下载腾讯电脑管家企业平台:http://zhidao.baidu.com/c/guanjia/
使用autolisp语言程序统计线的步骤
;------------------------------------------------------------------------------------------------;统计AutoCAD图中线段的条数和线段的总长度。;*********************** Write By zhenglin ***************Edit By in_city************************(defun c:tj1(/ p n e e1 e2 l s x1 x2 y1 y2 xx yy ll lll) (setvar "cmdecho" 0) (setq ln 0 lll 0) (princ " >>>>>>>>>> ") (setq p (ssget)) ; Select objects (if p (progn ; If any objects selected (setq l 0 n (sslength p)) (while (< l n) ; For each selected object... (if (= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (progn (setq e1 (assoc 10 e) e2 (assoc 11 e)) (setq x1 (cadr e1) y1 (caddr e1)) (setq x2 (cadr e2) y2 (caddr e2)) (setq xx (abs (- x2 x1)) yy (abs (- y2 y1))) (setq ll (sqrt (+ (* xx xx) (* yy yy)))) (setq lll (+ lll ll)) (setq ln (+ ln 1)) ) ) (setq l (1+ l)) ) ) ) (setq po (getpoint " >>>>>>>>>> input point:")) (setvar "osmode" 0) (setq pt (polar po (/ pi 2) 5)) (princ " >>>>>>>>>> total line number= ") (princ ln) (princ " >>>>>>>>>> total line length= ") (princ lll) (command "_.text" pt "3" "0" (strcat "total line number= " (rtos ln 2 4))) (command) (command "_.text" po "3" "0" (strcat "total line length= " (rtos lll 2 4))) (command) (princ " ************** Write By zhenglin *************") (princ " ************* Complete By In_city ************") (princ));------------------------------------------------------------------------------------------------
如何取消AutoCAD 快速加载 AutoLISP 文件
1、首先在计算机中任意磁盘设置一个存放自编程序的文件夹。2、打开CAD。3、右键单击绘图区空白处,点击选项。4、在弹出的对话框中点击文件,再点击支持文件搜索路径。5、再点击添加。6、在空白位置填入之前保存文件夹的路径。7、点击应用,再点击关闭,就加载完成了。
autolisp语言怎么插入到cad中,怎么在cad中运用这个代码命令???
1、手动加载:在命令行输入“AP”并按回车键(或空格键),打开应用程序加载对话框,找到你这个程序文件,选中后点击加载,加载完成后直接在命令行输入命令“SA”就可运行你的程序了。2、自动加载:可以进入CAD安装目录下的Support目录,打开acad****.lsp文件(注:****为为版本号,假如你安装的是CAD2012的话,就是acad2012.lsp)在底部输入下面两行并保存即可:(load"盘符:\文件路径\sa.lsp")(princ)注:1、手动加载时,每个文档中都要分别加载后才能使用,加载时也可用鼠标点击命令“加载应用程序”,该使命在旧版本CAD经典界面时位于“工具”菜单下,新版本Ribbon界面时位于“管理”功能区下面。2、自动加载时文件路径的输入方法,例如你的代码文件sa.lsp的完整路径为“E:abcsa.lsp”的话,就应输入“E:\abc\sa.lsp”或“E:/abc/sa.lsp”。
Autolisp是一个什么程序啊?
AutoLISP是由Autodesk公司开发的一种LISP程序语言(LISP是List Processor的缩写)http://www.88ve.cn/jixiesoft/cad/200705/jixiesoft_3126.html在众多的AutoCAD开发工具中,AutoLISP是使用最简单、应用最广泛、使用者最多的一种开发工具,因此一直受到AutoCAD开发人员的喜爱。http://tag.csdn.net/tag/autolisp/3.html
autolisp 尖括号
尖括号代表必选。方括号代表可选。AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。
【AutoLISP】请教:(getdist str_rr))是什么意思?
(getdist [pt] [prompt]) 这是getdist函数语法,如果后面有个pt那么只需用户选取一点就行了(或输入值),后面的[prompt]是提示语,这个是字符串,你的str_rr(setq str_rr (strcat " 新直径<"(rtos (* old_rr 2) 2)">:")) 这句返回的是"新直径<100>:"后面一句是:(setq rr (getdist str_rr))那么运行的结果是:命令: 新直径<100>:这里getdist后面没有带PT,那么要求用户输选两点或直接输入值,后面的str_rr是提示多看看语法就行了
如何用autolisp获取cad图形文件中直线和多义线的图层名
(setq ly (cdr (assoc 8 (entget (car(entsel" 选择对象:"))))))
autolisp参数类型错误 怎么破
按一下程序停在哪一句,然后重点分析。应该是返回数据空之类的错误。
Autolisp 程序 参数类型错误
(setq pt10 (car (assoc 10 (entget en))))car改cdrcar取第一个值,就是10,后面distance函数要求输入两个点,要求的数据格式是二维点表,或三维点表,输入10就发生了数据类型错误。
autolisp提示错误 参数太少
元素之间缺少分隔符。
autolisp问题,求大侠相助
程序如下,调试OK:(defun c:hello2077() (setq os (getvar "osmode")) (setvar "osmode" 0) (setq offsetx (getreal "请输入偏移距离:")) (command "layer" "n" "newlayer" "") (prompt " <<框选要偏移的矩形>>") (setq ss (ssget)) (setq n 0 k 0) (repeat (sslength ss) (setq en (ssname ss n)) (setq endata (entget en)) (if (and (= (cdr (assoc 8 endata)) "xlayer") (= (cdr (assoc 0 endata)) "LWPOLYLINE")) (progn (command "offset" offsetx en (getvar "vsmax") "") (command "chprop" (entlast) "" "la" "newlayer" "") (setq k (1+ k)) ) ) (setq n (1+ n)) ) (princ (strcat " 共有<"(itoa k)">个矩形偏移="(rtos offsetx))) (setvar "osmode" os) (alert "偏移完成") (princ))备注:1.必须通过框选区域的方式选择你要偏移的矩形;2.原矩形偏移后扔被保留,未删除。
autolisp程序计算坐标点与点命令画出的不一致。
你的程序中要有关闭捕捉的语句,执行完再还原捕捉.
在autolisp中,遇到这样的提示“错误: 参数类型错误: 二维/三维点: nil”
可以设断点追踪各参数的数,看看是不是你要的结果,以下这3行很明显格式都不一样啊:(setqpb(polarpa(/pi3)pm))(setqpc(polarpb(/pi3)pm))(setqpd(polarpb(pi)pm))
用autolisp编写绘制的命令
源程序如下:(defun c:box (/ p p1 p2 a) (setq p (getpoint "Left & Bottom point: ") a (getdist p "A=") ) (command "PLINE" p (setq p1 (polar p 0 a)) (setq p2 (polar p1 (/ pi 2) a)) (polar p2 (- pi) a) "C"))
如何让CAD不出现(autolisp应用程序源代码)
那是个病毒,要杀的。具体方法引用如下:近期很多CAD用户都出现了同一问题,即打开了一些从网上下载的或从其他地方拷贝过来的图纸后,CAD开始变的非常慢,通常打开一张图纸要等待几分钟的时间,并且一些运行于CAD上的二次开发软件的命令变的不可用。即使重新安装CAD甚至重新安装系统,只要再次打开以前打开过的图纸,问题重现,这个问题对许多CAD设计人员都造成相当大的困扰。 该病毒利用CAD的读取机制,在用户第一次打开从网上下载的带有病毒的图纸后,该病毒即悄悄运行,并感染每一张新打开的图纸,将病毒文件到处复制,并生成很多名为acad.lsp的程序。所以即便是重装CAD甚至重装系统都不能解决问题。 对此我们制作了该病毒的专杀工具,希望对广大设计人员有所帮助。 借此我们也建议广大设计人员:对于网上的一些未知图纸,在下载、打开之前,一定要慎重。 下载http://www.haochenc.com/download/soft/soft.asp?ID=145
autolisp如何绘制水平矩形图形?
(defun c:tt() (setq p1 (getpoint " 选取矩形第一点:>")) (setq p2 (getpoint " 选取矩形第二点:>")) (command "_rectang" p1 p2) (prin1))这是最简单的画矩形的程序
在CAD中怎么执行autolisp的程序
1,用 AP 命令调入Autolisp.2,在cad命令行运行所调入的lisp命令
如何取消AutoCAD 快速加载 AutoLISP 文件
1、首先在计算机中任意磁盘设置一个存放自编程序的文件夹。2、打开CAD。3、右键单击绘图区空白处,点击选项。4、在弹出的对话框中点击文件,再点击支持文件搜索路径。5、再点击添加。6、在空白位置填入之前保存文件夹的路径。7、点击应用,再点击关闭,就加载完成了。
从别人电脑拷贝过来的CAD文件出现Autolisp应用程序源代码怎么处理丶都说是病毒怎么杀不掉的。
那是个病毒,要杀的。 该病毒利用CAD的读取机制,在用户第一次打开从网上下载的带有病毒的图纸后,该病毒即悄悄运行,并感染每一张新打开的图纸,将病毒文件到处复制,并生成很多名为acad.lsp的程序。所以即便是重装CAD甚至重装系统都不能解决问题。 杀毒时候要在安全模式下杀,清除方法: ①、关闭CAD(一定要先关闭正在运行的CAD程序) ②、按F3键打开XP系统的文件搜索窗口,分别搜索并删除acad.lsp、acad.fas、acaddoc.lsp、acadapq.lsp、acadappp.lsp、acadapp.lsp和lcm.fas文件 注意: ①、“搜索范围”一定要选择“本机硬盘驱动器 (如C:;D:;E:;F:)”。 ②、一定要先勾选“搜索选项”中的“高级选项”,将其下的“搜索系统文件夹”、“搜索隐藏的文件和文件夹”“搜索子文件夹”项勾选上,否则不能将病毒文件全部搜索清除干净。
autolisp 求一个选中一个矩形 生成一个外接圆的代码
下面是获得多段线(矩形)点坐标程序。知道坐标了,生成外接圆就容易多了,你先试试弄弄。;-------------------------------------------------------------------------------;LWPOLYLINE获得点列表子程序。;-------------------------------------------------------------------------------(defun lwpolyline_get_pt_list ( );/ sub_list ent_list) (setq pt_list nil) (setq ent_list (entget ent_name)) (while (setq ent_list (cdr ent_list)) (setq sub_list ent_list) (setq sub_list (car sub_list)) (if (= (car sub_list) 10) (progn (setq pt (cdr sub_list)) (if (member pt pt_list) ;过滤掉重复点。 (setq pt_list pt_list) (setq pt_list (cons pt pt_list)) ) ) ) ) (setq len (length pt_list)));-------------------------------------------------------------------------------;POLYLINE获得点列表子程序。;-------------------------------------------------------------------------------(defun polyline_get_pt_list () (setq pt_list nil) (setq sub_ent_name ent_name) (setq sub_ent_name (entnext sub_ent_name)) (while (and (/= sub_ent_name nil) (/= (cdr (assoc 0 (entget sub_ent_name))) "SEQEND")) (setq pt (cdr (assoc 10 (entget sub_ent_name)))) (if (member pt pt_list) ;过滤掉重复点。 (setq pt_list pt_list) (setq pt_list (cons pt pt_list)) ) (setq sub_ent_name (entnext sub_ent_name)) ));-------------------------------------------------------------------------------
AutoLISP 图层切换
lisp切换图层语言,0为你所设图层名称,操作为:为选中对象0/1回车。记得将txt文件后序名改为.lisp(defun c:0() (SETVAR "CMDECHO" 0) (PRINC "YFworkroom 将图层改成 0图层: ") (setq ss (ssget)) (command "change" ss "" "p" "la" "0" ""))(defun c:1() (SETVAR "CMDECHO" 0) (PRINC "YFworkroom 将图层改成 1图层: ") (setq ss (ssget)) (command "change" ss "" "p" "la" "1" ""))
autolisp随层问题?
第一个P指的是“上一个”选择集,第二个P指的是“特性”,也就是说,你执行这段LISP代码之前,你应该先选中一些图元,比如你可以先选中一条多段线,然后这段程序就会把它的COLOR,变为BYLAYER(随层)
CAD自动画杆路插件Autolisp该怎么使用
使用autolisp插件的话,打开cad,命令【appload】加载程序,按提示操作就可以。
autolisp文件怎么加载到autocad中?
(1) 运行AutoCAD 系统,单击“工具”按钮,在其下拉菜单中选AutoLisp下Visual Lisp编辑器; (2)在文件下拉菜单中选“新建”,新建一个LISP文件;(3)建好后保存; (4)重复(1)在其下拉菜单中选AutoLisp下 加载应用程序,选择保存的LISP程序,加载运行~
请教Autolisp高手:关于entsel函数
关于entsel函数我讲例子:选择一个圆后,如何输出圆心坐标的同时,输出entsel选取点的坐标?输出圆心坐标:(entget (car (entsel)))输入选取点坐标:(cadr (entsel))(setq tem (entsel)) ;这里把entsel做成一个变量,下面分别提取。(setq edata (entget (car tem)))(setq tempt (cadr tem))
求教一个关于autolisp 定义块的问题
在创建块的时候:(1)块名(2)选择组成块的对象(3)指定基点。这三个操作还是要做的。至于用程序在“原地”生成块,应该是很简单的事情。(vl-cmdf "-BLOCK" "块名" "基点" 选择集 "")事实上,这样创建块,用程序多操作一步,用户在实际使用时是看不出来的,跟你想要的结果是完全一样的。
autolisp中的画线命令
使用autolisp程序绘制图形,必须是写好正确的程序后,检查无误后加载成功后才可以运行,再根据cad的命令行的提示操作,才可以生产正确的图形。你这个程序是画一个三角形,最后的(command “line” p1 p2 p3 “C”)意思是执行autocad的绘图命令:line,然后从P1到P2,P2到P3各画一条直线。最后的“C”意思是“close”,并不是楼上说的画圆的命令。我给你修改一下你的程序清单吧,你再试试。;this program will prompt you to enter three points ;of a triangle from the keyboard ,or select three points;by using the screen cursor .P1,P2,P3 are triangle corners(defun: C:triang1() (setq p1(getPoint“\n Enter first Point of triangle:”)) (setq p2(getPoint“\n Enter second Point of triangle:”)) (setq p3(getPoint“\n Enter third Point of triangle:”)) (Command“line” p1 p2 p3“C”))以上是我运行成功的程序。你一定输入正确,正确加载后,根据命令行的提示分别先后选取三个点后就可以生成三角形了。注意三角形的形成条件是:两边之和大于第三边,两边之和小于第三边的哦。不要乱选三个点。注意保存是一定要目录正确,还有lsp这个扩展名不能省略掉啊!! 祝你成功!
autolisp与VBA的区别
AUTOLISP是本身CAD自带的编译器,可以直接调动CAD的命令,比较方便。如果你本身不懂编程,那么学LISP会很快。如果你本身熟悉编程那么用VBA会比较快。因为我搞2次开发自己制作了些了一些小程序,全都是用LISP的,感觉比较方便,至于VBA,没尝试过。具体选择哪种还是要看你个人的情况。例如建立一个复杂的包括许多对话框的应用,AutoLISP支持对话框,但是不如VBA支持的程度强,同时,在AutoCAD中一个任务的情况下,VBA提供在对象级别上访问AutoCAD系统,但它对AutoCAD的一些基本命令的支持性并不是很好,而AutoLISP在这一点上却做的很好.总而言之各有千秋吧。
opendcl与autolisp是什么关系
前者是后者的扩展,后者是前者准备实现的后台语言。autolisp,AutoCAD二次开发语言。opendcl,高级对话框,是采用C++对原autolisp语言中的dcl对话框进行了扩展,原dcl对话框界面简陋,类型较少,采用加载opendcl后即可采用其提供的接口实现更为美观,人性话的交互设计。不过,个人认为,opendcl界面效果真心不怎么样,跟采用ObjectARX开发的差太多了,执行效率也较慢,当然,针对一些简单的功能,还是可以用一用的,毕竟,ObjectARX要有C++基础才行。
AUTOLISP问题
(SSGET "X") 那里换成 (ssget "x" (list (cons 0 "ATTDEF")))就可以过滤出所有的att。(SSGET "X") 是所有的实体。所以会选中不是att的东西。(ssget "x" (list (cons 0 "ATTDEF")))还可以再加条件。比如(ssget "x" (list (cons 0 "ATTDEF") (cons 8 "abc")))就是把abc层的att都选出来。自己根据需要扩展吧。
autolisp文件怎么加载到autocad中?
建立一个(acaddoc.lsp)文件,这个文件是空白的,打开记事本,点击保存,然后用这个命名,(由于很多设计院用了这个,不小心保存到文件里面,就会形成cad病毒,所以cad病毒扫描的时候,会认为这个是病毒,你要注意一下)打开(acaddoc),在里面输入:(load "(lisp文件名)");lisp文件名就是你编辑的autolisp文件名,如文件名是(文字wz),那么在里面输入:(load "文字wz");这些文件要放在同一个文件夹,方便电脑搜索。打开cad,右键,选项;里面有个菜单:文件,在这个里面,有一个选项(支持文件搜索路径),一般在第一个位置,点开,(添加)搜索(acaddoc)所在的文件,点击保存。然后另外一个(有效的支持文件搜索路径),也要添加路径。保存好关闭。然后关闭autocad,重新打开autocad,你就会在命令行看到加载autolisp的信息了。这个表示你成功的加载了autolisp。在autocad2014版本里面,添加了一个功能,(受信任位置),这个功能保证autolisp不会自动加载,所以这个里面也要添加路径。另外autocad里面有帮助说明,按(F1)键,程序帮助对话框,输入(acaddoc)搜索,就可以找到如何加载autolisp的说明。
autolispfile可以删除吗
可以autolisp是AutoCAD内嵌的语言,还没发现有病毒是用这种语言写的。出现这种情况一般是杀毒软件误判,最好不要删。有些cad的软件是用autolisp编写的,删除后就不能用了。该病毒利用CAD的读取机制,在用户第一次打开从网上下载的带有病毒的图纸后,该病毒即悄悄运行,并感染每一张新打开的图纸,将病毒文件到处复制,并生成很多名为acad.lsp的程序。所以即便是重装CAD甚至重装系统都不能解决问题。
CAD自动画杆路插件Autolisp该怎么使用
autolisp程序可以用记事本打开,在里面【(defun c:命令 ()】,这个命令可以修改,也就是运行程序命令。打开cad,输入命令【appload】加载程序,并加入【启动组】,这样以后打开cad就可以使用,不用重复加载。由于插件编写的习惯不同,功能也略有不同。输入插件命令后,一般命令行会有提示,按提示操作。
CAD中的AutoLISP是什么?
AutoLISP是由Autodesk公司开发的一种LISP程序语言(LISP是List Processor的缩写)http://www.88ve.cn/jixiesoft/cad/200705/jixiesoft_3126.html 在众多的AutoCAD开发工具中,AutoLISP是使用最简单、应用最广泛、使用者最多的一种开发工具,因此一直受到AutoCAD开发人员的喜爱。 http://tag.csdn.net/tag/autolisp/3.html
autolisp如何把几个命令串起来
打开AutoCAD2021,命令行输入“VLISP”-“空格”。会弹出AutoLISP的编辑环境,依次点击“文件”-“新建文件”。会出现新建的文本窗口。我们在文本窗口中输入“()”。2.这里为什么输入括号呢?因为AutoLISP的格式就是这样子的,所有代码都必须在括号里面。注意,在这个窗口里面输入的字符必须是英文字符,包括所有的符号,输入中文字符会报错。3.在括号里面,我们输入(defun C:gg())。defun的意思就是定义一个函数的意思。C:代表这里定义的是AutoCAD的命令。gg()是命令的快捷键,这个可以随意设置,注意,gg后的括号不能省。4.我们继续输入(command "move")command的意思是调用AutoCAD命令;“move”就是调用AutoCAD的移动命令,引号不能省。这里要注意,在这句下面的右边括号不能省,最后这个括号是和defun前的括号对应的。5.以上,我们就完成了一个自定义快捷键,就是把gg定义为AutoCAD的移动命令,然后我们选择“工具”-“加载编辑器中的文字”,退回到AutoCAD中,就可以使用gg来进行移动操作了。
AutoLisp入门基础教程(3)
这是AutoLisp入门教程的第三部分,在教程的第二部分,我们编写了一个绘制瓦楞板多段线的小程序。这个Autolisp小程序涉及了一些重要常见的函数,例如 polar , repeat 和 while 等(其语法和返回值可以参考: 常见函数1 , 常见函数2 , 常见函数3 )。 再来回忆一下我们使用这个程序的时候是如何操作的:1)加载这个程序,并输入 wlb 调用这个程序;2)按照提示选取起始点,然后选取终点,屏幕上画出一条多段线;3)继续拾取起始点和终点,再次划出一条多段线线;4)若想终止程序,按 ESC 或 Enter 即可。 也许你已经想到了,这个程序的操作能不能改成这个样子:选取一条直线,根据这个直线的两个端点,自动生产一条多段线。这样就涉及了对AutoCAD对象属性的读取。 重点来了!!! 在入门教程的第三部分,我们将使用AutoLisp中相关函数对AutoCAD对象的属性进行选择、获取、修改和更新。常用的对象属性函数如下表: 对AutoCAD对象属性的修改实际上就是对AutoCAD对象属性列表的修改。 获得对象联合属性列表 编写一个chgrad.lsp程序,用来修改半径。 在原来的基础上画一个瓦楞板程序,要求选择一条线段,以此为轴线画一个瓦楞板。
autocad快速加载 autolisp文件是什么
AutoLISP不需要弄掉,是文件程序。autolisp文件的具体解释:AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程。可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。扩展资料:AutoLISP此函数(+)计算加号(+)右边所有数字的和(+ num1 num2 num3...)。这些数字可以是整数或实数。如果均为整数,则和为整数;如果均为实数,则和为实数。但是如果既有整数又有实数,则和为实数。如下所示,在前两个例子中,所有数字均为整数,所以结果是整数。在第三个例子中,一个是实数(50.0),故结果为实数。