2024年8月11日发(作者:欧派整装大家居)

科学进步 

科学与财富 

基于AutoCAD 

二次开发室内设计软件开发方法研究 

李伙皮 

(龙岩学院数学与计算机科学学院,福建尼岩364012) 

摘要:根据某室内装修行业对室内装修软什的需求,提出了基于AutoCAD的室内设计软件开发平台的总体结构和主要功能设计实现,对他用 

VisualLisp编程设计图库进行了深入的研究。实例验证,能够帮助室内设计人员更快速、便捷完成绘图工作。 

关键词:AutoCAD—:次开发i室内设计软件:VisualLisp 

金项I I:福建省教育 科技项日0B]2209) 

l引言 

总体结构和功能主包括菜单定制、绘图工具、图库管理和对话框四个部 

分,以 分别介绍。 

3.1菜单定制设计 

用户可以根据需要通过仟何文字编辑工具打开ACAD.iqlnu根据自己的 

操作习惯定制。这样,用,1可以从菜单文件中删除很少使用的命令,也可以 

定义新的命令,实现菜单个性化设置,方便操作。F面就F.挝式菜单的定制 

做介绍,结果如图1所示。 

★★★POP7 

★★DRAW 

在室内设计的创作上,AumCAD为 提供了广‘阔的 间,给设计师提 

供了多种多样的设讣途径和制作 问。相对于徒下绘制而言,AutoCAD为 

设计者在家内平面图的制作l:提供了更为方便、快捷、精确的操作。虽然 

AutoCAD小身的功能集己 足以协助设计者完成各种设计工作, ̄t1.Auto— 

cAD 不具备室内设汁这种特定专业领域的々用设计工具,这样就需要用 

户对其进{ ■次肝发,以提高室内设 ‘的效率。 

小文将针对窀内设计中专用绘图工具、专用图形库和专用对话框进 J 

二次开发研究。 

2 AutoCAD--次开发方法 

ID MnDraw 

ID

ID

【绘图(&D)】 

Line 

Ray 

Xline 

Mfine 

f直线(&L)rC C_line 

I射线(&R)rC C_ray 

I构造线(&T)rC C~xline 

I多线(&M)l^C C—mline 

_

2.1 AutoCAD软件开发途径 

开发AutoCAD软件的方法有两种:一种是利用众多的技术人员扑发自 

主版权的AutoCAD软什,如华中理工大学开发的项I AutoCAD;另 种是 

AutoCAD攮础L进 ■次开发,如_人和公司的AutoCAD等。 自 1 版权 

的AutoCAD软什,都要花费大量人力物力同心 力完成的。而采用二次” 

发厅法升发软件肃1对足一种便捷的途径。 

2.2 AutoCAD-'.次开发T具选择 

2.2.1 VBA 

ID

ID

_

ID Paraline I外摆线(&P)l^C C_Swing 

ID

Rose f三叶玫瑰线(&o)rC C—Rose 

【一一】 

ID

Pline f多段线(&P)l C C_pline 

【三维多段线(&3)rC C_3dr,oly 

【上E多边形(&Y)rC C polygon 

ID 3dpoly 

ID Polygon 

VBA足嵌套在AumCAD中的一个基丁:对象的编程环境,它提供了丰富 

的开发能力,提供了 向对象的程序设计疗法,能直接 AutoCAD内部执 

行。VBAT.程能够单独存储或放 图形文件r}I,且能快速高效的创建对话 

框, r助丁使工作自动化,提高工作效率。仉VBA不能随心所欲地使用Au— 

ID Rectang 【矩形(&G)rC C._rectang 

toCAD命令,且源程序始终以相当容易接近的方式,暴露在最终用,’t面前, 

常会阂为用户的误操作而使正常的应用程序出错其至崩溃。 

2.2.2 Object ARX 

ARX足一个以c++语言为基础,面向对象开发环境和应用程序接口。 

ARX运行速度更快,运行更稳定、更简单,可以直接实现多图档操作,并能 

有效地利用内存。ObjectARX包含一组动态链接库,能A接利用AutoCAD 

核心数据 构和代码,并能对AutoCAD作直接的函数调用。fll其对开发者 

的编程能力要求较高,同时开发过程也相当复杂,且程序运行风险较大。 

2 2.3 AutoLisp和VisualLisp 

图l下拉菜单定制结果示意图 

3.2绘图工具设计制作 

针对室内设计对特殊曲线的需求,这里以定制三叶玫瑰线为例说叫。 

在AutoCAD2012中,模拟曲线一般有以下三种方法: 

1)把曲线划分成极微小的曲线段,每微小的曲线段用微小直线段代替, 

以大最的直线段模拟曲线; 

2)先计算出曲线上的控制点,然后使用多段线、样条曲线穿过这 点, 

绘制曲线: 

3)设法创造f}__j曲面、实体,然后从曲面、实体中提取曲线。 

直线模拟法比较容易理解,所以我们利用这种方法设计三叶玫瑰线。但 

AutoLisp是一种人工智能语言 嵌入AutoCAD内部的目的是为了使用 

户充分地利用AutoCAD进{j:二次开发。在AutoCAD的二次开发工具中,它 

是唯一的诤}1解释性语言,它既可直接增加和修改AutoCAD命令,随意扩 

大图形编辑功能,建立图形库和数据库,又能直接调用儿乎全部的Auto— 

CAD命令。AutoLisp ̄有语青规则卜分简单,易学易用,心用广泛;直接针对 

AutoCAD,易。r交互;解释执行,立竿见影等优点。 其功能单一,综合处理 

能力差:程序运行速度慢;源程序保密性差。 

VisualLisp足设计用来加速AutoLisp程序开发的软件T具,使用, 存创 

建和修改源代码、程序测试和调试时更容易。 

综j 所述,我们l』JJ以看出VBA和ARX主要用于编写复杂庞大以及其接 

近丁AutoCAD底层数据的软件,而Au∞Lisp和visualLisp能充分灵活地使用 

AutoCAD的现仃功能,是 般工程技术人员开发AutoCAD的理想工具。 

此种疗法可能会产生大最的图形对象,l上『用大量的训‘算机资源和绘图时间。 

_二叶玫瑰线的方程是:r=asin(3 )需使用坐标变换方程:x=rcos ,v= 

rsin ̄b 

AumCAD--次JI:发T具的选用,将直接影响到二次开发的周期、编程难度、 

开发效牢及软件的后期维护。在选择时我们即要考虑程序的运行速度、程序 

控制AutoCAD的能力、稳定性、可移植性及技术难度也要考虑开发者自身 

的条件,对语言的熟悉程度等。综合考虑,本文使J ̄AutoLisp和VisualLisp在 

AutoCAD2012平台进行■次开发。 

程序如下: 

(defun c:Rose(/a b Cm xO x1 x2 y1 y2 n1 n2);定义函数名名称为Rose 

0etq a O.91 :给参数赋值 

Oetq b O.51 

(setq r 3.01 

(setq x0 0.o) 

3总体结构及功能实现 

:给特称点赋值 

■ 208 

科学进步 

(setq n1 0) 

(while(<=m xO 3.5)) 

fsetq h()(J11 

(setq xl( a(sin(*3 m))(cos m))) 

(setq yl( a Gin(★3 m))(sin n1))) 

(setq n (+nl h)) 

(setq x2(★a(Sjn(★3 m))(cos m))) 

(setq y2( a(sin( 3 m))(sin n1))) 

(setq I11(1ist x1 y1)) 

(setq n2(1ist x2 y2)) 

fcomnland"line”nl n2 1] 

) 

(sctq nzOOist 0 0) 

nz1 0ist 0 0.81 

硪 嗨 蛄 

;设置白变量的起点 

;设置循环函数 

:设置白变量的步长 

;汁算起点的横 标 

;计算起点的纵 标 

;设置自变量的变化规律 

:训算终点的横坐标 

;计算终 的纵坐标 

;构造 线段起点点对 

;构造 线段终点点对 

;绘制 线 

:结束循环体 

;指定纵坐标的起点 

:指定纵 标的终点 

使用该二次"发甲台IU以快速绘j_I_{室内装饰甲面图(如图4所示)。经过 

对比,可以提高 分五 的工作效率。 

l 鼬 

翰斯 。D 瞄圆@煳豢  蝻 一 

卷 

’ 

蚺 

口 

D 

——..

、阿 兰三 

\、 

 l

一az3(1ist 0 0) 

nz4(1ist 0.8 01 

) 

fcol11mand・'layer"”m”1.ct・1 

fcommand”qleader”nzl nz0\E) 

”) 

;指定坐标横轴起点 

;指定坐标横轴端点 

;结束定义坐标的二个点 

;设置纵轴的颜色 

:绘制纵轴 

l口口。t 【....U 繇 

—— 

u 

(conlJlland”layer.t.-m”2 r.-C,6 .m1) 

(COnlmand"qleader't nz4 nz3\E1 

(command”layer'-..m”0”on...…...・) 

1 

结果如图2所示。 

;设置横轴的颜色 

:绘制横轴 

;返[口J0图层待命 

:结束整个函数定义 

1 34 0 242O 1 38 D 

二J挂射抨面圈 

图4利用该平台快速绘出二居室装饰平面图 

5总结与展望 

本文仅是对开发方法进行研究,总体设计和功能实现都仅仅是部分的 

实现,要作为商用软件使用,需要投入‘定的人力物力进行深入全可的研究 

和升发。 

就如这里设汁的图库管理系统,使用图库时是调用“Insert”命令捅入。 

但如果要调用的图块较多时,而 图库义分许多类,每类【f1又包含许多组, 

如家具库、电器库、l 生设备库等,家具库中又分床组、桌组、椅组等,这样就 

会给用户的使用带来许多不便。如果能在这个图库管理系统里采用 种集 

中式符号库的管理 法来建立图库,HD将许多图块放在‘个图形文件一”保 

存,每个物体的图形f1:为该图形文件巾的一个图块,查找时可根据图块名找 

到所需的物体的图形。这样用户就能够更好地使用图库。■ 

图2三叶玫瑰线示意图 

3l3图库管理设计 

参考文献 

f11郑立楷,广干择临, t成煌.AutoCAD vBA二次开发教程[ml北京:清华 

大学出版社,2006 

【2】舒飞.AutoCAD 2004二次开发标准教程IM].卜海:上海科学普及}十{ 

版社,2004 

在室内设计系统L}1,要用到很多常用的物品,如家具、灯具等。虽然可以 

随接用AutoCAD提供的功能绘出这些图形,但并不方便。因此,我们需建市 

图库管理系统,保存图块,供设计者在进行室内设计时调用。 

『3陈志明 AutoCAD2012实用教程陈道洁【3IM】.北京:机械工业出版社, 

2n11 

用AutoLisp建立的图库管理系统,是将每个图块用一个Dwg存放,使用 

时调用“INSERT”命令插入。 

功能实现如图3所示: 

图3图库管理示意图 

绘图时调用“INSERT’,命令插入操作即可完成。 

3.4对话框的应用 

对话框的使用给用户提供更多的信息和选择,能够适应众多不同的个 

性化需求,强化使用者输入数据时的操作舒适性。对话框具有以下特点: 

1)允许用户在对话框界面进行输入输出操作: 

2)界面可包含丰富的信息最,可图文并茂、 时娃示多项信息; 

3)对话框界面形象友好; 

利用对话框语言DCL设计对话框的显示方式和内容,使用AutoLisp编 

制支持对话框的应用程序便可完成数据的输入、传递和输出。 

4实例分析 

209 


更多推荐

使用,图库,对话框