馬學知
(重慶工業職業技術學院,重慶 401120)
零件破壞一般總是從表面層開始的,為了保證零件的使用性能,在零件圖上必須標注零件的表面結構要求。實踐中,常用表面粗糙度參數Ra來評定零件的表面質量。AutoCAD是目前廣泛應用于各行業的一種通用CAD軟件,它沒有提供表面結構標注的命令,標注時常用的方法主要有三種[1~3]:一是以插入帶屬性塊的方式標注;二是利用添加參數與動作的動態塊標注;三是使用AutoCAD自帶二次開發軟件包如AutoLISP編寫程序,實現智能化標注。使用前兩種方法標注時,需要創建多個塊,并且每次需要用鍵盤輸入參數代號及參數值,調整也相對煩瑣;第三種方法雖然高效,但僅局限于表面結構要求的標注。針對AutoCAD軟件中表面結構要求標注時存在的上述問題,本文介紹了一種使用內嵌的AutoLISP語言擴展動態塊的可見性參數功能來實現表面結構標注的方法。
在“塊編輯器”界面中,可見性參數允許用戶創建可見性狀態并控制對象在塊中的可見性。默認情況下,系統只允許創建一個可見性參數,并總是應用于整個塊[4]。在圖形中單擊夾點,從下拉列表中選擇選項來控制塊中元素的可見性。表面結構要求有3種符號類型、2種標注方式和5個補充要求等,標注時會形成許多不同的標注組合[5]。采用插入塊的方法標注時,需要定義多個塊。如果能用多個可見性參數集來控制其符號類型和標注方式等,這時只需定義一個塊,就能滿足要求。
AutoLISP是一個嵌入AutoCAD內部的LISP編程語言,其語法簡單、功能函數強大[6]。AutoLISP應用程序或程序可以實現對AutoCAD當前數據庫的直接訪問、修改或創建處理,來擴展、定制和開發AutoCAD的功能。塊動態參數的重要信息存儲在ACAD_EVALUATION_GRAPH字典里。利用AutoLISP語言二次開發時,通過函數獲取、修改和存儲字典信息以實現所要求的功能:添加可見性參數并激活該參數,使之處于可編輯狀態;不同類型可見性狀態切換時,其可見性狀態互不影響。這兩個功能分別由AutoLISP程序定義的vis_add和ele_del命令來實現,圖1為ele_del函數的程序流程圖。
根據GB/T131-2006/ISO1302:2002[5]關于表面結構符號、代號、標注的規定,利用繪圖與編輯命令,繪出不同表面結構要求和相同表面結構要求標注組合圖形,其中帶實心箭頭的斜線使用“多重引線”命令繪制;用多行文本命令書寫常用的表面粗糙度參數代號及參數值,如Ra 100、Ra 50、Ra 25、Ra 12.5、Ra 6.3……,圖2為繪制好的表面結構組合圖;然后以表面結構組合圖為對象,尖底為基點,定義名為“表面結構”的內部塊。

圖1 程序流程圖
根據國家標準,在表面結構“塊編輯器”界面中,添加必要的參數和與之相關的動作,完成后的圖如圖3所示。
按照命令行提示,以C點為基點、圖中水平虛線為對齊方向,添加對齊參數。利用添加的對齊參數來保證標注時尖底始終與標注的零件表面垂直,并從材料外指向零件表面。
按照命令行提示,以B點為基點,A點為端點,選擇帶實心箭頭的斜線為拉伸對象,添加極軸參數和極軸拉伸動作;打開正交模式,以E點為投影線的基點,指定豎直方向上的某一點為投影線的端點,圖中豎直虛線即為翻轉投影線,選擇指引線及極軸參數與極軸拉伸動作和右側橫線為翻轉對象,添加翻轉參數和翻轉動作。通過添加的兩個參數與相應動作來保證不同位置表面引出標注時,能實現實時調整指引線的長度和角度。
按照命令行提示,捕捉D點為點參數位置,選擇圓括號及圓括號內基本符號為移動對象,添加點參數及移動動作,實現有相同表面結構要求簡化標注時,圓括號及圓括號內基本符號位置的調整。

圖2 表面結構組合圖

圖3 添加參數與動作的動態塊
由于零件的表面位置和用途不同,再結合表面結構標注的特征,創建的動態塊要能實現以下幾個功能:表面結構符號類型的選擇、表面結構參數代號及參數值的選擇、表面結構標注方式的選擇和表面結構簡化注法的選擇,因此需要向動態塊中插入四個可見性參數集,其操作過程如圖4所示,完成后的圖如圖5所示。在圖形中選中插入的動態塊并單擊可見性參數夾點,在如圖6所示彈出的可見性狀態的列表中選擇所需選項,動態塊便自動改變其顯示狀態,圖7為表面結構標注實例。

圖4 操作過程圖

圖5 表面結構動態塊

圖6 表面結構可見性狀態列表

圖7 表面結構標注實例
實際應用證明,應用AutoLISP語言開發的程序,實現了動態塊中添加多個可見性參數集的功能,創建的一個表面結構動態塊就基本可以滿足機械零件表面結構標注的要求,解決了AutoCAD中標注時存在的問題,提高了繪圖效率。另外,此程序擴展的功能同樣適用于其他如電氣、液壓與氣壓等設計領域中類似問題的處理,也可以作為教學中動態塊與AutoLISP語言程序設計教學的案例。
[1]黃藝婷.用AutoCAD創建和插入表面結構要求符號圖塊[J].機械工程與自動化,2011,6(12):191-192,195.
[2]佟以丹.在AutoCAD中創建動態塊標注表面結構[J].吉林化工學院學報,2012,29(3):50-53.
[3]李東生.機械CAD中有關表面結構標注功能的開發[J].齊齊哈爾大學學報,2011,27(1):43-44.
[4]AutoCAD2012用戶手冊:在動態塊中使用參數[Z].
[5]中國國家標準化管理委員會.GB/T131-2006產品幾何技術規范(GPS)技術產品文件中表面結構的表示法[S].北京:中國標準出版社,2006.
[6]吳永進,林美櫻.AutoCAD完全應用指南:AutoLISP+DCL+Visual LISP程序設計篇[M].北京:科學出版社,2011.