VisualLisp编程在海洋石油工程配管设计中的实践研究

(整期优先)网络出版时间:2012-12-22
/ 2

VisualLisp编程在海洋石油工程配管设计中的实践研究

李晓赫

李晓赫(中海油能源发展股份有限公司油田建设渤海工程分公司,天津300452)

摘要:为了提高配管加工的效率和质量,尽量减少人工操作,最大程度的实现设计的智能化,以Visuallisp为编程语言的,对AutoCAD的二次开发,已取得了飞速进展。配管加工设计正在向自动化迈进。并且,已经有很多开发出来的工具已经用在了多个工程项目及其相关的配管加工设计。本文针对Visuallisp这一编程语言进行初步探讨和分析,并将其运用在配管加工设计之上。以期在配管加工设计这一领域更快的步入现代化、智能化和自动化。

关键词:Visuallisp;海洋石油工程;配管加工设计;AutoCAD二次开发

海洋平台具有复杂的系统和庞大的规模,空间十分密集。所以,海洋平台及其与它相关的FPSO上部工艺的配管工程,多采用PDS和PDMS等配管软件,以建立三维模型。从而,从这些三维模型中的配管图抽出来进行设计。管线的种类繁多,数量庞大,系统多。为了解决这个问题,提高效率,加强施工管理,需要添加相应的单管号、流水号、预设和现场连接口号等。

AutoCAD原理上能够完成单管号、流水号、预设和现场连接口号的添加工作,问题是,它的操作相当繁琐、复杂。致使工作效率低下,并且产生重号、漏号等现象。懂得AutoCAD的操作人员都知道,对于单管号、流水号、预设和现场连接口号的添加实际上是一些AutoCAD软件的最基本的文字、直线、圆形等命令的重复使用和反复操作。那么,想办法将这些基本命令有序的组合在一起,才能更高效的解决这一问题。AutoCAD软件除了强大的绘图功能之外,还具备二次开发功能。这一功能可以实现很多特殊的指令,从而达到简化操作的目的。这才是提高工作效率的关键所在。这对于数量众多配管三维图的加工设计具有很高的现实意义。

对AutoCAD进行二次开发,Visuallisp语言具有很高的实用价值。它可以轻松、直接的增改AutoCAD的有关指令,从而,更充分地对AutoCAD进行二次开发。比如:扩展图形编辑的相关功能,图库和数据库的建立,对图形的修改和访问等等。它不仅操作简单,而且,使用者的大多数需求都可以得到满足,甚至为使用者提供相对特殊的功能及相关解决方案。

1编程实现

1.1添加信息。

“layer”命令可以添加新的图层,以便于用户方便地添加需要的信息,对数据进行编辑、分析、修改和提取。

“style”命令可以根据需要设置文本样式。一般在“text”命令调用前进行相关设置。

“OSMODE”变量值的设置可以在开始编程时,关闭对象的捕捉。

“OSMODE”变量值的设置可以关闭正交。以免受到干扰影响绘制正交直线。

“read-line”命令的调用可以将需要的数据预先保存在记事本当中,从而减少人工的劳动力。如:字体的高度、颜色等。这些不常变动的数据都可以保存起来,以免进行不必要的重复操作。

"stract"命令可以将三维图中的流水号和相应的序号提取并组合起来,形成现场连接口号。并且,在编完一只连接口号后会自动增加一位的计数。从而,实现编号的自动化。

“ssget”可以建立选择集,这些包含流水号对象的选择集的流水号文本符合“*@-###”的形式,并通过它知道流水号文本所在图层。

“ssname”、“entget”、“assoc”、“cdr”等函数分别用于选择及处理、对象处理、列表处理等。

除以上命令之外,还需要了解“atof”的实行数转换功能以及“rectang”命令的绘画边框功能。

综上分析,下面具体说明在Visuallisp编程三维图流水号时如何添加信息。

(defunC:lsh_add()

(setvar"CMDECHO"O)

(selvar"OSMODE"O)

(vl-cmdf"ORTHO""OFF")

(setqfp(open(setqfp(findfile"color.txt"))"r"))

(setqcolor(atoi(read-linefp)))

(closefp)

(if(not(tblsearch"layer""流水号"))

(command"layer""M""流水号""L""Continuous""流

水号""C"color"流水号""")

(command"layer""S""流水号""C"color"流水号"""""))

(if(not(tblseareh"style""hztxt"))

(command"style""hztxt""宋体"010"n""n""n"))

(setqP1(getpoint"、n请选择三维图边框右上角顶点:"))

(setqfp(open(setqfp(findfile"height.txt"))"r"))

(setqheight(atof(read·linefp)))

(closefp)

(setqfp(open(setqfp(findfile"width.txt"))"r"))

(setqwidth(atof(read·linefp)))

(closefp)

(setqP2(1ist(-(carPl)height)(.(cadrPl)width)0))

(setqP3(1ist(一(carP1)(/height2))(一(cadrP1)(/width2))0))

(command"rectang"P1P2)

(setqlshhno(getstring"、n请输入页码(001,002,003……):"))

(setqfp(open(setqfp(findfile"systemcode.txt"))"r"))

(setqsystem(read-linefp))

(closefp)

(setqlshh(strcatsystem"一"lshhno))

(setqfp(open(setqfp(findfile"zigao.txt"))"r"))

(setqzigao(read-linefp))

(closefp)

(command"text""s""hztxt""jft"me"P3zigao"0"lshh)

(prine))

图1系统框

1.2设计对话框。不同的项目,或者不同的设计者设计出来的三维图在图比例、色彩等不同。这将造成文字大小、颜色以及流水号边框的大小、颜色也不尽相同。为了使单管号、预制和现场连接口号的相关参数都能与三维图搭配,用户有必要进行相关的参数设置,让程序自动的识别与调用。AutoCAD强大的对话功能将很好的满足用户进行二次开发需求。

2系统方案

系统框图如图1所示。

2.1参数设置。字体的高度、流水号的颜色以及边框、系统的代码等都要设置恰当,以便在绘图时候方便的调用。一般的,在一个项目中,同一个系统的三维图设置一次即可。

2.2流水号、单管号、现场连接口号、预制连接口号的添加。在它们数量较多的时候,可以依次从1开始编排。

参考文献

[1]邓林,高指林,肖星鹏,等.应用VisualLisp编程开发配管加工设计工具[J].化工设备与管道,2011,48(1):42-44.

[2]沈剑英,莲娣.用VisualLISP编程实现参数化绘图[J].山西机械,2012(4):27-28,30.

[3]于香芬,袁小照,崔同凯,等.PDMS在海洋平台配管设计中的应用[C]//中国造船工程学会近海工程学术委员会2007年度海洋工程学术会议论文集,2007:616-622.