基于AutoLisp的AutoCAD二次开发自动生成系统图
基于AutoLISP的AutoCAD二次开发研究
基于AutoLISP 的AutoCAD 二次开发研究Reaserch on AutoCAD secondary development based on AutoLISP崔联合,于华艳,刘 江,万文龙CUI Lian-he, YU Hua-yan, LIU Jiang, WAN Wen-long(常州机电职业技术学院,常州 213164)摘 要:为提高AutoCAD软件的绘制效率和定向功能。
采用Autolisp对AutoCAD软件进行二次开发,以实例介绍了应用Autolisp对AutoCAD进行二次开发的过程。
软件系统可快速开发出各类零件的命令集,通过输入相应尺寸能实现零件的快速绘制。
Autolisp开发工具能实现AutoCAD 的定向开发,提高AutoCAD的绘图效率和准确性。
关键词:Auto CAD;AutoLISP;二次开发;销轴中图分类号:TP391.7; TH132.417 文献标识码:A 文章编号:1009-0134(2019)02-0047-04收稿日期:2018-05-11作者简介:崔联合(1968 -),男,安徽铜陵人,教授,硕士,主要从事材料成形及机械制造等方面的教学与科研工作。
0 引言Autolisp 是美国Autodesk 公司开发的lisp 语言,该语言因语法简单、函数强大、编写环境宽、直译等特点,而在AUTOCAD 软件的二次开发方面得到广泛应用,特别是在机械行业,其影响及普及程度处于最重要地位。
为了进一步扩充该软件的功能和应用行业,专业人士应用AutoLISP 技术对AUTOCAD 进行二次开发的研究一直没有停止过,也取得了较丰硕的成果。
谢中梅等[1]用Auto LISP 和Visual Basic 开发的程序,完成了AUTOCAD 软件图表的设计;张勇[2]研究了基于特定设计对象,AutoCAD 的二次开发系统;张洪雷[3]应用AutoLISP 技术,就如何制定产品结构和生产方案进行了研究;邱林[4]等用AutoLISP 编程,对渐开线弧齿圆柱齿轮实现了参数化建模。
用AUTOLISP对AUTOCAD进行二次开发
";
:row{ :edit_box{ label="密度ρ key="rho"; fixed_width=true; width=5; }
";
:text{ label="kg/m3"; } }
} } :row{ :column{ :row{ :edit_box{ label="热容 c key="c"; fixed_width=true; width=5; alignment=centered; } :text{ label="J/(kg·K)"; } } :row{ :edit_box{ label="合金液相线温度 T_L"; key="T_L"; fixed_width=true; width=5; alignment=centered; } :text{ label="K"; } }
图3
加载用户自定义的菜单文件
(5)绘制对话框――DCL 语言 第一步:打开 Visual LISP 编辑器 操作同图 2。 第二步:创建用户自定义对话框文件 打开 Visual LISP 编辑器后,在文本框中输入生成用户自定义对话框的代码,写好后将文件保存,扩展 名为.dcl。例如: solidification_coefficient:dialog { label="计算凝固系数 K"; :text{ label="说明:根据合金的热物理特性计算凝固系数 K"; } :boxed_row{
:edit_box{ label="即 mm/s(1/2)"; key="K"; fixed_width=true; width=5; alignment=left; } } :row{
基于AutoCAD二次开发的图纸自动生成
开发 。本文 集 中介 绍 Ob j e c t AR X,
软 件 的开 发 中得 到 了 广泛 的应 用 。 A u t o C AD A c t i v e X技术提供 了一种机 制 o CAD的内部或外部来操纵
用程 序 ,允许 应 用程 序 之 间相 互 控
制 、 相 互 调 用 。 目 前 ,Ac t i v e X 技 术 已 经在 I n t e r n e t 、 Of f i c e系 列 办 公
制 ,大 量设 计 图纸 的绘 制 ,不 仅耗
费 很 多 的时 间 ,耗 费人 力 ,而 且还 容 易 出错 ,不 符合 设 计标 准 化 信息
航 天 长征 化学 工程 股份 有限公 司
刘 鹏
祝 晋
L i u Pe n g Z hu J i n
摘 要 :本 文针对 石 油化工 行 业 中自控专 业各 种施 工 图 出图量大 、各 种 安装材 料冗 杂难 以统 计
基于AutoLisp的AutoCAD二次开发在测绘图形处理中的应用
基于AutoLisp的AutoCAD二次开发在测绘图形处理中的应用摘要:本文介绍了如何利用Autolisp语言对AutoCAD进行二次开发,并实现了根据断面图来半自动化生成高程点,其结果大大提高了根据断面图绘制平面图的质量和速度。
关键词:AutoCAD Autolisp 自动化程序断面1引言在实际的测绘生产工作中,我们经常会遇到利用已有的断面图来绘制平面图进而复原地形的情况,想要绘制平面图高程点元素是必不可少的,那么我们就必须根据已有的断面图来生成相应的高程点。
本文介绍了如何利用Autolisp语言在AutoCAD中实现根据设计断面图半自动化生成高程点,简化了原来利用AutoCAD测距量取距离,计算桩号、偏距、高程,再用Cass交互展点画出高程点的生成办法,在提高了准确率的同时也提高了工作效率。
2 Autolisp简介Autolisp是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor(表处理程序)的缩写。
LISP语言具有语法简单,通俗易懂等特点,通过autolisp编程,可以节省工程师很多时间。
AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具[[1]]。
在工程测量领域中,AutoCAD得到了普遍应用,在日常工作中有许多人在研究使用AutoCAD,并画出了很多工程图纸。
然而,人们经常会感觉到作图效率还是不够高,这是因为AutoCAD是一个通用的绘图软件,并不具备专业特色。
AutoCAD开放的结构为不同的使用者留出了广阔的空间,提供了许多二次开发工具,AutoLISP是其中最强大的一个,Autolisp是AutoCAD自带的一门编程语言,无需安装,是为扩展和自定义AutoCAD功能而设计的编程语言,Autolisp易于使用,并且非常灵活,多年来一直是自定义AutoCAD的标准。
Autolisp嵌入AutoCAD内部,它不仅具有一般高级语言的基本结构和功能,而且还具有强大的图形处理和数据交换功能。
基于AuTOlISP(defun s16()编程语言的AUTOCAD二次开发
(defun s1()(SETQ dcl_id_1(LOAD_DIALOG "C:/zhou.DCL"))(setq do_what_1 2)(while (>= do_what_1 2)(if (= null (new_dialog "s1" dcl_id_1))(progn(princ "\n未能显示对话框。
")(setq dialogshow nil)(exit));end progn);end if(S_IMG_zhou "img_1")(ACTION_TILE "dt_1""(set_tile $key $value)(act_1)(if(> dt_1 130)(done_dialog 4))") (ACTION_TILE "sll_1""(set_tile $key $value)(act_1)(if (< sll_1 sl_1)(done_dialog 2))") (ACTION_TILE "rt_1""(set_tile $key $value)")(ACTION_TILE "ct_1""(set_tile $key $value)")(ACTION_TILE "pick_1""(setq hhh 0)(done_dialog 5)")(ACTION_TILE "at_1""(set_tile $key $value)(act_1)(if (> at_1 90)(done_dialog 3))") (ACTION_TILE "sl_1" "(set_tile $key $value)(act_1)(if (< sll_1 sl_1)(done_dialog 2))") (ACTION_TILE "cancle" "(done_dialog 0)")(ACTION_TILE "accept" "(act_1)(if (/= hhh 0)(done_dialog 6)(setq hhh 1))(done_dialog 1)");(setq do_what_1 (start_dialog))(cond ((= do_what_1 1)(setq pst_1 (list xx_1 yy_1)))((= do_what_1 2)(alert "L1应小于L2\n请重新输入"))((= do_what_1 3)(alert "请输入0到90之间的数"))((= do_what_1 4)(alert "您输入的轴径太大\n请输入0到130之间的数"))((= do_what_1 5)(command "osnap" "end,int,mid")(setq ps_1(getpoint "请您点取p1点:"))(command "osnap" "off")(setq xx_1(car ps_1) yy_1(cadr ps_1)))((= do_what_1 6)(alert "请您点取p1点!")));end cond);end while(unload_dialog dcl_id_1)(if (> do_what_1 0)(draw_1))(setvar"osmode"osmode)(setvar"cmdecho"cmdecho)(setvar"blipmode"blipmode);恢复系统变量,不影响原有操作。
基于VisualLISP的AUTOCAD绘图命令的二次开发
3 命令在命令行的应用过程
首先在命令行中键入 bm 后空格, 系统提示 请输入 基准代号的插入点: , 输入插入坐标或者拾取点后会弹出 如图 1所示的对话框。
图 1 基准代码对话框
在对话框中输入指定的选项 , 确认后即可得到自定制 的基准代号。
4 结论
V isual L ISP 是简单易懂的 AUTOCAD 二次开发软件, 使用该语言可以方便地开发出适用的常用工作图形符号, 本文旨在为 V isual L ISP 的命令开发过程作详细解释。
第 9卷
第 5期
漯河职业技术学院学报
Jou rnal of Lu ohe V ocational T echnology Co llege
Vo. l 9 No. 5
Sep . 2010
2010年 9 月
do : i 10 . 3969 / .j issn. 1671 7864 . 2010 . 05 . 011
0 引言
A utoCAD 是由美国 A utodesk 公司于 20 世纪 80 年代 初为微机上应用 CAD 技术而开发的绘图程序软件包 , 经 过不断完善 , 现 已经成为国际 上广为 流行的绘 图工具。 AutoCAD 允许用户定制菜单和工具栏, 并能利用内嵌语言 Autolisp 、 V isual L isp、 VBA、 ADS、 ARX 等 进行 二次 开发。 AutoCAD 是在 R2. 1版本开始嵌入 L ISP 语言的一个增强 了针对性的子集 Au toLISP , 自 R14 版本开始 , Au todesk 公 司推出了 V isualL ISP, 更进一步方便了用户对 L ISP 的使 [ 1] 用 。 在日常的绘图工作中, 常常需要定制一些软件没有的 特定图形符号, 虽然可以使用复制或定制块的形式实现 , 但将常用命令开发成类似于 Au toCAD 的内部命令对使用 者来说是非常有吸引力的。 V isual L ISP 语言可以很方便地调用 AutoCAD 的内部 命令 , 在可视化的界面进行编辑 , 完全可以胜任一般绘图 命令的二次开发。 对话框控制语言 D ialog C on trol Language( 简称 DCL) 也是内置于 AUTOCAD 中, 它弥补了 Au toLISP语言在对话 框功能上的不足 , 但可以很方便地通过 LISP 架设与 DCL 语言对话的桥梁。
基于Autolisp的AutoCAD采点功能二次开发
基于Autolisp的AutoCAD采点功能二次开发作者:范大宇来源:《中国新技术新产品》2015年第20期摘要:Autolisp是一种嵌套在AutoCAD内部的编程语言,它是LISP语言和AutoCAD有机结合的产物,Autolisp是针对AutoCAD二次开发而专门设计的编程语言。
在传统车加工手动编程中,首先在AutoCAD中绘制一比一图形,在使用Autolisp中自带的定位点功能,使用鼠标进行采点操作,将显示的坐标X、Y复制到程序文档中,更改坐标轴字母,这样程序中所需要的点位就采集完毕,这样的一个点接一个点的处理方法既效率低下又极易发生错误。
关键词:Autolisp;二次开发;数控车中图分类号:TP391 文献标识码:A1 引言AutoCAD软件作为基础绘图软件,已经大量应用于机械行业和建筑行业。
本文主要论述的是在机械行业中,应用Autolisp对AutoCAD进行二次开发,开发手动采点功能,进而应用在数控程序的编制中。
2 简介通过使用Autolisp对AutoCAD进行二次开发,开发出专门进行采点的程序插件,只需在AutoCAD中的一比一图形上进行鼠标连续点击,对应的点位即保存到固定路径的文件中,对应的数控程序字母,极大的提高的程序编制效率。
3 总体方案3.1 新件文件操作由于该程序将采集点位保存到固定路径的文件中,所以在程序开始部位,我们先要在该路径新件文件。
通过open命令,尝试打开D盘根目录下名字为“cnc.txt”的文件,然后关闭文件;如果该文件不存在,则在D盘根目录下新建一个名字为“cnc.txt”的文件,并且打开文件然后关闭文件。
该操作的子程序名为writef2,如下:当成功进行一次采点操作后,进行第二此采点操作时,需要先对“cnc.txt”文件进行清空操作,这样才能更好方便的进行第二此采点操作。
我们使用的仍然是open命令,挂载的”w”参数在判断出存在“cnc.txt”文件后即进行清空操作。
浅谈AutoLisp对AutoCAD的二次开发
o I T技术论坛0
S I N E&T H OL YIF R TO CE C EC N OG O MA I N N
20 0 8年
第3 1期
浅谈 A tLs 对 A t D的二次开发 uo i p uo A C
杜 伟
( 山东省胜 利油 田地 质科 . tLs A p语 言 概 述
语 言 又 称 为符 号 语 言 、 数 式语 言 。 它 的 语 言 中 , 基 本 的 数 据 函 在 最 类 型 是 符 号 表 达式 , 理 符 号 是 Auoi 处 tLs 特 性之 一 Ls 容 易 定 p的 i p很
量 可具 有 不 同 的 值 。 动态 辖 域 能 简 化程 序 编 码 工 作 , 需 为 编 写 的 每 无
件 的功 能 齐 全 , 能优 良 , 完 成 了 商 品化 和 工 程 化 的 需 求 , 此 在 国 性 并 因 内市 场 占有 很 大 的份 额 。然 而此 类 商 品 化 的 C D 软 件 一 般 都 是通 用 A
化 软 件 , 户 在 应 用时 必 须 依 据 各 自行 业 的特 点 进 行 不 同 程 度 的 二 次 保 证该 程 序所 需 函 数 的 同 时 装 入 。 并 应 在 “ 持 文 件 搜 索 路 径 ” 用 支 中指 开发 , 能 发 挥 出 应有 的效 益 。C D进 口软 件 的 二 次 开发 更 是 具 有 实 定 .S 方 A L P文 件 路径 。 际应 用 价 值 的 科研 课 题 。
【 摘
27 1) 5 0 5
要 】 A 软件 的 强大 功 能 与通 用化 设 计 , 用户 选 择 时 必 须 综合 考 虑 的 一 对 矛 盾 体 。在 此 背景 下 , A CD 是 C D软 件 的 二 次开 发 具 有很 高 的
应用AutoLISP和DCL对AutoCAD的二次开发
<C53=(F?&’’(6
>45?84 @ AH IJK
MSS O"MLL
%ABP8Q @ APMSS%ABR
<C53=(F?&’’(6>45?84@AHI JK
MSSO"MLL
IABP8Q@APMSSIABR
图 $ 编 辑 图 形 等 程 序 的 表 处 理 语 言 ! 易 学 易 用 且 功 能 强 大 #-. ) 是 用 户 对 话 框 设 计语 言 ! 可 设计 出 简 洁$ 美 观 且人 机 交 互强 的 用 户对 话 框 " 二者 配 合 使 用 ! 对 %&’(. %- 有 着 强 大 的二 次 开 发 能 力" 以 双 头 螺 柱为 例 2说 明 如 何 应 用 %&’() *+, 和 -. ) 对 %&’ (.%- 进 行 二 次开 发 及 开发 效 果 " R <=G578> P8 Q@A P=G578AB ;(4(C@O!B D=3’T@USB 59V8;’FC5’=(@"B R R <C(D> <V(V&VF4=9’>45?8 4@ A公 称直 径 3AB8 3=’FD=3’T@$BP8Q@APV(V3ABR <V(V&VF4=9’>45?8 4@ A公 称长 度 4AB8 3=’FD=3’T@$BP8Q@APV(V4A BR <V(V&VF4=9’>45?8 4@A 旋 转角 度 56748AB8 3=’ FD =3’T@$BP8Q@APV(V5ABR <8 3=’ F?(E>83=’FD =3’T@$BP8 Q@AP8 ?(EABR R 9V5; 8CF"B (PF;56;8 4B 图 ! 用 户 对 话框 界 面 " /! 制 作 +)- 文 件 R 为 了 实 现用 户 对 话 框 中 的 八 种 类 型 的 双 头 螺 柱 的 图 像 显 示 2 首 先 在 %&’(. %- 软 件的 绘 图 区域 中 分 别绘 制 这 八种 类 型 的双 头 螺 柱2然 后 在 命 令 行 中 输 入AG9 4=38 A命 令 2分 别 创 建 相 应 的 幻 灯 片文 件 2 文件 分 别 命 名 为 9’4:"/ 943W9’4:L/943 " 制 作幻 灯 片 文件 前 尽 量将 每 种 类型 的 图 形 居中 且 填 满 绘 图 区 45?84@A 双头 螺 柱AB <C(D > <?(E83FC53=(F;(4&G6> 45?84@A国 标 及 等级 代 号AB <C53=(F?&’’ (6>45?84@AH IJK LMNO"MLL %ABP8Q@APLMN%ABR 域" "/ U 编写 ) *+, 程序 用 户 点 击图 中 单 选 按 钮 ! 选 取 绘 图 所需 的 国 标 及 等 级 代 号 ! 右 侧 则 展 现 对 应 螺柱 样 式 的图 片 " 在 图中 下 拉 列表 框 中 选取 所 需 公称 直 径 3 和 公 称 长 度 4 ! 选取 或 输 入 所 需旋 转 角 度 56748! 点 击 % 确 定 & 按钮 在 %&’(. %- 界 面 中 绘 出 所希 望 的 双头 螺 柱 " 对 话 框 文件 取 名 为 9’4:/3;4 !源 程 序 如下 ’ 9’4:<3=54(7>
应用AutoLISP和DCL对AutoCAD的二次开发
label="GB/T 898-1988 B";key="k898B";} :radio_button{
2.1 用 DCL 编写用户对话框界面 根据设计意图,编写用户对话框,如图 1所示。
label="GB/T 899-1988 A";key="k899A";} :radio_button{
图 4 对话框响应用户动作界面
label="GB/T 899-1988 B";key="k899B";} :radio_button{
label="GB/T 900-1988 A";key="k900A";}
:radio_button{
label="GB/T 900-1988 B";key="k900B";}
}
:image{
key ="kimage" ;
图2 主程序流程图
四个子程序使得主程序变得简洁明了, 且便于修改。分别是:一个参数预设子程序, 两个动作响应子程序和一个绘图子程序。其 中 绘 图 子程 序中 的 参数 设 置需 要 按照 机 械 设计手册进行[2]。
编写 LISP 过程中,在能够完成基本任 务的前提下,应尽量全面考虑各种情况,使 程序趋于完善。比如以下两种情况:
angle"; edit _widt h=4;key ="kp op a";} :edit _box{ed it _widt h=4;key ="ke
Autolisp在CAD二次开发中的应用
Autolisp在CAD二次开发中的应用摘要:Auto LISP语言是Auto CAD中最大的一种编程工具,基于Auto LISP的编程工具,数量大的让人惊讶。
将一些小程序嵌套于AUTO LISP 内部, 使LISP 语言和AUTO CAD 有机结合,能有效地提高AutoCAD的绘图功能。
通过对Auto LISP语言的分析与研究,探讨了基于Auto LISP的AutoCAD 参数化处理数据的程序设计的基本步骤。
本文设计了如何用Auto LISP语言如何绘制典型机械零件图形,并且详细阐述了其实现过程。
实践表明,Auto LISP语言功能强大,易学易用,AutoCAD二次开发的重要工具。
关键词:Auto lisp语言; 程序设计; 二次开发随着科学技术的不断发展和社会的不断进步,计算机也越来越普遍的在各个行业中得到推广和应用。
实践证明在利用CAD绘制零件图技术在质量和速度上都产生了一个质的飞跃,使机械设计工作上了一个大台阶。
但是目前许多设计人员大多只能利用AUTO CAD软件,一笔一画地绘出所需的设计图纸,是设计人员大大部分时间都花费在繁琐的计算和绘图中,设计工作的重复性较大,工作效率较低。
如果设计人员能够对AUTO CAD进行二次开发,通过对AUTO LISP 进行编程,在CASS中加入一些用户需要的功能,从而使CASS在绘图中更具有实用化。
Auto LISP 语言是嵌入在Auto CAD内部的LISP编程语言,它是LISP语言与Auto CAD有机结合的产物。
Auto LISP的嵌入使Auto CAD真正成为能进行计算机辅助设计、绘图的软件。
VLISP是Auto LISP的换代产品。
VLISP对语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。
同时,通过实现反应器函数,还扩展Auto LISP响应事件的能力。
Visual Lisp具有一个交互式和智能控制台,包括有一个项目窗口、代码分色的文本编辑器、调试器、源程序窗口及许多其他特性。
应用AutoLISP对AutoCAD进行二次开发时的研究
1 函数 的使 用
由于 A t I 语言是 函数型语言 , uL P oS 它的一切功能
都 由函数实现 。因此 , 行 A t IP程 序 主要就运 行 于 A tC D环境 下 的程 序 设计 语言 。 uo A 它 是 、uo A A t D内嵌 的 编程 工 具 , 整 体 的一 部 分 。 C 是 使用 A t IP进行 A m A uo S L u C D二 次 开发 , 要 的是掌 重
Oc.2 0 t 08
应 用 A t IP对 A tC D进 行 uo S L uo A 二 次 开发 时 的研究
郭天 娇
( 吉林工程技术师范学院 信息工程学院, 吉林 长春 10 5 ) 30 2
[ 摘 要 ] uoIP语 言是 A t A At S L uo D用 户广泛使用 的二次 开发工具 , C 本文 结合笔 者 的开发体会 , 出了 提
数等标准 函数都 比较 容易理解 , 而有时 当这些 函数 不能满足要求时 , 就要使 用 自定义函数 , 中 df 其 en u 函数就可以帮助我们将一组表达式组合 到一个 函数 或命令 中, 以实现特定的功能。例如 :
( e n c \ ml ) df :h ( u
在利用 A t I 进行二次开发的过程中, uL P oS 有四个
Se e a r b e h e o d De eo m e to t CAD t tLI P v r lP o lmsi t eS c n v lp n fAu o n wi Au o S h
G O Ta j o U i n— i a
( g r ai nier gSho, gnTahr ist eo n i e n h om t nE gnen col J i eces ntu E gn r g o i it f ei
基于AutoLISP语言CAD二次开发功能实现
基于AutoLISP语言的CAD二次开发浅析及功能实现摘要:autocad 是工程建设普遍使用的一种功能强大的绘图软件,而且可以进行用户的二次开发。
本文介绍了基于autolisp语言的cad二次开发过程,并例举了部分功能实现的代码和调用过程,以期节约时间,提高cad绘图效率。
关键词:autolisp语言,autocad二次开发,坐标点提取1.autolisp语言autolisp 语言嵌套于autocad内部,它是lisp语言与autocad 有机结合的产物,是为二次开发autocad而专门设计的编程语言。
autolisp采用了和commonlisp 最相近的语法和习惯约定,它具有commonlisp 的特性,又针对autolisp 增加了许多功能。
它可以把autolisp程序和autocad的绘图命令结合起来,使设计和绘图完全融为一体,方便了对屏幕图形的实时修改,参数化设计和交互设计,为在绘图领域应用人工智能提供了方便。
autolisp语言嵌入autocad之后,autocad就不再只是交互式的图形绘制软件,而成为了真正能够进行计算机辅助设计绘图的cad软件。
2. autolisp语言结构autolisp 数据类型丰富,包括:整型、实型、字符串、表、文件描述符、autocad 的图元名、autocad 的选择集等。
autolisp 处理的对象是符号表达式,简称表达式。
表达式相当于其他编程语言中程序的语句,是由原子或表构成的。
原子可以细分为数原子,串原子和符号原子。
多数情况下,autolisp 表达式以表的形式存在,其格式如下所示:(函数名 [参数]……)每个表达式以左括号开始,并由函数名及参数组成,左括号后的第一个元素必须是函数名。
参数的数量可以是任意多个,也可以是0个,这取决于具体函数,每个参数也可能是表达式。
表达式以右括号结束,每一个表达式的返回值都能被外层表达式使用,最后计算的值被返回到调用的表达式。
基于AutoLISP的AutoCAD与Excel数据交换的二次开发程序设计
项目方前期已经将卫星图片 中的 河 道、湖 泊等 河 岸线 用多 义 线描 出 ,本 工 序 的 任 务 是 根 据 指 定 的 距 离 ,在 多 义 线上 画 出等 距 点,并 根 据 河 道 线 实 际 情 况 ,在 一 些 拐 角 处 手工 添加 点 和移 动 相 邻 点 的 位 置 ,形 成 所 需 的 河 道 桩 点 , 最后获得所有桩点的坐标,存储在 Excel 文件中。 1.1 提取图形库数据工作机理分析
在图形预处理中,首先按照给 定 距离 在 多义 线 上绘 制 等 距 点 ,其 次 ,根 据 地 形 需 要 ,在 所 需 的 拐 角 位 置 手 工 添
设计与研究
11
加点,并对添加点相邻的距离太近的等距点手工进行适 当移动。为方便 LISP 程序准确提取图形库中所需的点,需 要新建一个图层用于桩点的绘制。
开始
(se tq File Nam e ( get file d " 建立 文件 " "" " T X T" 1))
创建 /选择 TXT 文件
(set q f p ( open Fil eNam e "a"))
autocad二次开发
AutoCAD二次开发简介AutoCAD是一款功能强大的计算机辅助设计(CAD)软件,广泛应用于建筑、机械、电气等行业。
除了AutoCAD本身提供的功能外,用户还可以通过二次开发来扩展和定制AutoCAD的功能,以满足特定的需求。
AutoCAD二次开发的优势AutoCAD二次开发的优势在于可以根据用户的具体需求进行定制化开发,如自动化绘图、数据分析、工作流程优化等,提高工作效率和准确性。
与使用传统方法进行手动操作相比,二次开发可以大大简化工作流程,减少重复性劳动,节省了时间和人力资源。
AutoCAD二次开发的方法AutoCAD二次开发的主要方法包括使用AutoLISP、Visual Basic for Applications(VBA)、.NET等编程语言进行开发。
AutoLISPAutoLISP是AutoCAD内建的一种简单的解释性编程语言,用户可以通过AutoLISP开发自定义命令、函数和程序。
使用AutoLISP可以实现自动绘图、自动标注、数据提取等功能。
开发过程相对简单,但扩展性和性能有限。
VBAVBA是一种基于Microsoft Visual Basic的编程语言,用户可以通过VBA进行二次开发,进行更复杂的任务,如自动化CAD操作、数据处理等。
VBA具有良好的可扩展性和性能,并且易于学习和使用。
.NET使用.NET开发AutoCAD插件是一种相对较新和强大的二次开发方法,可以使用多种编程语言,如C#、等。
通过.NET开发,用户可以实现更高级的功能和交互,如集成数据库、Web服务等。
.NET开发需要一定的编程基础,但其灵活性和功能强大,使得更多复杂的任务可以得以实现。
AutoCAD二次开发的应用实例AutoCAD二次开发在各个领域都得到了广泛应用,以下是一些常见的应用实例:1.自动化绘图:通过二次开发,可以实现自动生成平面图、剖面图、立面图等,提高绘图效率和准确性。
2.数据提取与分析:通过二次开发,可以从大量的图纸中提取所需的数据和信息,并进行进一步的分析和统计。
基于AutoLISP的AutoCAD二次开发研究
收稿日期:2007-06-291 作者简介:郭秀娟(1961~),女,吉林省德惠市人,教授,博士.基于AutoL ISP 的AutoCAD 二次开发研究郭秀娟 范晓鸥(吉林建筑工程学院计算机科学与工程学院,长春 130021)摘要:介绍了AutoL ISP 语言的功能、特点及绘图程序,并结合实例,介绍了用AutoL ISP 对AutoCAD 二次开发的方法和过程,展示了开发的实际效果.关键词:AutoL ISP ;AutoCAD ;二次开发中图分类号:TP 39 文献标识码:A 文章编号:100921288(2008)0420082203Secondary Development R esearch of AutoCAD B ased on AutoL ISPGUO Xiu 2juan ,FAN Xiao 2ou(School of Com puter Science and Engineering ,Jilin A rchitectural and Civil Engineering Institute ,Changchun 130021)Abstract :The paper aims at introduce the functions ,characteristics ,and drawing programs of AutoL ISP lan 2guage ,and through the examples illustrates the methods and process of using AutoL ISP language to hold the sec 2ondary development ,it introduce the active effects of the secondary development.K eyw ords :AutoL ISP ;AutoCAD ;secondary development AutoCAD 具有较强的二维和三维绘图功能,且还是一个开放的、便于用户二次开发的绘图软件.目前,支持AutoCAD 二次开发环境的主要有:AutoL ISP/VisualL ISP ,VBA ,ObjectARX ,ActiveX Automation 及块和形定义等.用户可编写AutoL ISP ,ADS 或ARX 应用程序,作为新的AutoCAD 命令,满足特定用户特殊需要[1-2].1 AutoCAD 二次开发 AutoCAD 软件二次开发是在现有软件基础上,为提高和完善软件功能,使之更符合用户需求而对软件所做的开发工作,目的是提高设计质量和效率及充分发挥通用AutoCAD 软件价值.二次开发将应用对象的设计规范、构造描述、设计方法等以约束关系形式集成到通用AutoCAD 平台中去,使应用对象设计智能化、集成化,也是将AutoCAD 环境客户化的基本手段.2 AutoL ISP 语言 AutoL ISP (List Procesing Language )是一种内嵌于AutoCAD 中表处理高级程序设计语言,能够直接在AutoCAD 内部运行,是迄今人工智能领域中应用最广泛的程序设计语言之一.AutoL ISP 既具备一般高级语言的基本结构和功能,又具有一般高级语言所没有的强大图形处理功能;AutoL ISP 可直接调用几乎全部的AutoCAD 命令,它语法简洁,表达能力强,函数种类多,程序控制结构灵活;像BASIC 那样易学易用,如C 语言一般功能超群,是进行AutoCAD 二次开发的理想工具.特别是随着AutoCAD 版本的不断升级,AutoL ISP 功能更强、开放性更好、更便于二次开发,为我们开发适合于本专业的CAD 系统提供极大的便利. 第25卷 第4期2008年12月吉 林 建 筑 工 程 学 院 学 报Journal of Jilin Architectural and Civil Engineering Institute Vol.25 No.4Dec 12008 211 AutoL ISP 特点 AutoL ISP 语言继承了L ISP 语言的基本特征,又具有调用AutoCAD 命令的功能,使图形编辑软件Auto 2CAD 变成真正进行计算机辅助设计绘图出图的应用软件.AutoL ISP 语言又称为符号语言、函数语言,其最基本的数据类型是符号表达式,具有以下特点:①AutoL ISP 语言是在普通L ISP 语言基础上,扩充了许多适用于AutoCAD 应用的特殊功能而形成的计算机语言,是一种仅能以解释方式运行于AutoCAD 内部的解释性程序设计语言;②AutoL ISP 语言的一切成分是以函数形式给出的,执行AutoL ISP 程序就是执行一些函数,再调用其他函数;③AutoL ISP 语言把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行;④AutoL ISP 语言程序运行过程就是对函数求值的过程,是在函数求值过程中实现函数功能;⑤AutoL ISP 语言典型的程序结构是递归方式.递归方式的使用,使得程序设计简单易懂.212 AutoL ISP 应用 AutoL ISP 是一种解释执行语言,用户可在AutoCAD 命令提示符下执行简单的AutoL ISP 函数;Au 2toL ISP 源程序是以3.L SP 形式存储的,源程序编辑过程是:①运行AutoCAD ;②选取工具菜单栏的Au 2toL ISP 或VisualL ISP ,进入编辑窗口;③编辑程序、进行语法检查、加载;④由(load )函数调用并运行[3].(1)扩充和修改的命令,可用Auto L ISP 定义一个AutoCAD 扩充命令,此命令和AutoCAD 内部命令同样使用.(2)AutoL ISP 提供完整的数学函数,能够进行复杂的数学运算,亦可用于设计计算.(3)可使用Command 函数生成和编辑图形,并可执行几乎所有AutoCAD 命令,固可自动生成图形.(4)可操作Auto L ISP 的系统变量.(5)可生成各种图形(函数曲线).(6)AutoL ISP 可实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等.由于Auto L ISP 可开发用户应用程序,利用这些程序,使得AutoCAD 不仅是一个绘图工具,而是一个强有力的辅助设计工具.3 AutoL ISP 程序实例实例1 批量修改多义线宽 如在需大量修改多义线宽的图形中,用pedit 命令,一根一根地改线宽非常慢,笔者用AutoL ISP 语言编一个函数程序,完成一次性选定修改.程序如下:(defun C :wpline ();统一修改线宽(setq s (ssget )w (getreal “width :”))(setq n (sslength s )n (-n 1))(while (>=n 0);循环(setq n1(ssname s ));取当前目标名称(if (k (cdr (assoc 0(entget n1)))“polyline ”)(command “pedit ”(cdr (assoc -1(entget n1)))“w ”“w ”“x ”))(setq n (-n 1));目标个数减“1”))实例2 自动插窗程序 在墙体上插入门窗且自动设置洞口是建筑设计制图中经常遇到的工作,这项工作常会耗费设计人员很多的时间和精力.下面的程序通过几个关键点选择,就可以自动地在双线墙上插入门窗并自动开设洞口[4].自动插入窗的源程序代码如下:(defun rtd (a )(3180.0(/a pi )))(defun c :kaidong2(/pt0pt01pt1pt2pt3pt4s w ang ang1kro )38 第4期郭秀娟,范晓鸥:基于AutoL ISP 的AutoCAD 二次开发研究(setq pt0(getpoint“\n拾取墙线中点:”))(setq pt01(getpoint pt0“\n测量墙厚:”))(setq s(distance pt0pt01))(princ“\n墙厚:”)(princ s)(setq ang(getangle pt0“\n拾取墙线上一点(与基点同一直线):”)) (setq w(getdist“\n输入洞口宽度:”))(setq ang1(angle pt0pt01))(setq pt1(polar pt0(+ang pi)(/w2))) (setq pt2(polar pt0ang(/w2)))(setq pt3(polar pt1ang1s)pt4(polar pt3ang w))(command“break”pt1pt2)(command“break”pt3pt4)(command“line”pt1pt3“”)(command“line”pt2pt4“”)(if(>=ang1pi)(setq kro(rtd ang)kro(+(rtd ang)180))(command“insert”“window”pt0(/w1000)(/s100)kro))此程序在建筑设计运用过程中,还应考虑到图层的设置问题,可运用Command函数调用AutoCAD的Layer命令来操作,或运用While或Repeat循环函数来设置连续操作.由本文实例可看出,对于许多重复性的工作,用AutoL ISP编程,可以使绘图工作自动化,大大减少设计人员的工作量.AutoL ISP程序非常简洁、表达能力强,若将程序加入到ACAD.L SP文件中,就可以如同A2 CAD的基本命令一样使用.4 结语 AutoL ISP语言作为AutoCAD的二次开发工具,可较好地实现参数化绘图的方法.AutoL ISP作为一种解释型高级语言,其主要缺点是执行速度慢,源程序保密性差,大量数据的运算效率较低.AutoL ISP程序一旦编辑完成后,只要给定尺寸参数,就可以用此程序自动完成图形的绘制,从而达到高效、准确的绘图目的.把大量、复杂的操作进行有效的封装,减少设计人员的机械性、重复操作,使其能把主要精力投入到如何设计上,缩短设计周期,提高了工作效率和经济效益.参 考 文 献 [1] 梁春雪,崔洪斌,吴义忠1AutoL ISP实用教程〔M〕1北京:人民邮电出版社,19981 [2] 康保成1AutoL ISP程序在AutoCAD中的应用实例〔J〕1山西建筑,2002(3):157-1581 [3] 黄秀琴1基于Visual L ISP的AutoCAD2000的二次开发研究〔J〕1常州工学院学报,2002(4):5-71 [4] 蓝屹生1AutoL ISP学习导引(适用于R14-2002)〔M〕1北京:中国铁道出版社,2003148吉 林 建 筑 工 程 学 院 学 报第25卷。
周锋的毕业设计PPT--基于Autolisp的AutoCAD若干智能辅助设计功能二次开发
第二章 技术应用
1 参数化技术 通过设置一组参数来来控制图形的几何 尺寸大小,只需改变部分参数值能够直接 导致设计结果的自动修改 .
第二章 技术应用
菜单程序加载 (加载局部菜单 menuload ,Acad自定义组 非常重要)
第二章 技术应用
DCL对话框程序编 对话框程序编 制
第三章 粗糙度的智能标注
第一章 绪论
4 程序绘图
第一章 绪论
AutoCAD 二次开发工具种类 AutoLISP ADS ObjectARX Vlisp VBA
由于 Autolisp语法简单,功能函数强大,直译式程序, 横跨各操作平台等优势,最终选用Autolisp
第二章 技术应用
技术应用
参数化设计
菜单定制
DCL对话框编制
第一章 绪论
AutoCAD 二次开发 流程简介
第一章 绪论
1 用DCL编写用户对话框界面 在DCL对话框家 族中有很多成员 (edit_box ,popup_list, radio_button,SliderList_box)
第一章 绪论
2 编写LISP程序(DCL驱动程序) 3 自定义并加载局部菜单
粗糙度智能标注系统
第五章 系统开发
标准件系统
第六章 结论及展望
结论
粗糙度的智能标注系统
标注件库系统
第六章 结论及展望
展望
定制工具栏!
�
粗糙度的基本符号
第三章 粗糙度的智能标注
程序
第三章 粗糙度的智能标注
COND函数实现四个选项
粗糙度1
粗糙度2
粗糙度3
粗糙度4
第三章 粗糙度的智能标注
粗糙度智能标注的应用
基于autolisp语言的autocad二次开发
基于autolisp语言的autocad二次开发
马新风;孟巧;高洁
【期刊名称】《科技信息》
【年(卷),期】2011(000)032
【摘要】本文利用autolisp语言对autocad进行二次开发,在操作者手动修改尺寸数字后可直接产生圆标记,可以用来检查含有大量尺寸的图形,提示操作者辨别哪些尺寸不是真实的,避免了操作者因足寸不实而产生的其它问题.
【总页数】1页(P237)
【作者】马新风;孟巧;高洁
【作者单位】紫琅职业技术学院;紫琅职业技术学院;紫琅职业技术学院
【正文语种】中文
【相关文献】
1.基于AutoLisp语言的基线转弯飞行程序设计 [J], 闫换换;项恒
2.基于AutoLISP语言的参数化绘图设计 [J], 周华勇;张红梅;王录林
3.基于AUTOLISP语言开发的船舶剩余阻力系数估算方法 [J], 柳杨; 肖明; 张卓
4.基于AutoLISP语言智能生成工程图纸表面粗糙度符号 [J], 张瀚升;宋昕一
5.基于Autolisp语言自动形成零件的质检数据表 [J], 陈奕璋;陈韫偲;王艳;仲梁维;钱炜
因版权原因,仅展示原文概要,查看原文内容请购买。
基于AutoLISP的AutoCAD二次开发技术
基于AutoLISP的AutoCAD二次开发技术
刘喜平
【期刊名称】《机械制造与自动化》
【年(卷),期】2011(000)004
【摘要】AutoLISP是AutoCAD二次开发工具之一.它容易掌握、功能强大,应用广泛.先对AutoLISP进行了简介,并介绍了这种程序的几种加载方法和参数化设计思想,通过一个实例介绍了基于AutoLISP的参数化程序设计技术.
【总页数】3页(P128-129,146)
【作者】刘喜平
【作者单位】陕西理工学院土建系,陕西汉中723000
【正文语种】中文
【中图分类】TP391.72
【相关文献】
1.用AutoLISP语言对AutoCAD作二次开发技术的研究 [J], 董仁扬
2.基于Python的AutoCAD二次开发技术在工装设计中的应用 [J], 郑浩;李大超
3.基于ObjectARX的AutoCAD二次开发技术在铁路桥梁工程中的应用 [J], 高策;韩广晖;李淼;陈冰洋
4.基于AutoLISP的AutoCAD二次开发技术及其应用研究 [J], 余志伟
5.基于.NET的AutoCAD二次开发技术在石化工程设计中的应用 [J], 任柱
因版权原因,仅展示原文概要,查看原文内容请购买。
用Autolisp对AutoCAD进行实用性二次开发
用Autolisp对AutoCAD进行实用性二次开发
李艳丽
【期刊名称】《福建电脑》
【年(卷),期】2008(24)9
【摘要】AutoCAD得以广泛应用,一个重要原因还在于它开放的结构体系,即用户可以根据自己的需要,对其进行二次开发.利用AutoLISP的二次开发功能,能有效地提高绘图效率,在工程绘图中具有较大的实用价值.
【总页数】2页(P182,149)
【作者】李艳丽
【作者单位】商丘职业技术学院,河南,商丘,476000
【正文语种】中文
【中图分类】TP3
【相关文献】
1.应用AutoLISP对AutoCAD进行二次开发时的研究 [J], 郭天娇
2.用AutoLISP对AutoCAD进行二次开发:快速绘制回转体类零件 [J], 冯育萍
3.基于AutoLISP的AutoCAD二次开发研究 [J], 崔联合;于华艳;刘江;万文龙
4.基于AutoLISP的AutoCAD二次开发在风电机组基础施工图中的应用 [J], 张浩
5.基于AutoLISP的AutoCAD二次开发技术及其应用研究 [J], 余志伟
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于AutoLisp的AutoCAD二次开发自动生成系统图【摘要】本文主要阐述了应用autolisp语言二次开发autocad 自动生成系统图的实现方案。
【关键词】autocad;autolisp;二次开发;系统图
0 引言
水汽集中取样分析装置主要应用于发电厂水汽系统化学分析样品的预处理、人工取样,监督热力系统设备腐蚀、积盐情况,保证热力系统和发电机组安全、经济运行。
由于各电厂工程配置不同,的系统配置也有较大差异,对于该设备的生产厂家,工程设计人员设计时每个工程项目都需要绘制系统图,工作量大,效率低。
如运用集成在 autocad 软件内部的autolisp 语言开发系统图自动生成软件,使得系统图根据初始设计条件由程序自动绘制完成,将大大提高工程设计人员的绘图效率,既方便、又快捷准确无误。
1 软件目标
应用autolisp二次开发autocad程序,在autocad界面中自动生成系统图,并自动生成明细表。
2 实现方案
程序读取预设的初始设计条件,根据初始设计条件程序自动配置元器件,并在cad中绘制相应的系统图,其中各元器件以图块形式预设,最后程序统计元器件块的数量,生成明细表。
2.1 初始设计条件的设置
在初始设计条件表格中设置好样点数量、样点名称以及温度压力等参数,并选取元器件、仪表配置,其中“1”代表本项目有该器件,空白代表无需此器件。
程序运行时,读取表格中的参数信息,并以“扩展数据”的形式储存在当前dwg图纸中,以便于后续程序的调用。
2.2 程序运行逻辑
程序读取初始参数后,在当前cad中打开“初始模板”,该模板中以“图块”的形式存储了各种元器件的图形信息。
然后,程序进行逻辑运算,根据不同条件进行系统图绘制、插入不同的元器件图块,程序逻辑图如图2所示。
程序根据样点总数依次循环绘制,如果样点温度>200℃则进入高温架的预冷装置,配置高温高压阀门,如果200℃>样点温度>50℃则不进高温架的预冷,配置中温中压阀,两者均需进行冷却器降温,减压阀减压后进入低温屏的恒温系统。
如果样点温度<50℃,则不进入高温架,直接进入低温屏的恒温系统。
之后程序根据样点的仪表配置,逐条绘制该样点仪表线路,以完成单个样点的系统线路绘制。
待所有系统线路完成后,循环结束,程序根据初始条件判断是否生成扩容器、回收箱等元器件以生成该部分,然后再绘制出母管等管线、生成注解说明文字、插入标准图框,完成系统图图纸部分的自动绘制。
接下来,程序首先对系统图进行预处理,删除重复的直线以及重
复的图块,再全选图块,根据块名不同统计图块的种类及数量,也就是元器件的种类及数量,在系统图中按从左到右从上到下的顺序生成序号标注,并在空白区域绘制明细表部分以及接口表部分,插入明细表图框,完成全部功能。
3 关键程序片段
在该程序程序编写中,除了需要有清晰严谨的系统逻辑。
子函数的应用也起到决定性作用。
3.1 相对点坐标计算子程序
3.2 生成直线、文字子程序
3.3 插入块子程序
3.4 删除重复块
4 结束语
应用autolisp语言对autocad进行二次开发,可实现水汽集中取样分析装置系统图程序化、参数化自动生成,图纸布局美观。
早期设计人员一两天的工作量,现在仅需几分钟就可以完成,极大的提高了工作效率,图纸准确,版面美观。
该程序也可引申为绘制其他工艺流程的系统图,减少重复工作,进行程序化、模块化、智能化绘制图纸,减少工程设计人员的工作量,提高工作效率。
【参考文献】
[1]吴永进,林美樱.autolisp & dcl基础篇[m].北京:中国铁道出版社,2003.
[2]陈伯雄,冯伟.visual lisp程序设计技巧与范例[m].北京:人民邮电出版社,2002.
[责任编辑:曹明明]。