用Autolisp丰富AutoCAD的绘图功能
- 格式:pdf
- 大小:101.55 KB
- 文档页数:2
( ent mod subj1) ( set q subj2 ( subst ( list 10 x 0 y 2) ( asso c 10 subj2) subj2) ) ( set q subj2 ( subst ( list 11 x 1 y 2) ( asso c 11 subj2) subj2) ) ( ent mod subj2) ( set q subj3 ( subst ( list 10 x 1 y 2) ( asso c 10 subj3) subj3) ) ( set q subj3 ( subst ( list 11 x 1 y 1) ( asso c 11 subj3) subj3) ) ( ent mod subj3) ( set q subj4 ( subst ( list 10 x 1 y 1) ( asso c 10 subj4) subj4) ) ( set q subj4 ( subst ( list 11 x 0 y 1) ( asso c 11 subj4) subj4) ) ( ent mod subj4)
…
( g rtex t - 1 ( st rcat "d= " ( rt os d 2 2) " L = " ( rt os l 2 2) ) )
( setq subj1 ( subst ( list 10 x 0 y1) ( assoc 10 subj1) subj1) )
( setq subj1 ( subst ( list 11 x 0 y2) ( assoc 11 subj1) subj1) )
…
2 结束语
将此程序文件命名为 acad. lsp 或 acaddoc. lsp, 并在程序的头部添加语句( defun c: zou( ) ) , Aut oCAD 在每次启动时就会自动加载此程序, 我们就可 在命令行中直接键入! zou∀, 即可运行此程序进行绘 图. 由于此程序引入了参数化绘图的功能, 我们在绘 制过程中, 只需注意鼠标的移动来确定数据, 给绘图 工作带来了极大的便利. 此程序已在 Aut oCAD R14 及 Aut oCAD 2000 中运行通过, 并在我单位的计算 机绘图中实际运用, 具有明显的实用价值.
下列是程序实现此功能的部分片断: …
; ; 下列程序段根据预定义的长度、直径绘制组 成轴的 4 条直线
( co mmand ! line∀( list x 0 ( + y 0 r ) ) ( list x0 ( - y0 r) ) "")
( set q subj 1 ( entg et ( ent last) ) ) ( command ! line∀( list x 0 ( - y0 r ) ) ( l ist ( + x0 h) ( - y0 r) ) "") ( set q subj 2 ( entg et ( ent last) ) ) ( com mand ! line∀( list ( + x 0 h) ( - y 0 r ) ) ( list ( + x 0 h) ( + y 0 r) ) " ") ( set q subj 3 ( entg et ( ent last) ) ) ( com mand ! line∀( list ( + x 0 h) ( + y 0 r ) ) ( list x 0 ( + y 0 r ) ) "") ( set q subj 4 ( entg et ( ent last) ) ) ( set q n1 T ) ; ; ; 下列程序段将鼠标拖动返回的参数替换各 直线端点的坐标参数 ( w hile n1
将鼠标拖动的返回值替换各实体( 直线) 相对应 的端点坐标参数, 再用( ent mo d) 函数修改更新各实 体, 在程序中运用了( grtext) 函数实现鼠标移动的 同时在状态栏上显示实时的直径、长度等参数, 使操 作过程更显直观和方便, 在程序的结尾为已绘制的 轴图或孔图添上中心线. 这样, 我们就可以快速而准 确地绘制出所需的图形来.
·59·
在程序中我们将组成轴的 4 条直线的实体数据 赋值给变量 subj1、subj2、subj3、subj4, 而后用如下 语句:
( setq subj1 ( subst ( list 10 x 0 y1) ( assoc 10 subj1) subj1) )
( setq subj1 ( subst ( list 11 x 0 y2) ( assoc 11 subj1) subj1) )
摘 要: 通 过实 例阐 述 了 在 Aut oCAD 中运 用 Auto lisp 语言编制参数化绘图程序的技巧, 丰富了 Auto CAD 的绘图功能.
关键词: Aut olisp; Aut oCAD; 参数化绘图 中图分类号: T P 391. 72 文献标识码: B 文章编号: 1001- 2257( 2001) 06- 0059- 02 Abstract: Based o n pract ical examples, t he skill f or designing paramet ric plot t ing pro gram w ith Aut olisp is ex pounded in this paper, and pl ot ting funct ion of A ut oCAD is enriched. Key words: Aut olisp; Aut oCAD; param et ric pl ot ting
收稿日期: 2001- 06- 28
机械与电子 2001( 6)
图 1
运用 Auto CAD 绘制图形时, 必须根 据命令提 示逐步输入参数, 才能在屏幕上生成图形, 因此 Aut oCAD 是一种非参数化的设计软件. 我们运用 Aut olisp 语言提供的函数( GRREAD[ < T rack> ] ) , 可 直接追踪输入设备( 鼠标) 的移动, 不断地从鼠标的 移动返回坐标值, 并将返回值作为新的实体参数替 换原有参数, 使屏幕图形的变化与鼠标的拖动一致, 而不改变图形实体的线性、层等属性, 从而达到实时 拖动的参数化绘图效果.
参考文献:
[ 1] 陈 伯雄, 冯 伟. V isua l L isp fo r A uto CA D 2000 程序 设计从学会到用好[ M ] . 北京: 机械工业出版社, 2000.
[ 2] 康博 创作 室. A uto CA D 2000 使 用详 解[ M ] . 北京: 机 械工业出版社, 1999.
作者简 介: 黄文豪 ( 1968- ) , 男, 福建 省仙游县人, 工程师、 副厂长, 主要从事机械设计、教学实习等工作.
我刊编委会主任委员姚庆仂同志不幸于 2001 年 10 月 2 日去世, 谨表示深切地悼念.
·60 ·
机械与电子 2001( 6)
用 Autolisp 丰富 Aut oCAD 的绘图功能
黄文豪 ( 华侨大学 教学实验机械厂, 福建 泉州 362011)
Enrich the Plott ing Funct ion of A ut oCA D w it h Autolisp
HUANG Wen hao ( P ra ct ical T eaching M achine F actor y, Huaqiao U niver sity , Q uanzho u 362011, China )
基于这 一点, Auto CAD 提供 了诸多的 二次开 发手段, 工程技术人员可以利用 Aut olisp 语言编写 出适合自己工作需要的专用程序, 提高设计绘图的 工作效率.
1 利用 A utolis p 语言编制参数化绘 图程序
在机械设计绘图中, 轴或孔的绘制是最经常的 工作任务之一. 如果运用 Aut o CAD 直接绘制, 通常
是用绘制矩形( rect agle) 命令根据每段轴或孔的直 径、长度等参数, 绘制多个矩形组成, 或者是根据每 段轴或孔的直径、长度等参数, 绘制出中心线一侧的 各段轴或孔的母线, 然后以中心线为镜像操作的轴 线进行镜像而成.
但采用上述方法是较为繁琐的, 极大地影响工 作效率. 受其他一些绘图软件的启发, 我们采用 Autolisp 语言编制程序, 在作图中实现利用 鼠标拖动 的实时参数化绘图, 使操作变得简捷、方便, 提高了 工作效率. 程序流程如图 1 所示.
0 引言
计 算机辅助设计( CAD) 在国民经济生产活动 中的作用越来越突出, 应用越来越广泛. 在目前众多 的 CAD 软 件 中, 由美 国 Aut oDESK 公 司 出品 的 Auto CAD 目前最流行, 应用最为广泛. 然而正是由 于其通用性强的特点, 在具体到各行各业的使用中, 就会产生诸多的不便.