陳茂勇 黃祖欽
(上海外高橋造船有限公司 上海200137)
船舶的詳細設計正由二維設計趨向于三維設計,在后者成熟應用之前,傳統的二維設計模式仍是主流。作為二維繪圖通用軟件,AutoCAD在船體制圖中使用率較高,但受到軟件的跨行業通用性限制,其繪圖功能對船體結構專業領域的契合度仍顯不足。然而,AutoCAD支持二次開發以強化現有功能或實現新的功能[1-3],行業內也有諸多具有針對性的輔助工具被開發出來用以實現特定的繪圖功能。此類工具在一定程度上能替代手工完成某些復雜的繪圖過程,但其單一功能較為零散,對繪圖效率的提升不夠全面。而且,由于所采用的繪圖標準不一致,導致各類輔助工具在行業內的通用性不佳,也無法被有效共享。針對以上現狀及存在問題,本文提出一種基于AutoCAD二次開發的船體結構圖快速繪圖新模式(下文簡稱快速模式)作為解決方案。
AutoCAD 提供了幾種可用于控制圖形和數據庫的應用程序編程接口,其中內嵌的AutoLISP是一種功能全面的解釋性編程語言,可用于調用AutoCAD 命令、系統變量和對話框。快速模式基于AutoLISP編程語言和用于增強AutoLISP的Visual LISP編程語言開發而成。
二次開發程序將按照快速繪圖流程進行設計,如圖1所示。

圖1 快速繪圖流程
在普通的AutoCAD環境下,設計人員主要通過繪圖命令配合修改命令進行結構圖形的繪制,同時需在繪圖前或繪圖后進行圖層、線型、顏色等標準項的調整。對于稍復雜的圖形,還需要額外輔助線的支持。這種模式下完成一個目標圖形的繪制,需全程手工干預,不僅低效,還存在易產生人為錯誤的風險。相比之下,基于二次開發程序,結構圖形的繪制過程趨于格式化,通常經過兩個步驟即可完成目標圖形的繪制。
快速模式通過二次開發程序實現,而程序的二次開發又以繪圖標準為指導,因此,在程序開發中系統地融入標準是建立完善繪圖模式的前提。快速模式涉及到的基礎標準項包括文字及標注樣式、線型定義、圖層定義和繪圖節點,如圖2所示。這些標準項分別在標準配置文件(ASCII文本文件)中逐行定義,其中每個文本行包含一項“鍵,值”組合。如:文本中對文字高度的定義為“text_height,1.8”。

圖2 標準的組成
在開始制圖前,通常要根據繪圖標準對當前繪圖環境做初始化設置,如建立標準的文字及標注樣式、線型和圖層等。傳統的做法是在標準的樣板文件基礎上繪制新圖,但其存在有以下幾點不足:
(1)依賴于標準樣板;
(2)樣板只能在新建的文檔中應用;
(3)在樣板應用后產生的標準項的變更仍需手工干預。
快速模式下,設計者可通過程序界面對標準配置文件進行修改和確認,并由程序自動實現標準的初始化,初始化流程見下頁圖3。在程序設計中,初始化的本質是將每個標準項設為一個變量,并將對應的配置值賦給該變量。變量被用來生成標準的文字及標注樣式、線型和圖層等,并為繪圖輔助程序提供參數。

圖3 初始化流程
初始化分成以下兩種形式:
(1) 被動初始化
文字及標注樣式、線型定義和圖層定義等內容的初始化,會對文檔造成更改并隨文檔保存,因此,這部分內容需在設計者下達指令后,由被動初始化程序完成。
(2) 主動初始化
繪圖節點配置、圖形與圖層的關聯等不對文檔造成更改的內容,由主動初始化程序靜默完成,不需設計者下達指令。
這種模式不但彌補了傳統做法的不足,還使標準變得量化可見,初始化的過程也更加簡潔和規范,具體表現在以下四個方面。
2.2.1 文字樣式和標注樣式
文字和標注都是結構圖中最常規的圖面元素,文字樣式和標注樣式一般相對固化,其標準樣式的建立過程可通過程序進行簡化。在程序界面中確認樣式名稱及細節后,文字及標注樣式將在被動初始化程序運行后自動建立。
2.2.2 線型定義
輔助程序提供直觀的界面進行線型創建和修改,并將線型實時加載或更新到當前文檔,如圖4所示。

圖4 線型定義
設計者可用兩種方式定義標準線型:
(1)通過輸入框創建或修改標準線型;
(2)將現有文檔中的線型保存為標準線型。
2.2.3 圖層定義
圖層是一項重要的繪圖標準,用于有效組織和管理圖面內容。圖層通常按不同的圖面元素和構件類型來分類。如將文字歸入TEXT圖層,標注歸入DIMENSION圖層,構件線根據主次類型分別歸入LAYER1、LAYER2等。設計人員依據傳統的繪圖方法,需借助樣板引入或手動建立這一系列標準圖層。在快速模式下,標準圖層由被動初始化程序自動建立,顏色、線型、線寬等圖層要素可由設計者自行定義,參見圖5。
將所繪圖形歸入正確的標準圖層是一項必不可少的工作。使用傳統的繪圖方式,在交替繪制不同類型的圖形元素時,設計者需反復切換圖層以實現圖層的標準化;而且屬于同一圖層的圖形可能需要設置不同的顏色或/和線型,這些情況無疑增加了繪圖過程中的手工干預量。在快速模式下,主動初始化程序將圖形元素關聯到指定的標準圖層,如圖6所示。通過輔助程序所繪的圖形將自動歸入所關聯的圖層,無需手動進行圖層調整。

圖5 圖層定義

圖6 圖形與圖層的關聯
2.2.4 繪圖節點
繪圖節點包含一些控制圖形細節和形狀的設置項,如下頁圖7所示。在主動初始化程序運行后,這些設置項以全局變量的形式駐留在當前文檔的內存空間中,并被輔助程序調用以達到按節點繪圖的目的。若節點與打印比例關聯,則節點將按比例縮放,如文字高度。

圖7 節點配置
快速模式下,基于二次開發輔助程序,繪圖過程具有自動化、智能化、構件化和批量化的特點,這些特點使該模式能夠有效提升繪圖效率。
自動化是快速模式最主要的特點。以繪制一個肘板為例,其輪廓形狀由若干關鍵點(和半徑)控制,通過程序計算這些關鍵點的坐標并連接成多段線實現自動化。因此,設計者只需輸入或指定邊長、半徑、角隅孔、邊界線等用于計算關鍵點的數據,即可自動完成肘板繪制。程序界面如圖8所示。

圖8 肘板繪制
程序提供材質、板厚等可選項,供設計者按需輸入,這些信息將被提取用以進行肘板的規格和焊腳高度等自動標注。
AutoCAD支持對圖形添加擴展數據[4],通過擴展數據,設計者可以將任何圖形貼上自定義標簽,并賦予額外的屬性。有效組織這些標簽和屬性能實現圖形的分組歸類,使程序能夠識別特定圖形組,從而具備智能化的特點。以下程序代碼可實現擴展數據的添加,將貫穿孔圖形貼上“CUTOUT”的標簽,并賦予“T-BAR”屬性:

智能化體現在兩方面(以繪制貫穿孔和補板為例):
(1)智能識別結構類型
繪制貫穿孔時,程序在框選范圍內智能識別型材截面,并自動生成由設計者指定類型的貫穿孔;繪制補板時,程序在框選范圍內智能識別貫穿孔,并自動生成由設計者指定類型的補板,如圖9所示。

圖9 貫穿孔和補板繪制
(2)智能識別結構尺寸
通常,型材的貫穿孔和補板在《船體結構節點圖冊》中有詳細的外形尺寸要求,如下頁圖10所示。只要確定型材截面的尺寸,就可以得到指定類型的貫穿孔尺寸;同理,只要確定貫穿孔的尺寸,也可以得到指定類型的補板尺寸。而采用傳統的手動方式,在繪制型材截面、貫穿孔和補板時,都要輸入外形尺寸數據,造成這些數據的重復輸入。快速模式下,輔助程序能夠自動識別型材截面或貫穿孔尺寸,并借以計算對應貫穿孔或補板的尺寸。因此,在型材截面、貫穿孔和補板這一系列結構的繪制過程中,設計者只需在繪制型材截面時輸入一次即可。圖9中貫穿孔和補板的繪制,僅需指定類型而無需輸入結構尺寸。

圖10 貫穿孔和補板的尺寸
智能化的特點可避免結構尺寸的重復輸入,不但提高繪圖過程的自動化程度,而且能有效杜絕因重復輸入而產生人為錯誤。
所謂構件化是指圖形由封閉或半封閉的連續線條組成,自成一個單獨構件,并具有材質、板厚、尺寸等屬性。相比于使用零散線條組成結構圖形的傳統方式,構件化的圖形更貼近實際,且易于選擇和管理,如圖11所示。構件化的圖形所具有的屬性能夠被輔助程序提取和分析,用于支持智能化的實現。

圖11 構件化的圖形
不同于通過復制粘貼所實現的批量化繪制,在快速模式下,輔助程序能批量繪制形狀、大小和角度等不完全相同的圖形,例如批量繪制圖9中不同規格T型材對應的貫穿孔和補板。
本文闡述快速繪圖模式的總體思路和實施流程,并對二次開發輔助程序的功能特點進行分析,初步展示該模式的基本框架。相比于已公開的多數應用于船體制圖領域的零散AutoCAD插件,承載該快速模式的輔助程序在功能上具有更好的系統性、連續性和通用性。經過若干實船項目的持續應用和跟蹤優化,證明該模式達到了提升結構圖繪圖效率的預期目標。在尚未應用三維自動化設計軟件進行船體詳細設計的情況下,基于AutoCAD二次開發的船體結構圖快速繪圖模式具有明確的實際應用價值。