基于AutoLisp的AutoCAD二次开发自动生成系统图

合集下载

基于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进行二次开发

用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二次开发的图纸自动生成

基于AutoCAD二次开发的图纸自动生成
a r c h i t e c t u r e .I t ' s p r ov ed t h a t ,b y us i n g t h i s ap p l i c a t i o n, t h e d e s i g n i n g c an b e mo r e e f f i c i e n t a n d qu a n t i i f ed , me an wh i l e , t h e ma nu a l e r r o r s a r e g r e a t l y r e du c e d a l s o. Ke y wor d s: Au t o CAD Se c o n d a ̄ d e v e l o p men t Au t o ma t e d g e ne r a t i on
开发 。本文 集 中介 绍 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二次开发在测绘图形处理中的应用摘要:本文介绍了如何利用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二次开发

基于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绘图命令的二次开发

基于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采点功能二次开发

基于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的二次开发

浅谈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软 件 的 二 次开 发 具 有很 高 的
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.
[责任编辑:曹明明]。

相关文档
最新文档