当前位置:首页 » 编程软件 » 给autolisp脚本创建按钮

给autolisp脚本创建按钮

发布时间: 2022-05-23 08:12:02

① 在autocad里面我编写了很多lisp命令,我想新增一个菜单工具栏(如:文件(F)编辑(E)utj...

编辑一个菜单文件,后缀名为mnu的文件,文件格式如下:
/
// 实用工具扩展程序
// 开发者:
// 2007年11月
//

***MENUGROUP=实用工具

***POP12
**实用工具
[实用工具(&D)]
[--]
ID_dm [->地亩工具(&L)]
ID_TEST_A [多义线方向修改]^C^C_DRev
ID_TEST_B [多义线标注折点号]^C^C_BZ
ID_TEST_C [多义线折点号坐标输出]^C^C_CXY

***HELPSTRINGS
ID_TEST_A [可以修改多义线起终点的前进方向:DREV]
ID_TEST_B [沿多义线方向标注折点号:BZ]

然后在CAD里面用menuload命令加载这个菜单文件就行了,具体的还是自己多试几次就明白了

② CAD AUTOLISP 当中 (action_tile "accept" (done_dialog 1))

action_title (done_dialog 0) 外面要加上双引号。

③ 在cad中如何创建lisp程序以及大神们所说的lisp解决重复性劳动问题是怎么回事

CAD支持AutoLisp程序设计语言, AutoLisp代码可以在任意的文本编辑器中创建.不过AutoCAD也提供了Visual Lisp编辑器,可以支持语法高亮,调试编译什么的.打开Visual
Lisp编辑器有两种方式:
1.
AutoCAD2008及之前的版本,在菜单栏“工具(Tools)"下面,选择”AutoLisp"---->"Visual
Lisp编辑器".(”AutoLisp"---->"导入应用"这个命令是用来加载AutoLisp脚本的.
2.
AutoCAD2009及之后的版本, 在功能区的”管理“选项卡里可以直接打开Visual Lisp编辑器。

首先,AutoLisp也是一个程序设计语言,作为一个编程语言,AutoLisp能做的很多:

  • 扩充AutoCAD的原有命令。任何带有C:前缀的AutoLisp函数,在AutoCAD中都可以像"line"
    "circle" "dim"等命令一样使用。

  • 编写代码直接根据国标图库要求来绘出一些常用图库标准件什么的,或是代替人查找各种设计手册中的相关数据并继续使用。

  • 进行参数化绘图,对于一些不特别复杂的系统,提供窄范围、大深度的专业设计自动化或者辅助系统,如发动机装配工具设计、纵使机主轴箱设计等。

    以上这些功能都可以解决重复性劳动,前提是你得先学会AutoLisp编程语言.

④ autolisp怎么往CAD里添加自定义菜单项和按钮

方法:
工具--自定义--界面,然后添加自定义菜单项和按钮或对现有的菜单项进行修改加工组合,最后达到自己使用方便满意的菜单。

⑤ 如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

打开Visual Lisp编辑器有两种方式:
1.AutoCAD2008及之前的版本,在菜单栏“工具(Tools)"下面,选择”AutoLisp"---->"Visual
Lisp编辑器"。(”AutoLisp"---->"导入应用"这个命令是用来加载AutoLisp脚本的)
2.AutoCAD2009及之后的版本,在功能区的”管理“选项卡里可以直接打开Visual Lisp编辑器。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

打开Visual Lisp编辑器之后新建一个文件,并另存为Lisp源文件。然后就可以在编辑窗口里输你的代码了。

代码编辑并调试确认无错误后,就可以在AutoCAD中使用了。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

左边的按钮表示立即运行当前代码,如果有错误就会提示出来,右边按钮是切换到CAD窗口。

如果不需要再修改代码了还可以将代码进行编译以加速运行。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

根据向导一步步进行编译很简单的。

如果在其他CAD图形文件中需使用当前代码文件或编译后的文件,就按上面第一点的,或者在命令行输入”ap",打开导入应用的对话框。

如何在AutoCAD Visual Lisp编辑器中创建与编译lisp程序

1是用来临时导入的,2是将程序加入CAD的启动组。

lisp解决重复性劳动问题

在设计和绘图中,你觉得都是简单粗暴的重复性工作,就可以考虑用AutoLisp来代替你做。

首先,AutoLisp也是一个程序设计语言,属于Common
Lisp的子集,同时加入了很多自定义的函数。即然是一个程序语言,就是其他编程语言能做的,它也能做,只是他的lisp语法跟一般的语言有些差另就是了,但是如果是一个没有VB、C#、C++(对应于AutoCAD的开发方式分别是VBA,.net,ObjectArx)的基础的人来说,AutoLisp是很简单而且特别容易上手的一个语言。

作为一个编程语言,AutoLisp能做的很多:

1、扩充AutoCAD的原有命令。任何带有C:前缀的AutoLisp函数,在AutoCAD中都可以像"line" "circle"
"dim"等命令一样使用。

2、编写代码直接根据国标图库要求来绘出一些常用图库标准件什么的,或是代替人查找各种设计手册中的相关数据并继续使用。

3、进行参数化绘图,对于一些不特别复杂的系统,提供窄范围、大深度的专业设计自动化或者辅助系统,如发动机装配工具设计、纵使机主轴箱设计等。

4、DWG文件本质上是AutoCAD在图形生成和编辑中使用的数据库,可以将一些非图形信息的数据(粗糙度,高度,厚度。。)等存于DWG文件中作
为非图形数据库文件,然后利用Lisp程序进行读取等。

各种AutoCAD二次开发方式的比较:

由于 .net语言和c++的学习曲线比较陡峭,所以简单易学的AutoLisp经常与VBA进行对比。(当然如果有VB的基础还是直接学VBA好了。)

AutoLISP擅长建立新命令和产生已有命令的连接。VBA擅长执行包括在其他应用程序中的组件,如Microsoft的Excel和Access。AutoLISP是基于表处理的编程体系,它允许程序员随意地存储和操作传送信息,然而VBA部件包括数据和对复杂情况的各种有效操作,这就是问题变得复杂的地方。

不过,在AutoCAD2000开始,Autodesk公司就在AutoCAD中加入了Visual
Lisp编辑器,引入了许多新函数扩充AutoLisp的功能,并支持ActiveX对象的访问方式,所以使用AutoLisp来与Word\Excel等程序进行交互也是变简单了。
另外,在创建带GUI图形界面的应用程序上,VBA当然是所见即所得的了,而AutoLisp是通过DCL文件来实现GUI的(语法很简单,但做不到所见即所得).这点是AutoLisp略逊一筹了。原文出自[
CAD自学网 ] 转载请保留原文链接:http://www.cadzxw.com/1873.html

⑥ 怎么用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语言例程

AutoLISP语言是AutoCAD的内置的编程语言。 它可以用来创建新的命令或重新定义现有的。AutoLISP语言是一个非常强大的定制工具。本文旨在说明如何加载AutoLISP语言。

你可以复制和粘贴,如下面的例子,或者你可以下载一个*.LSP的文件。开始你需要使用记事本, 因为AutoLISP *.LSP的文件只是普通的文本文件。看其他人的编写的AutoLISP语言代码是一个很好的学习方法,网上有很多提供.LSP的文件下载的。

基本过程是非常简单,如下。 有3个主要步骤(或如果有*.LSP的文件仅仅需要2步),创建lisp文件,加载lisp文件和日常运行lisp程序。

注:AutoLISP语言例程将只在完整版本的AutoCAD运行,他们不会在AutoCADLT版本运行。

创建lisp文件

复制程序代码并粘贴到Windows中的记事本。

(defunc:zone(/ss la rv i tv op en)

(while(notss)

(princ" Pick any object on the required layer: ")

(setqss(ssget)))

(initget"Length Area")

(setqrv(getkword" Would you like to measure Length/Area <Area>: "))

(and(notrv)

(setqrv"Area"))

(setqla(cdr(assoc8(entget(ssnamess0))))

ss(ssget"X"(list(cons0"*POLYLINE")

(cons8la)))

i(sslengthss)

tv0

op0)

(while(not(minusp(setqi(1-i))))

(setqen(ssnamess i))

(command"_.AREA""_E"en)

(cond((=rv"Length")

(setqtv(+tv(getvar"PERIMETER"))))

(T

(setqtv(+tv(getvar"AREA")))

(if(/=(logand(cdr(assoc70(entgeten)))1)1)

(setqop(1+op))))))

(princ(strcat" Total "rv

" for layer "la

" = "(rtostv22)

" in "(itoa(sslengthss))" polylines "

(if(/=rv"Length")

(strcat(itoaop)" with open polylines")"")))

(prin1))

现在保存文件为zone.lsp,给予它适当的文件名,并确保它有一个.LSP的文件扩展名。

加载lisp文件

打开AutoCAD选择菜单Tools——AutoLISP——Load Application….弹出对话框(如下图所示):

load unload apps

使用下面的操作来加载已保存lisp文件:

  • 找到该lisp文件已保存的文件夹

  • 从列表中选择所需的文件。

  • 单击 Load按钮。如果一切顺利,将出现一条消息说“*.lsp成功载入”。

  • 单击Close按钮关闭对话方块。

  • 运行AutoLISP程序

    一旦lisp文件被加载,它可以在命令行运行。在运行时只需输入命令的名称(而不是文件名)。在lisp文件中开始是(defunc:zone ,所以在命令行输入zone。

⑧ 如何在CAD中自定义用户界面

自定义用户界面
使用本程序时,可使用多种功能区面板、菜单、工具栏、快捷键和其他用户界面元素,来有效地完成任务。通过自定义这些元素还可以改善工作环境。本节内容
“自定义用户界面”概述使用AutoCAD 的自定义工具,可以调整图形环境使其满足用户的需求。 使用自定义文件自定义 (CUI) 文件用于存储命令、用户界面元素以及局部 CUI 文件和 AutoLISP 文件的参照。可以将 CUI 文件指定为主 CUI 文件、局部 CUI 文件或企业 CUI 文件。CUI 文件指定可以确定加载文件的顺序。可以在 CUI 文件之间传输用户界面元素,这使得移植过程更加轻松。自定义命令用户可以轻松地创建、编辑和重复使用命令。“自定义用户界面”(CUI) 编辑器中的“自定义”选项卡将显示产品中已加载命令的主列表。可以将此列表中的任何命令添加到工具栏、菜单和其他用户界面元素。 创建宏宏用于定义选择某个界面元素后将发生的动作。宏可以完成用户需要执行一系列操作才能完成的绘图任务。宏可以包含命令、特殊字符、DIESEL(直接解释求值字符串表达式语言)或 AutoLISP 编程代码。 自定义“快捷特性”对于选定对象,用户可以使用“快捷特性”面板访问“特性”选项板中可访问的特性的子集。自定义鼠标悬停工具提示鼠标悬停工具提示显示选定特性的当前值。自定义工具栏工具栏自定义可以仅仅是在绘图区域中放置工具栏或调整工具栏大小,以便获得最佳绘图效率或最大空间。用户还可以创建和修改工具栏和弹出型工具栏、添加命令和控件元素,以及重新定位和删除工具栏按钮。自定义快速访问工具栏快速访问工具栏位于菜单浏览器的右侧,可让用户直接访问已定义的命令集。创建下拉菜单和快捷菜单下拉菜单显示为菜单栏下的列表或菜单浏览器的一部分。在图形窗口、文本窗口、命令窗口、工具栏区域或功能区中单击鼠标右键时,在十字光标或光标位置或该位置附近将会显示快捷菜单(也称为关联菜单)。自定义功能区面板和选项卡用户可以通过创建和修改功能区面板并使用功能区选项卡将功能区面板组织到基于任务的工具组中来自定义功能区。添加快捷键和临时替代键用户可以为常用命令指定快捷键(有时称为加速键),还可以指定临时替代键,以便通过按键来执行命令或更改设置。 创建双击动作当光标放到图形中的对象上并从定点设备中产生双击时,双击动作用于使命令变为可编辑状态。双击动作区分对象类型,使用户可以设置要用于特定对象类型的特定命令。 自定义鼠标按钮用户可以更改定点设备在程序中的标准行为方式。 自定义传统界面元素术语“传统项”是指当前版本的程序中不常使用但仍支持的那些用户界面元素,因为有些用户喜欢使用这些元素,而不喜欢现在提供的替代用户界面元素。 加载AutoLISP 文件AutoLISP(LSP 或 MNL)文件包含用于将自定义动作和行为添加到界面的脚本。可以使用“自定义用户界面”(CUI) 编辑器的“自定义”选项卡将 AutoLISP 文件加载到 CUI 文件中。 自定义工作空间用户可以自定义工作空间以创建图形环境,在该环境中仅显示用户选定的快速访问工具栏、工具栏、菜单、功能区选项卡和选项板上的那些命令。 自定义用户界面 FAQFAQ 将帮助用户找到有关使用“自定义用户界面”(CUI) 编辑器的最普遍问题的答案。
返回CAD技术文章专题列表>>>

⑨ 简述autolisp使用的七种数据类型

一篇关于LISP的参考文献是由JohnMcCarthy在1960年4月的《ACM通讯》中发表的。

除了FORTRAN和COBOL,大多数在六十年代早期开发出来的语言都过时了,可是LISP却生存下来,并且已经成为人工智能(AI)的首选程序序言。AutoLISP解释程序位于AutoCAD软件包中,然而AutoCADR2.17及更低版本中并不包含AutoLISP解释程序,这样,只有通过AutoCADR2.18及更高版本才可以使用AutoLISP语言。

开发软件编辑

AutoCAD软件包中包含大多数用于产生图形的命令,但仍有某些命令未被提供。例如,AutoCAD中没有在图形文本对象内绘制矩形及作全局改变的命令。通过AutoLISP,你可以使用AutoLISP程序语言编制能够在图形文本对象内绘制矩形或作全局选择性改变的程序。事实上,可以用AutoLISP编制任何程序,或把它嵌入到菜单中,这样定制你的系统会取得更高的效率。

现在,已经有数以百计的第三方软件开发人员使用AutoLISP语言编制各种应用程序软件包,例如,本文作者开发了一个名为SMLayout的软件包,用它可以产生各种复杂几何图形的平面布局图,这些几何图形包括管道的交叉部、过渡都、圆柱、弯管接头、圆锥以及罐顶。目前社会上非常需要AutoLISP程序员为应用软件及客户菜单的开发提供顾问。

在本章中,我们假定读者已经熟悉了AutoCAD命令及AutoCAD的系统变量。但是,在开始学习AutoLISP时,却并不需要你是一位AutoCAD或编程专家。同时,本章还假定读者并无编程方面的知识。如果你熟悉任何一种编程语言,那么学习AutoLISP就会很容易。对各种函数的评细探讨以及对例题的逐步讲解会使你学起来很有兴趣。本章讨论常用的AutoLISP函数以及它们S程序编制中的应用。对于本章中未涉及的函数,请参阅Autodesk公司的《AutoLISP程序员参考手册》。AutoLISP对硬件没有任何特殊要求。如果系统能够运行AutoCAD,那么同样也可以运行AutoLISP。AutoLISP程序可以使用任何文本编辑器进行编制。

数学运算编辑

任何编程语言都提供数学函数。在AutoLISP中,同样提供了编程以及数学计算所需的大部分数学函数,你可以使用AutoLISP对数字进行加、减、乘、除运算,还可以得到以弧度表示的角度的正弦值、余弦值及反正切值等。使用AutoLISP还可以进行许多其他计算。这一节主要讨论AutoLISP程序语言支持的常用数学函数。

加法

格式(+num1num2num3...)

此函数(+)计算加号(+)右边所有数字的和(+num1num2num3...)。这些数字可以是整数或实数。如果均为整数,则和为整数;如果均为实数,则和为实数。但是如果既有整数又有实数,则和为实数。如下所示,在前两个例子中,所有数字均为整数,所以结果是整数。在第三个例子中,一个是实数(50.0),故结果为实数。

示例:

Command:(+25)返回7

Command:(+230450)返回86

Command:(+230450.0)返回86.0

减法

格式(-num1num2num3...)

此函数(-)从第一个数中减去第二个数(num1-num2)。如果多于两个数,就用第一个数字减去其后所有数字的和[num1-(num2+num3...)]。在下面的第一个例子中,28减去14后返回14。因为两个数均为整数,结果亦为整数。在第三个例子中20与10.0相加,并用50减去两数的和(30.0),返回一个实数20.0。

示例:

Command:(-2814)返回14

Command:(-25711)返回7

Command:(-502010.0)返回20.0

Command:(-2030)返回-10

Command:(-20.030.0)返回-10.0

乘法

格式(*num1num2num3…)

此函数(*)计算乘号右边所有数字的乘积(num1×num2×num3...)。若均为整数,它们的乘积亦为整数;若其中含有一个实数,乘积即为实数。

示例:

Command:(*25)返回10

Command:(*253)返回30

Command:(*2532.0)返回150.0

Command:(*2-5.5)返回-11.0

Command:(*2.0-5.5-2)返回22.0

除法

格式(/num1num2num3…)

此函数(/)用第一个数除以第二个数。如果多于两个数,就用第一个数除以其后所有数的乘积[num1/(num2×num3×...)]。在下面的第四个例子中,用200除以5.0与4的乘积[200/(5.0×4)]。

示例:

Command:(/30)返回30

Command:(/32)返回1

Command:(/3.02)返回1.5

Command:(/200.05.04)返回10.0

Command:(/200-5)返回-40

Command:(/-200-5.0)返回40.0

增量数字编辑

格式(1+number)

此函数(l+)使数字与1(整数)相加,返回一个增加1的数。在下面的第二个例子中,1与-10.5相加返回-9.5。

示例:

(1+20)返回21

(1+-10.5)返回-9.5

减量数字编辑

格式(1-number)

此函数(1-)从数字中减去1(整数),并返回一个减去1的数。在下面的第二个例子中-10.5减去1返回-11.5。

示例:

(1-10)返回9

(1--10.5)返回-11.5

绝对数字编辑

格式(absnum)

abs函数返回一个数的绝对值。该数可以是整数或者实数。在下面的第二个例子中,由于-20的绝对值为20,故函数返回20。

(abs20)返回20

(abs-20)返回20

(abs-20.5)返回20.5

三角函数编辑

sin函数

格式(sinangle)

sin函数计算一个角(以弧度表示)的正弦值。在下面的第二个例子中,sin函数计算Pi(180度)的正弦值并返回0。

示例:

Command:(sin0)返回0.0

Command:(sinPi)返回0.0

Command:(sin1.0472)返回0.866027

cos函数

格式(cosangle)

cos函数计算一个角(以弧度表示)的余弦值。在下面的第三个例子中,cos函数计算Pi(180度)的余弦值并返回-1.0。

示例:

Command:(cos0)返回l.0

Command:(cos0.0)返回1.0

Command:(cosPi)返回-1.0

Command:(cos1.0)返回0.540302

atan函数

格式(atannum1)

atan函数计算数的反正切值,返回角度以弧度表示。下面的第二个atan函数计算1.0的反正切值并返回0.785398(弧度)。

示例:

Command:(atan0.5)返回0.463648

Command:(atan1.0)返回0.785398

Command:(atan-1.0)返回-0.785398

两个参数的atan函数

格式(atannum1num2)

还可以在atan函数中再指定一个数。若指定了第二个数,函数将以弧度形式返回(num1/num2)的反正切值。在下面的第一个例子中,第一个数(0.5)除以第二个数(1.0),atan函数计算商(0.5/1=0.5)的反正切值。

示例:

Command:(atan0.51.0)返回0.463648弧度

Command:(atan203.0)返回0.588003弧度

Command:(atan2.0-3.0)返回2.55359弧度

Command:(atan-2.03.00)返回-0.5880033弧度

Command:(atan-2.0-3.0)返回-2.55359弧度

Command:(atan1.00.0)返回1.5708弧度

Command:(atan-0.50.0)返回-1.5708弧度

angtos函数

格式(angtosangle[made[precision]])

angtos函数以字符串格式返回以弧度表示的角度值。字符串格式由made和precision的设置决定。

示例:

Command:(angtos0.58800304)返回“33.6901"

Command:(angtos2.5535904)返回“145.3099"

Command:(angtos1.570804)返回“90.0000"

Command:(angtos-1.570802)返回“270.00"

注意在(angtosangle[mode[precision]])中:

angle是以弧度表示的角度值。

mode是与AutoCAD系统变量AUNITS相对应的angtos模式。

AutoCAD中可用模式如下:

ANGTOS模式编辑格式

0十进制角度

1度/分/秒

2梯度

3弧度

4测量单位

precision是一个整数,用于控制小数的位数,与AutoCAD系统变量AUPREC相对应。其最小值为0,最大值为4。

在上面的第一个例子中,angle为0.588003弧度,mode为0(十进制角度),precision为4(小数点后有四位)。函数返回33.6901。

表达式编辑

在程序中,通常都需要测试某些特定的条件。若条件为真,程序执行某些功能,若不为真,执行另外一些功能。例如,条件表达式(if(<X5)),若变量x的值小于5,测试结果为真。编程过程中经常要用到这种类型的测试条件。本节讨论在AutoLISP编程中要用到的各种关系表达式。

等于

格式(=atom1atom2…)

该函数(=)检查两个元素是否相等。若相等,条件为真,函数返回T。同样,若指定的元素不相等,条件为假,函数返回nil。

示例:

(=55)返回T

(=549)返回nil

(=5.55.55.5)返回T

(="yes"“yes”)返回T

(=“yes""yes"“no”)返回nil

不等于

格式(/=atom1atom2…)

该函数(/=)检查两个元素是否不相等。若不相等,条件为真,函数返回T。同样,若指定的元素相等,条件为假,函数返回nil。

示例:

(/=504)返回T

(/=5050)返回nil

(/=50-50)返回T

(/=“yes”“no”)返回T

小于

格式(<atom1atom2…)

该函数(<)检查第一个元素(atoml)是否小于第H个元素(atomZ)。若为真,函数返回T,否则返回nil。

示例:

(<35)返回T

(<534)返回nil

(<“x”“y”)返回T

小于等于

格式(<=atom1atom2...)

该函数(<=)检查第一个元素(atom1)是否小于等于第二个元素(atom2),若是,函数返回T,否则返回nil。

示例:

(<=1015)返回T

(<=“c”“b”)返回nil

(<=2.00)返回T

大于

格式(>atom1atom2…)

该函数(>)检查第一个元素(atom1)是否大于第二个元素(atom2)。若是,函数返回T,否则返回nil。在下面第一个例子中,15大于10,因此,关系表达式为真,且函数返回T。在第二个例子中,10大于9,但9并不大于其后的9,因此函数返回nil。

示例:

(>1510)返回T

(>1099)返回nil

(>“c”“b”)返回T

大于等于

格式(>=atom1atom2…)

该函数(>=)检查第一个元素(atom1)的值是否大于等于第二个元素(atom2)。若是,函数返回T,否则返回nil。在下面第一个例子中,78大于但木等于50,因此,函数返回T。

示例:

(>=7850)返回T

(>="x"“y")返回nil

abs返回参数的绝对值

(absnumber)

参数number

返回值参数的绝对值

示例(abs100)返回100

(abs-3)返回3

8.acad_colordlg

显示标准的AutoCAD颜色选择对话框

(acad_colordlgcolornum[flag])

参数

colornum

整数,其取值范围是0-256(包括0和256),它用于指定颜色对话框的缺省的颜色代码。

flag

如可选参数flag设为nil,禁用“随层”和“随块”按钮;省略flag参数或将其设为非nil值,则可启用“随层”和“随块”按钮。

colornum为0时代表BYBLOCK(随块),为256时代表BYLAYER(随层)。

返回值

用户所选择的颜色代码,如果用户取消该对话框则返回nil。

示例

下列代码提示用户选择一种颜色,如果不选则指定绿色为缺省颜色:

(acad_colordlg3)

9.acad-pop-dbmod

恢复DBMOD系统变量的值到最近用acad-push-dbmod保存的值

(acad-pop-dbmod)该函数使用acad-push-dbmod控制DBMOD系统变量。DBMOD系统变量跟踪图形的修改状态和触发保存图形请求。

返回值

如果成功时返回T;否则,如果堆栈为空时,返回nil。

10.acad-push-dbmod

储存DBMOD系统变量的当前值

(acad-push-dbmod)

该函数使用acad-pop-dbmod来控制DBMOD系统变量。用户可使用该函数来更改图形而保持DBMOD系统变量不变。DBMOD系统变量跟踪图形的修改状态和触发保存图形请求。

该函数在acapp.arx中实现,acapp.arx默认状态下是加载的。该函数可将DBMOD系统变量的当前值转到内部堆栈。要使用acad-push-dbmod和acad-pop-dbmod,必须先进行acad-push-dbmod操作,再使用acad-pop-dbmod来恢复DBMOD系统变量的初始状态。

返回值

总是返回T。

示例

以下例子显示了怎样储存图形的修改状态,接着对图形进行修改,最后恢复初始状态。

(acad-push-dbmod)(setqnew_line'((0."LINE")(100."AcDbEntity")(8."0")(100."AcDbLine")(101.02.00.0)(112.01.00.0)(2100.00.01.0)))(entmakenew_line);DBMOD被设置标志1(command"_color""2");DBMOD被设置标志4(command"_-vports""_SI");DBMOD被设置标志8(command"_vpoint""0,0,1");DBMOD被设置标志16(acad-pop-dbmod);DBMOD被设置回初始值

嵌入目的编辑

AUTOLISP嵌入AutoCAD的目的使用户充分利用AutoCAD进行二次开发;实现直接增加、修改AutoCAD的命令,随意扩大图形编辑功能,建立图形库和数据库并对当前图形进行直接访问和修改,开发CAD软件包等。

数据类型编辑

符号(SYM)

字符串(STR)

表(LIST)

文件描述符(FILE)

AutoLISP的内部函数(SUBP)

AutoCAD的选择集(PICKSET)

AutoCAD的实体名(ENAME)

函数分页表(PAGETB)

典型应用编辑

一、实现参数化绘图程序设计,包括尺寸驱动程序、鼠标拖动程序等。到目前为止,大多数参数化程序都是针对二维平面图形编制的。实际上,立体图同样可以实现参数化绘图,AutoCAD中编制实体的立体图参数化程序比其三维视图程序更简单,而且立体图生成后,可以很方便地生成三视图、剖面图和轴测图。

二、构成DCL文件创建自己的对话框。驱动利用AutoCAD提供的PDB模块构成DCL文件创建自己的对话框。

命令特点编辑

可以直接调用AutoCAD中的全部命令;

具备一般高级语言的基本结构和功能;

具有强大的图形处理功能。

功能编辑

1.AutoLISP语言是在普通的LISP语言基础上,扩充了许多适用于CAD应用的特殊功能而形成的,一种仅能以解释方式运行于AutoCAD内部的解释性程序设计语言。

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

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

4.AutoLISP语言中的程序运行过程就是对函数求值过程,是在对函数求值过程中实现函数功能。

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

主要工具编辑

文本编辑器、格式编排器、语法检查器、源代码调试器、检验和监视工具、文件编译器、工程程序系统、上下文相关帮助与自动匹配功能和智能化控制平台。

⑩ autolisp 怎么新建图形文件,AUTOCAD中已设定默认模板。

《AutoCAD2002试题汇编》本书题啊考ATA
操作步骤(我都写菜单命令便找选择按钮):
1、文件——新建——acadiso.dwt
2、格式——图形界限——0,0(车)——120,90(车)
3、格式——图层——框选择白色位置——新框选择红色——确定——确定
4、文件——保存——弹图形另存"框——文件类型改AutoCAD板文件(*.dwt)——
候路径已经变要保存于改考试存盘位置
5、接着写文件名KSCAD1-1.DWT——保存
6、考试候定要关闭AutoCAD软件做题
本书100道题都做完遍考试没问题

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:705
制作脚本网站 发布:2025-10-20 08:17:34 浏览:968
python中的init方法 发布:2025-10-20 08:17:33 浏览:676
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:828
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:737
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1076
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:308
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:188
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:875
python股票数据获取 发布:2025-10-20 07:39:44 浏览:829