基于AutoLisp船舶辅助设计工具的开发

2017-09-22 01:07
武汉船舶职业技术学院学报 2017年2期
关键词:辅助设计船舶设计外板

(武汉船舶职业技术学院,湖北武汉 430050)

基于AutoLisp船舶辅助设计工具的开发

朱显玲

(武汉船舶职业技术学院,湖北武汉 430050)

船舶设计工作绘图量大,重量重心计算繁琐且准确率极低。自采用CAD辅助设计以后,大量减少了手工制图工作,使设计人员从繁重的手工制图工作中解放出来,得以专心于方案设计优化,但重量重心统计计算工作仍然是一项费时费力的工作。基于AutoLisp开发了一套船舶辅助设计工具ShipDesign,能在AutoCAD中实现外板展开、骨材长度统计等。该工具在某设计院的实船设计中应用多年,能有效简化计算统计工作量,提高计算精度,实用性得到普遍认可。

AutoLisp;辅助设计;外板展开

船舶稳性是船舶的主要性能之一,关系到船舶的使用安全,必须满足相关《规定》的要求。在船舶设计过程中,船舶稳性的计算离不开较为准确的重量和重心估算。AutoCAD在船舶制图中的应用,虽然提高了船舶设计人员的绘图效率,但船舶的重量和重心的计算仍然很麻烦且准确率较低。基于AutoLisp二次开发船舶辅助设计工具ShipDesign,通过程序运行的方式可得到相当满意的重量和重心计算结果,大大提高了设计效率,缩短了设计周期,同时程序具备较好的通用性,易于集成,满足了船舶设计的特殊需要。

1 AutoLisp的开发环境概述

AutoCAD是机械工程领域必备的计算机辅助设计(CAD)软件之一,其二维绘图功能强大,具有开发性,便于二此开发,许多专业软件都以他为平台进行二次开发。利用VisualLisp集成开发环境,可以便捷、高效地开发AutoLisp程序,经过编译可以得到运行效率高、代码紧凑、源代码受到保护的应用程序。

AutoLisp是Autodesk公司开发的一种Lisp程序语言,嵌套于AutoCAD内部,将人工智能语言Lisp与AutoCAD有机结合,是AutoCAD开发的有力工具,又具有一般高级语言所没有的强大的图形处理功能,是当今世界上CAD软件中被广泛采用的语言之一,语法简单、功能强大、不许额外购买其他软件。

2 程序功能设计的要求和基本思路

基于船舶设计的需要,本工具有以下功能:将Autocad图纸中的txt数字进行累加,从而可以做到材料的统计;将Autocad图纸中的txt数字进行相乘,从而可以将图纸中零件的单位重量与数量相乘,得到零件的总用量;在图纸中筛选数据进行宏定义,可省去点选数据的麻烦;将所选多条曲线或直线的长度进行累加,从而统计骨材的总长度;将单根曲线展开成直线;将一组曲线展开成直线;将一组曲线展成直线,同时按指定基点生成直线,从而绘制外板展开;计算封闭图形的面积及质心,可以在封闭图形中开口求面积及质心,此命令可以求板材的用量及重心位置;求多义线的控制点,同时将控制点坐标形成文本文件;在图纸指定位置绘制符合要求的肘板。本文只对其中两项功能进行详细论述即完成外板展开的命令和计算骨材总用量的命令。

(1)外板展开:以船底中纵剖线为基准线,通过船宽方向肋骨线的展开实现船体外板自动展开,生成船底纵中剖线与相应肋位的相交基点。同时,自动叠加肋骨曲线等曲线的长度,计算船体外板的使用量,以及在外板基础上自动绘制各外板构件、板列布置情况、外板开孔等。

(2)骨材总长计算与统计:对船体骨材的长度和数量进行自动统计,获取所有骨材(曲线)的长度和数量,并累加、输出。

3 程序开发集成与应用

基于Autolisp完成了上述功能的开发,并集成为一套船舶辅助设计工具ShipDesign,该工具以安装包的形式免费发布,适用于AutoCAD设计平台,软件安装后会在AutoCAD环境中自动生成工具栏,如图1所示。

图1 工具栏

使用该工具的过程中如出现错误操作可以通过AutoCAD自带的“撤销”及“重复”进行操作,即本工具的功能可以穿插在AutoCAD的原命令中进行使用。

3.1 外板展开

外板展开一般通过crvLen将曲线连接,每次可以多选,选择曲线以回车键作为分割点,每次展开选取需要一次性拉长的曲线,通过内部调用子函数GetCurveLength ()返回每条曲线的长度,后通过basePt选取每条曲线的展开基点,分别定位于船体纵中剖线与肋位面的交点,AutoLisp部分程序代码如下:

;;;AutoCAD命令窗口调用,epd3

(defun c:epd1 ()

(setqcrvLen (GetCurveLength

(car (entsel "请选择需要展开的肋骨(站位)线:"))

)

)

(setqbasePt (getPoint " 请选择展开线的绘制基点:"))

(setq x (car basePt))

(setq y (+ (cadrbasePt) crvlen))

(setqendPt (list x y 0.0))

(command "line" basePtendPt "")

)

;;;子函数,返回曲线长度

;;;参数crv:直线、圆弧、圆、多段线、优化多段线、样条曲线等图元

;;;返回值:曲线长度

(defunGetCurveLength (crv)

(vlax-curve-getDistAtParamcrv (vlax-curve-getEndParamcrv))

)

使用方法为:鼠标左键点击图标,鼠标将进入选择状态,命令栏提示如图2所示。

图2 epd3命令栏

此时选取曲线,单次选取的几条曲线程序会自动计算其长度连成一根直线,单次选择以鼠标右键为每条直线的分割点,所以此时选择第一条线,例如从9号线开始选取,9号线有一条曲线和一条短直线组成,如图3所示。

图3 曲线的选取

此时命令栏将出现命令提示,如图4所示。

图4 曲线选取命令提示1

然后,在屏幕上单击鼠标右键完成第一条线的选择,命令栏提示如图5所示。

依照上述方法将9.5、10号线依次输入,当输入做后一条曲线时,在单击鼠标右键后再单击一次右键,命令栏如图6所示。

图6 曲线选取命令提示3

此时,表示数据的输入工作已结束,各圆心为肋骨线与船体中心线的交点及形成的直线的基点,按上面曲线的输入顺序可在相应基点输出相应直线,如图7所示。

图7 曲线的展开1

按展开顺序,第二条及第三条曲线放于相应基点处,即可完成了各曲线的拉直,实现9~10肋位的外板展开,如图8所示。

图8 曲线的展开2

3.2 骨材长度计算

通过函数GetCurveLength ()计算出所选择的各条曲线的长度,并将其累加,在再利用text将其以文本的形式显示于图纸指定位置上,AutoLisp部分程序代码如下:

;;;参数crv:直线、圆弧、圆、多段线、优化多段线、样条曲线等图元

;;;返回值:曲线长度

(defunGetCurveLength (crv)

(vlax-curve-getDistAtParamcrv (vlax-curve-getEndParamcrv))

)

使用方法为:鼠标左键点击图标,鼠标将进入选择状态,命令栏提示如图9所示。

图9 骨材长度计算命令提示1

在图纸上选择要进行长度统计的曲线,命令栏提示如图10所示。

图10 骨材长度计算命令提示2

然后,在屏幕上单击鼠标右键,命令行将把所选曲线的长度进行计算,计算结果如图11所示。

图11 骨材长度计算

4 结 语

本程序易于集成到专业应用程序系统之中,计算和统计结果准确,较好地满足了工程实际的需要。同时,大大减轻了设计人员的重复劳动,提高了船舶设计工作效率,其实用性得到普遍认可,在船舶技术设计阶段应用广泛。

1 彭公武.船体结构与制图[M].哈尔滨: 哈尔滨工程大学出版社,2014.

2 罗镇泉,詹明珠.基于AUTO/JSP二次开发的剖面绘制辅助工具原理及应用[J].船舶通讯.2015(1).

3 赵宏.利用AUTOLISP快速分割批量数控程序[J].机械,2013(7):61-65.

(责任编辑:谭银元)

DevelopmentofAShipDesignToolbasedonAutoLisp

ZHUXian-ling

(Wuhan Institute Of Shipbuilding Technology, Wuhan 430050, China)

Due to heavy drawing work in ship designing and low accuracy in gravity calculation, the use of CAD has greatly decreased the work load of drawing and make the designing staff more concentrated on the program optimization, but gravity calculation is still a time -consuming and painstaking job. A set of designing tool is developed based on AutoLisp, which is called ShipDesign. The tool has been used in shipdesign by a design institute for many years, and is proved to be effective in simplifying the calculation and statistical workload and improving the calculation accuracy.

autoLisp; ship design tool; shell plate development

2017-02-03

朱显玲,女,副教授,主要从事船舶制造与维修方面的教学和科研工作。

U662

A

1671-8100(2017)02-0024-04

猜你喜欢
辅助设计船舶设计外板
基于图形特征识别技术的电码化辅助设计软件开发与应用
侧围外板转角深拉伸起皱缺陷研究
侧围外板尾灯处排料困难的解决方案
汽车侧围外板A柱起皱缺陷分析及处理方法
基于数据库模型的信号一体化辅助设计平台研究
基于三维GIS的燃气管道线路辅助设计系统研究与实现
船舶设计阶段提高钢材利用率的方法探讨
浅析船舶设计的集成化
运用CAD技术辅助船舶制造
某型快艇船体外板腐蚀点焊补工艺研究