AutoCAD应用与AutoLISP编程全解析
1. AutoCAD的功能与局限
AutoCAD功能强大,能实现从冥王星轨道视角到查看5英寸×4英寸牌匾的惊人放大,相当于从观察地球到观察葡萄柚,甚至从葡萄柚到原子的视角转换。在AutoCAD中可以进行微芯片设计、连接平面图中的墙体等操作。
不过,AutoCAD也存在一些局限性:
-
3D功能局限
:AutoCAD本质上是可视化软件,而非专业的建模和分析软件。它在3D方面并非用于与CATIA、NX、Pro/Engineer和SolidWorks竞争,不擅长参数化设计、尺寸驱动设计、有限元分析(FEA)和计算流体动力学分析(CFD)等。其3D功能主要用于必要时展示设计的漂亮图片,以销售或呈现设计理念。
-
缺乏智能判断
:AutoCAD几乎没有错误检查、干涉检查或设计保真工具,输入垃圾数据必然输出垃圾结果。CAD经理需注意,该软件允许用户进行几乎任何操作,而“任何操作”可能带来积极或消极的结果。
-
学习曲线较陡
:新手用户需要几个月时间才能熟练使用AutoCAD。
2. 建立办公室CAD标准
对于有多个AutoCAD用户的办公室,建立标准十分必要。标准能确保公司输出的一致性和专业性,减少CAD错误,使新用户更容易上手。CAD标准手册应包含以下内容:
| 内容分类 | 具体详情 |
| ---- | ---- |
| 文件位置与结构 | 所有关键文件的准确位置和整体办公室计算机文件结构,包括所有作业的命名约定以及库、模板和标准符号文件夹的位置 |
| 图层约定 | 遵循建筑办公室的AIA标准或公司内部认可的标准 |
| 字体、样式和图案 | 可接受的字体、尺寸样式和填充图案列表 |
| 打印/绘图程序 | 包括*.ctb文件的打印/绘图程序列表 |
| X - Ref命名程序 | 正确的外部参照(X - Ref)命名程序列表 |
| 图纸空间实现 | 图纸空间的实现方式,包括标题栏、徽标和必要的标题栏信息 |
| 文件清理政策 | 文件清理、备份文件删除和自动保存的政策 |
手册应尽量简洁,避免涵盖所有可能的情况,因为手册越长,用户越不可能完整阅读。
3. 成为有效的教师和招聘经理
CAD经理有时需要向新员工解释AutoCAD的细节,更新偶尔使用该软件的用户的知识,并推广更好的技术和习惯。培训新员工时,可参考以下步骤:
1.
基础理论
:先讲解创建、编辑和查看对象的基本理论。
2.
精度操作
:接着介绍正交(ortho)和对象捕捉(osnap)等精度操作。
3.
基础主题
:按照图层、文本、填充、块、阵列、尺寸标注和打印/绘图的顺序讲解基础主题,与初级课程类似。
4.
高级培训
:若需要高级培训,按高级线框、外部参照(Xref)、属性和图纸空间的顺序进行讲解,其他高级内容可稍后学习。
5.
强调速度秘诀
:向用户强调提高速度的秘诀,如“pgp”文件、右键自定义和大量练习基础知识,记住初级课程中的90/10规则。
6.
评估技能水平
:准确评估用户的技能水平,除非图纸对特定项目不重要,否则不要给未准备好的用户分配高级任务。
招聘时,可通过AutoCAD测试来评估潜在员工。测试时间不宜过长,最多45分钟到1小时。例如,初级课程中的平面图是对建筑绘图招聘人员的良好测试,具体流程如下:
graph LR
A[设置新绘图] --> B[绘制基本布局]
B --> C[添加文本和尺寸]
C --> D[添加家具]
D --> E[填充和润色]
E --> F[打印输出]
在查看绘图时,注意所选图层、展示的精度以及在规定时间内完成的工作量。对于新员工来说,不了解外部参照(Xrefs)或图纸空间并非关键问题,这些可以在工作中快速学习。但能够快速、高效且错误最少地进行绘图是必要的要求。
4. 保持技能更新和能力提升
作为CAD经理或高级课程毕业生,需要不断提升自己的技能。AutoCAD功能复杂,由数百名软件程序员和设计师不断开发和更新,个人几乎不可能掌握其所有知识。为了保持或提升技能,可以采取以下措施:
-
学习3D功能
:许多用户对3D功能掌握不佳,学习3D功能是脱颖而出的好方法,也是AutoCAD的重要方面。
-
学习基本AutoLISP
:AutoLISP是一种相对简单的编程语言,可用于自定义AutoCAD和编写自动化程序。
-
探索高级功能
:探索AutoCAD有时被忽视的高级功能,如图纸集、动态块、eTransmit、安全、仪表盘、自定义用户界面(CUI)等,并记录关键功能和效果。
-
关注行业动态
:阅读AutoCAD的最新消息、技巧和行业讨论,可访问Cadalyst.com和Augi.com等网站,并订阅Cadalyst(免费)。
-
交流与学习
:与同行交流,了解他们的工作方式。升级到新版本时,参加AutoCAD更新课程。
-
了解其他软件
:对其他设计软件保持好奇心,包括AutoCAD的附加程序(如机械、电气、土木、机电等),并了解尽可能多的软件。在CAD领域,Revit和SolidWorks是未来值得关注的软件。
-
享受工作
:如果不喜欢使用AutoCAD,应寻求其他工作职责,因为讨厌它会让工作变得痛苦。
5. AutoCAD的编程工具概述
除了基本的操作和管理,AutoCAD还提供了多种编程工具用于定制和自动化,以下是对这些工具的简要介绍:
| 工具名称 | 简介 |
| ---- | ---- |
| AutoLISP | 是AutoCAD内置的编程语言,是LISP语言的一种变体。它允许用户与软件进行交互,主要用于自动化日常或复杂的流程。代码编写后可保存并按需调用,无需编译即可作为脚本执行。对于非程序员来说,只需熟悉语法即可使用 |
| Visual LISP | 是AutoLISP的增强版本,自2000版起成为AutoCAD的一部分。它具有图形界面和调试器,还具备Active X功能。初学者仍需从AutoLISP基础学起 |
| VBA(Visual Basic for Applications) | 基于微软的Visual BASIC,可在AutoCAD中编写运行的例程,但不能作为独立程序。相比Visual LISP,它具有更多的功能和能力 |
|.NET Framework | 是微软的软件技术,旨在取代VBA。它提供了常见编程问题的预编码解决方案和虚拟机来执行程序 |
| Active X | 由微软开发,用于创建执行特定功能的软件组件,常见于Windows应用程序中。不过,它也可能被用于恶意软件,如病毒和间谍软件 |
| ObjectARX | 是AutoCAD最高级别的定制和编程方式,是一个应用程序编程接口(API)。使用C++程序员可以创建与AutoCAD直接交互的Windows DLL(数据链接库)。这需要专业的编程技能,通常由第三方开发者使用 |
6. AutoLISP基础编程
尽管有新工具不断涌现,AutoLISP仍然广泛使用,其代码易于在线获取。以下是关于AutoLISP编程的基础内容:
6.1 代码实现方式
AutoLISP代码有两种实现方式:
-
命令行输入
:可以在AutoCAD的命令行直接输入并执行几行代码,适用于仅在当前绘图中有用的简单例程。
-
加载保存的代码
:对于更复杂且常用的例程,通常将代码保存后加载执行。
6.2 代码保存与加载
所有AutoLISP代码以*.lsp为扩展名保存。理论上可以存储在任何位置,例如AutoCAD 2008的Express文件夹中就包含大量内置例程。加载代码的步骤如下:
1. 选择“工具” -> “加载应用程序…” 或 “工具” -> “AutoLISP” -> “加载应用程序…”,也可以直接在命令行输入“appload”。
2. 在弹出的对话框中浏览找到所需的AutoLISP代码文件,然后点击“加载”。
3. 加载完成后,关闭对话框,通过命令输入即可执行代码。还可以将代码添加到启动套件(右下角的公文包图标),使AutoCAD启动时自动加载。
6.3 简单代码示例
以下是一个修改“缩放至范围”命令的示例,使其缩放至屏幕的90%:
(defun C:zz ()
(command "zoom" "e" "zoom" ".90x")
(princ))
代码解释:
-
(defun C:zz ()
:定义一个名为“zz”的AutoCAD命令函数。
-
(command "zoom" "e" "zoom" ".90x")
:依次执行“缩放”命令,先缩放至范围(“e”),再缩放至屏幕的90%(“.90x”)。
-
(princ)
:避免例程不断返回“nil”值。
另外,还有两个用于旋转用户坐标系(UCS)十字准线的例程:
(defun C:perp ()
(command "snap" "ro" "" "per" pause "snap" "off")
(princ))
(defun C:flat ()
(command "snap" "ro" "" "0" pause "snap" "off")
(princ))
-
perp例程:将十字准线旋转到与所选直线垂直的方向。其中pause函数允许用户选择直线,两个连续的引号表示按回车键。 -
flat例程:将十字准线恢复到正常位置。
6.4 基本概念
- 字符串 :用引号括起来的内容,通常是AutoCAD命令。
- 表达式 :AutoLISP内置的命令,如“defun”。
- 函数 :可以是用户定义的(如“perp”、“flat”)或内置的(如“pause”、“princ”、“command”),函数后面有时会跟括号内的参数。
7. AutoLISP的变量与注释
为了实现更复杂的功能,需要引入变量和注释的概念。
7.1 变量
变量可以是数字、字母或其他可变化的内容,用于实现用户交互。在AutoLISP中,变量可以是全局的(为整个例程定义一次)或局部的(按需定义一次使用),通常使用
setq
函数来创建变量。例如:
(setq RadCircle (getstring "\nCircle Radius: "))
此代码会提示用户输入圆的半径,并将输入的值存储在变量
RadCircle
中。除了
getstring
,还有其他“get”函数,如
getfiled
(让用户使用对话框选择文件)、
getangle
、
getdist
等。
7.2 注释
在AutoLISP中,注释以分号“;”开头,可以添加多个分号来表示不同的部分或标题。例如:
; 这是一个注释
;; 这也是一个注释
8. AutoLISP的高级特性与VLIDE命令
AutoLISP还有许多高级特性等待探索,例如:
-
IF - THEN语句
:根据特定条件执行不同的操作,是编程中常见的功能。
-
WHILE函数
:只要条件满足,就会持续执行某个操作。
vlide
命令可以打开Visual LISP编辑器,它具有许多有用的功能,如调试、错误跟踪、检查引号和括号是否闭合等。编辑器中的代码会进行颜色编码,方便识别。如果对AutoLISP编程感兴趣,可以考虑参加专业课程或阅读相关书籍来深入学习。
综上所述,AutoCAD不仅是一款强大的绘图软件,通过其丰富的编程工具,还能实现高度的定制和自动化。掌握AutoLISP等编程工具,将大大提升在AutoCAD环境中的工作效率和创造力。
AutoCAD与AutoLISP编程详解
超级会员免费看
2463

被折叠的 条评论
为什么被折叠?



