DNA图谱 / 问答 / 问答详情

Auto cad中的LISP语言是什么?有怎样的用途?

2023-07-15 13:20:13
TAG: lisp
共1条回复
苏萦

AutoLISP语言是在普通的LISP语言基础上,又扩充了许多适用于CAD应用的功能而形成的一种程序设计语言。它是一种解释性求值语言,速度较慢,难以保密,可用任何文字编辑软件编辑,用纯文本的格式保存。例如:

(setq

i

1);就是代码i值是1

(command

"CIRCLE"

"(0

0)

100);命令在坐标原点绘制半径100的圆。

AutoLISP语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行AutoLISP程序就是执行一些函数,再调用其它函数。例如:

(setq

pt1

(getpoint

" 请选择圆心插入点"))

(command

"CIRCLE"

pt1

100);命令这个插入点绘制圆,半径为100

AutoLISP把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。

例如:一条直线,起点坐标"(0

0),端点坐标"(1000

0),图层为0层,颜色为1【红色】这个是一条直线的一些数据,怎么执行变为程序代码如下:

(entmake

(list

"(0

.

"LINE")

"(8

.

"0")

"(62

.

1)

"(10

0

0)

"(11

1000

0)))

以上可以直观的看数据,也可以粘贴到AutoCAD的命令行,就绘制出以上要求的直线。

AutoLISP语言中程序运行过程就是对函数求值的过程,是在对函数求值的过程中实现函数的功能。在AutoCAD里面,所有的对象可以看成是由无数的点构成,每个点都有自己的坐标,函数的运行就是计算出这些点的数值,根据得到的数值进行判断。

AutoLISP语言的主要控制结构是采用递归方式。递归方式的使用,使得程序设计简单易懂。例如:

(setq

&k1

(entsel));选择对象

(setq

&k1

(car

&k1));提取图元

(setq

#g1

(entget

&k1));取得属性列表

(setq

c0

(cdr

(assoc

0

#g1)));取得图元名称

以上是一个个的写下来,可以写成以下:

(setq

c0

(cdr

(assoc

0

(entget

(car

(entsel))))));简单易懂

由于autolisp简单,容易,所以上手很快。编写程序后,可以大大的提高绘图效率,有名的【天正】插件,就是绘图的好帮手。

autolisp程序也有不足的地方,如提取坐标,这个只能在图元属性里面提取,这样的话会有局限性,法向坐标1与-1的坐标值相同,但是图形的位置不同,造成计算坐标的困难,所以提取坐标值,最好使用VLAX函数来提取。

相关推荐

autocad快速加载 autolisp文件是什么

AutoLISP不需要弄掉,是文件程序。autolisp文件的具体解释:AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程。可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。扩展资料:AutoLISP此函数(+)计算加号(+)右边所有数字的和(+ num1 num2 num3...)。这些数字可以是整数或实数。如果均为整数,则和为整数;如果均为实数,则和为实数。但是如果既有整数又有实数,则和为实数。如下所示,在前两个例子中,所有数字均为整数,所以结果是整数。在第三个例子中,一个是实数(50.0),故结果为实数。
2023-07-15 11:39:323

AutoLisp入门基础教程(3)

这是AutoLisp入门教程的第三部分,在教程的第二部分,我们编写了一个绘制瓦楞板多段线的小程序。这个Autolisp小程序涉及了一些重要常见的函数,例如 polar , repeat 和 while 等(其语法和返回值可以参考: 常见函数1 , 常见函数2 , 常见函数3 )。 再来回忆一下我们使用这个程序的时候是如何操作的:1)加载这个程序,并输入 wlb 调用这个程序;2)按照提示选取起始点,然后选取终点,屏幕上画出一条多段线;3)继续拾取起始点和终点,再次划出一条多段线线;4)若想终止程序,按 ESC 或 Enter 即可。 也许你已经想到了,这个程序的操作能不能改成这个样子:选取一条直线,根据这个直线的两个端点,自动生产一条多段线。这样就涉及了对AutoCAD对象属性的读取。 重点来了!!! 在入门教程的第三部分,我们将使用AutoLisp中相关函数对AutoCAD对象的属性进行选择、获取、修改和更新。常用的对象属性函数如下表: 对AutoCAD对象属性的修改实际上就是对AutoCAD对象属性列表的修改。 获得对象联合属性列表 编写一个chgrad.lsp程序,用来修改半径。 在原来的基础上画一个瓦楞板程序,要求选择一条线段,以此为轴线画一个瓦楞板。
2023-07-15 11:39:451

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来进行移动操作了。
2023-07-15 11:40:011

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
2023-07-15 11:40:181

CAD自动画杆路插件Autolisp该怎么使用

autolisp程序可以用记事本打开,在里面【(defun c:命令 ()】,这个命令可以修改,也就是运行程序命令。打开cad,输入命令【appload】加载程序,并加入【启动组】,这样以后打开cad就可以使用,不用重复加载。由于插件编写的习惯不同,功能也略有不同。输入插件命令后,一般命令行会有提示,按提示操作。
2023-07-15 11:40:271

autolispfile可以删除吗

可以autolisp是AutoCAD内嵌的语言,还没发现有病毒是用这种语言写的。出现这种情况一般是杀毒软件误判,最好不要删。有些cad的软件是用autolisp编写的,删除后就不能用了。该病毒利用CAD的读取机制,在用户第一次打开从网上下载的带有病毒的图纸后,该病毒即悄悄运行,并感染每一张新打开的图纸,将病毒文件到处复制,并生成很多名为acad.lsp的程序。所以即便是重装CAD甚至重装系统都不能解决问题。
2023-07-15 11:40:361

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的说明。
2023-07-15 11:40:463

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都选出来。自己根据需要扩展吧。
2023-07-15 11:41:052

opendcl与autolisp是什么关系

前者是后者的扩展,后者是前者准备实现的后台语言。autolisp,AutoCAD二次开发语言。opendcl,高级对话框,是采用C++对原autolisp语言中的dcl对话框进行了扩展,原dcl对话框界面简陋,类型较少,采用加载opendcl后即可采用其提供的接口实现更为美观,人性话的交互设计。不过,个人认为,opendcl界面效果真心不怎么样,跟采用ObjectARX开发的差太多了,执行效率也较慢,当然,针对一些简单的功能,还是可以用一用的,毕竟,ObjectARX要有C++基础才行。
2023-07-15 11:41:262

autolisp与VBA的区别

AUTOLISP是本身CAD自带的编译器,可以直接调动CAD的命令,比较方便。如果你本身不懂编程,那么学LISP会很快。如果你本身熟悉编程那么用VBA会比较快。因为我搞2次开发自己制作了些了一些小程序,全都是用LISP的,感觉比较方便,至于VBA,没尝试过。具体选择哪种还是要看你个人的情况。例如建立一个复杂的包括许多对话框的应用,AutoLISP支持对话框,但是不如VBA支持的程度强,同时,在AutoCAD中一个任务的情况下,VBA提供在对象级别上访问AutoCAD系统,但它对AutoCAD的一些基本命令的支持性并不是很好,而AutoLISP在这一点上却做的很好.总而言之各有千秋吧。
2023-07-15 11:41:341

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这个扩展名不能省略掉啊!! 祝你成功!
2023-07-15 11:41:442

求教一个关于autolisp 定义块的问题

在创建块的时候:(1)块名(2)选择组成块的对象(3)指定基点。这三个操作还是要做的。至于用程序在“原地”生成块,应该是很简单的事情。(vl-cmdf "-BLOCK" "块名" "基点" 选择集 "")事实上,这样创建块,用程序多操作一步,用户在实际使用时是看不出来的,跟你想要的结果是完全一样的。
2023-07-15 11:41:511

请教Autolisp高手:关于entsel函数

关于entsel函数我讲例子:选择一个圆后,如何输出圆心坐标的同时,输出entsel选取点的坐标?输出圆心坐标:(entget (car (entsel)))输入选取点坐标:(cadr (entsel))(setq tem (entsel)) ;这里把entsel做成一个变量,下面分别提取。(setq edata (entget (car tem)))(setq tempt (cadr tem))
2023-07-15 11:42:002

autolisp文件怎么加载到autocad中?

(1) 运行AutoCAD 系统,单击“工具”按钮,在其下拉菜单中选AutoLisp下Visual Lisp编辑器; (2)在文件下拉菜单中选“新建”,新建一个LISP文件;(3)建好后保存; (4)重复(1)在其下拉菜单中选AutoLisp下 加载应用程序,选择保存的LISP程序,加载运行~
2023-07-15 11:42:151

CAD自动画杆路插件Autolisp该怎么使用

使用autolisp插件的话,打开cad,命令【appload】加载程序,按提示操作就可以。
2023-07-15 11:42:241

autolisp随层问题?

第一个P指的是“上一个”选择集,第二个P指的是“特性”,也就是说,你执行这段LISP代码之前,你应该先选中一些图元,比如你可以先选中一条多段线,然后这段程序就会把它的COLOR,变为BYLAYER(随层)
2023-07-15 11:42:311

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" ""))
2023-07-15 11:42:403

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)) ));-------------------------------------------------------------------------------
2023-07-15 11:42:471

从别人电脑拷贝过来的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:)”。 ②、一定要先勾选“搜索选项”中的“高级选项”,将其下的“搜索系统文件夹”、“搜索隐藏的文件和文件夹”“搜索子文件夹”项勾选上,否则不能将病毒文件全部搜索清除干净。
2023-07-15 11:43:073

如何取消AutoCAD 快速加载 AutoLISP 文件

1、首先在计算机中任意磁盘设置一个存放自编程序的文件夹。2、打开CAD。3、右键单击绘图区空白处,点击选项。4、在弹出的对话框中点击文件,再点击支持文件搜索路径。5、再点击添加。6、在空白位置填入之前保存文件夹的路径。7、点击应用,再点击关闭,就加载完成了。
2023-07-15 11:43:222

在CAD中怎么执行autolisp的程序

1,用 AP 命令调入Autolisp.2,在cad命令行运行所调入的lisp命令
2023-07-15 11:44:121

autolisp如何绘制水平矩形图形?

(defun c:tt() (setq p1 (getpoint " 选取矩形第一点:>")) (setq p2 (getpoint " 选取矩形第二点:>")) (command "_rectang" p1 p2) (prin1))这是最简单的画矩形的程序
2023-07-15 11:44:212

如何让CAD不出现(autolisp应用程序源代码)

那是个病毒,要杀的。具体方法引用如下:近期很多CAD用户都出现了同一问题,即打开了一些从网上下载的或从其他地方拷贝过来的图纸后,CAD开始变的非常慢,通常打开一张图纸要等待几分钟的时间,并且一些运行于CAD上的二次开发软件的命令变的不可用。即使重新安装CAD甚至重新安装系统,只要再次打开以前打开过的图纸,问题重现,这个问题对许多CAD设计人员都造成相当大的困扰。 该病毒利用CAD的读取机制,在用户第一次打开从网上下载的带有病毒的图纸后,该病毒即悄悄运行,并感染每一张新打开的图纸,将病毒文件到处复制,并生成很多名为acad.lsp的程序。所以即便是重装CAD甚至重装系统都不能解决问题。 对此我们制作了该病毒的专杀工具,希望对广大设计人员有所帮助。 借此我们也建议广大设计人员:对于网上的一些未知图纸,在下载、打开之前,一定要慎重。 下载http://www.haochenc.com/download/soft/soft.asp?ID=145
2023-07-15 11:44:291

用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"))
2023-07-15 11:44:361

在autolisp中,遇到这样的提示“错误: 参数类型错误: 二维/三维点: nil”

可以设断点追踪各参数的数,看看是不是你要的结果,以下这3行很明显格式都不一样啊:(setqpb(polarpa(/pi3)pm))(setqpc(polarpb(/pi3)pm))(setqpd(polarpb(pi)pm))
2023-07-15 11:45:042

autolisp程序计算坐标点与点命令画出的不一致。

你的程序中要有关闭捕捉的语句,执行完再还原捕捉.
2023-07-15 11:45:251

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.原矩形偏移后扔被保留,未删除。
2023-07-15 11:45:321

autolisp提示错误 参数太少

元素之间缺少分隔符。
2023-07-15 11:45:401

什么是FAS?

FAS是火灾报警系统。火灾报警系统,一般由火灾探测器、区域报警器和集中报警器组成;也可以根据工程的要求同各种灭火设施和通讯装置联动,以形成中心控制系统。火灾报警系统(FAS)具有自己的网络结构和布线系统,以实现在任何情况下,该系统都可以独立的操作、运行和管理。FAS系统由主控(控制中心)和分控(车站、车场、车辆段)两级管理。在控制中心设防灾监控中心,负责监视全线防灾设备的运行状态、接收报警信号、发布救灾指令等。车站防灾监控负责接收车站的灾害报警,及时与指挥中心联络,并接收中心防灾指令,控制设备。扩展资料:火灾自动报警系统,贯穿整个消防系统的关键流程,包括火灾预警系统、火灾探测报警及联动控制系统,其中联动控制系统包括了消火栓按钮、火灾警报器、各类输入输出模块、消防电气控制装置、消防广播系统、消防电话系统、图形显示装置、应急照明疏散指示系统等。火灾预警系统的目的是消除火灾隐患,一旦发生火灾,就需要火灾探测报警系统和消防联动控制系统来发挥作用。火灾探测报警及联动控制系统,是实现火灾探测报警、向各类消防设备发出控制信号并接收设备反馈信号,进而实现预定消防功能的自动消防设施。参考资料来源:百度百科-FAS
2023-07-15 11:45:516

Autolisp 程序 参数类型错误

(setq pt10 (car (assoc 10 (entget en))))car改cdrcar取第一个值,就是10,后面distance函数要求输入两个点,要求的数据格式是二维点表,或三维点表,输入10就发生了数据类型错误。
2023-07-15 11:46:361

autolisp参数类型错误 怎么破

按一下程序停在哪一句,然后重点分析。应该是返回数据空之类的错误。
2023-07-15 11:46:431

如何用autolisp获取cad图形文件中直线和多义线的图层名

(setq ly (cdr (assoc 8 (entget (car(entsel" 选择对象:"))))))
2023-07-15 11:46:531

【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是提示多看看语法就行了
2023-07-15 11:47:002

autolisp 尖括号

尖括号代表必选。方括号代表可选。AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。
2023-07-15 11:47:181

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
2023-07-15 11:47:271

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”。
2023-07-15 11:47:501

如何取消AutoCAD 快速加载 AutoLISP 文件

1、首先在计算机中任意磁盘设置一个存放自编程序的文件夹。2、打开CAD。3、右键单击绘图区空白处,点击选项。4、在弹出的对话框中点击文件,再点击支持文件搜索路径。5、再点击添加。6、在空白位置填入之前保存文件夹的路径。7、点击应用,再点击关闭,就加载完成了。
2023-07-15 11:47:582

使用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));------------------------------------------------------------------------------------------------
2023-07-15 11:48:441

cad中autolisp病毒怎么才能杀尽啊

您好:CAD中毒的话建议您使用腾讯电脑管家的杀毒功能杀毒吧,腾讯电脑管家是采用“4+1”核“芯”杀毒引擎的专业杀毒软件,是完全可以帮助您彻底查杀autolisp病毒的,您可以点击这里下载最新版的腾讯电脑管家:最新版腾讯电脑管家下载腾讯电脑管家企业平台:http://zhidao.baidu.com/c/guanjia/
2023-07-15 11:48:542

AutoLisp,怎么实现重复执行命令

不知道你具体想做什么,就编了一小段,大概可以实现你说的功能,在Vlisp控制台运行。提示选择一点后,判断是否有效,有效则作为标注的第一点,否则退出循环。(setq a 0)(while (/= a nil)(progn(setq a (getpoint "选择标注的第一点:"))(if (/= a nil)(command "_dimlinear" a pause pause))))
2023-07-15 11:49:182

autolisp 加载时 ; 错误: 参数类型错误: stringp nil

((draw))感觉这个地方错了。外层括号应该褪去。
2023-07-15 11:49:262

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)
2023-07-15 11:49:321

autolisp 怎么查询一个图层是否存在呢?用IF条件语句!

其实不用if的。直接 (command "layer" "m" "new_layer" "c" 1 "" "")如果不存在,建立图层new_layer,并且置为当前图层。
2023-07-15 11:50:152

用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)) ""))这是依照你追问一楼的基础写的,你看下吧.
2023-07-15 11:50:242

AUTOLISP难学吗?

不难学,LISP的特点就是解释性语言,输入一句,运行一句,调试一句。是可以现学现用的好东西。就是网上的资料不太多,相关书籍也不多,推荐两个网站分别是明经社区和晓东CAD,绝非广告,这两个网站让我受益匪浅。网址自己百度吧。
2023-07-15 11:50:414

autolisp程序调试问题! 如何调试一个带有用户输入的autolisp程序呢?

cad自带的visual lisp编辑器中,就有参数监视的功能,还能加入断点,你想在哪一行代码停下来都可以,界面上就有图标的,你自己找一下吧,我好久没用了
2023-07-15 11:51:003

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 "") )
2023-07-15 11:51:301

autolisp多个点连线后怎么在最后一个店终止

在循环结束后,输入命令:(command "");结束命令;(command "C");多段线封闭结束
2023-07-15 11:51:551

请问autolisp里面哪一个函数可以进行四舍五入的?例如我量一条直线的实际长度为1003,我想他输出到excle

EXCEL里面四舍五入函数是ROUND
2023-07-15 11:52:091

cad出现autolisp应用程序源代码怎么处理

这个CAD里面一种编程语言,保存后产生的文件,你要用的话在cad里面选择工具---autolisp----选择应用工具-----再选这个文件即可,一般不用的话你也不用管它
2023-07-15 11:53:443