胡志剛,胡煒
(1.河南科技學院,河南新鄉(xiāng)453003;2.貴州電子信息職業(yè)技術(shù)學院,貴州凱里556000)
相交圓柱圓錐參數(shù)化繪圖命令的二次開發(fā)
胡志剛1,胡煒2
(1.河南科技學院,河南新鄉(xiāng)453003;2.貴州電子信息職業(yè)技術(shù)學院,貴州凱里556000)
就相交圓柱、圓錐體參數(shù)化繪圖命令的Lisp二次開發(fā),給出了相交圓柱及圓錐表面的相貫線算法的參數(shù)公式和實現(xiàn)參數(shù)化繪制三視圖程序設計思路,對實現(xiàn)參數(shù)化繪圖所涉及到的一些關鍵問題給出相應的處理方法,對繪圖命令的不同參數(shù)輸入及對應的相貫線繪圖結(jié)果進行分析;該命令以對話框輸入初始參數(shù),能實現(xiàn)自動繪制圓柱、圓錐體及其相貫線三視圖、尺寸標注及將主要尺寸、參數(shù)及相貫線的坐標數(shù)據(jù)寫入數(shù)據(jù)文件.
二次開發(fā);相貫線;參數(shù)化繪圖;Lisp
在工程設計中,幾何形體建模及圖樣的繪制是基本的和極其重要的設計環(huán)節(jié),回轉(zhuǎn)體是組成幾何體模型的基本單元之一,準確建模及繪圖,尤其是創(chuàng)建相交的回轉(zhuǎn)體表面交線是關系到回轉(zhuǎn)體建模、繪制多面投影視圖和表面展開圖的關鍵,也是設計人員常常遇到的問題.有關文獻基于不同的建模與繪圖要求給出了相應的數(shù)學模型及其程序設計方法,有些是針對軸線相交的情況,有些是針對軸線垂直的情況,有些則是針對軸線處于一般位置的情況[1-3].本文介紹一個基于AutoCAD二次開發(fā)的參數(shù)化設計與繪圖命令,用于圓錐和圓柱體組合建模時處于一般位置的情況,但與一些相關文獻對同類情況的具體數(shù)學模型在坐標系的選擇及表達式的建立上具體方法有所區(qū)別,幾何意義更為明顯,在應用程序的功能設計上更為全面,可以繪制其組合體及其相貫線的多面投影視圖、表面展開圖,實現(xiàn)尺寸標注,將輸入的初始參數(shù)和其他重要的數(shù)據(jù)寫入數(shù)據(jù)文件,為工程設計和制圖提供一個有效的工具.
兩個基本回轉(zhuǎn)體相交,其交線只與各自的尺寸和相對位置有關,而與坐標系的選擇無關,但呈現(xiàn)的數(shù)學表達式在形式上有所不同[2-3].本算法采用兩個附著于圓錐和圓柱的笛卡爾坐標系定義各自回轉(zhuǎn)面及其交線,并通過適當?shù)淖鴺俗儞Q將交線分別繪制在各個視圖平面及展開面上.
建立一個笛卡爾坐標系O-XYZ,將下圓錐(對頂?shù)纳蠄A錐不顯示)頂點置于坐標原點位置,圓錐軸線與Z軸共軸,下圓錐位于XY坐標平面下方,向上為正方向;將圓柱體軸線與Y軸同軸,此時圓錐圓柱軸線正交,錐頂點在圓柱軸線上;當兩者處于一般位置時(即圓錐面和圓柱面軸線為異面直線),相當于改變圓柱面及其坐標系的位置,即圍繞X軸旋轉(zhuǎn)β角度,再分別沿著X、Z軸移動Δx和Δz而得到,此時Δz一般應為負值,此時隨同圓柱面移動到新位置的坐標系用O1-X1Y1Z1表示,這時X和X1方向仍相同,如圖1所示.
圖1 相交圓柱體、圓錐體、坐標系及基本參數(shù)Fig.1 Intersecting cylinder and cone,coordinate systems and basic dimensions
開發(fā)過程基于Visual Lisp集成開發(fā)環(huán)境,用Autolisp語言進行程序設計,并基于對話框輸入初始尺寸和參數(shù),如圖2所示.
圖2 相交圓柱、圓錐參數(shù)輸入對話框Fig.2 Parametric entry dialog box for intersection of a cone and a cylinder
參數(shù)化繪圖命令命名為cone_cyl_intersection,命令功能包括在指定點繪制圓柱、圓錐組合體及其交線的主、俯及左視圖,在各自回轉(zhuǎn)體視圖附近繪制表面展開圖,標注各部尺寸,將回轉(zhuǎn)體尺寸、位移參數(shù)及交線參數(shù)數(shù)據(jù)寫入一個Excel文件[5].主程序和繪圖部分程序設計框圖如圖3所示,在執(zhí)行主程序繪制視圖和展開圖時調(diào)用畫圖子函數(shù),左圖為主程序框圖.
圖3 三視圖繪制的程序框圖Fig.3 Diagram of mutiview drawing program section
2.1 點在構(gòu)造平面上的坐標變換
由公式(5)、(7)計算出的交線上點的坐標,必須經(jīng)過坐標變換形成用戶坐標系O′-X′Y′Z′的X′Y′構(gòu)造面上的二維坐標.設計算出點的坐標為P(x,y,z),繪圖起始點的坐標為S′(x′0,y′0,z′0),俯、左視圖與繪圖起始點的距離分別為和e1和e2,其轉(zhuǎn)換公式分別為
圓錐面展開圖的繪圖起點可置于主視圖左上方,設為A′(x′1,y′1,z′1),根據(jù)式(8),其交線展開圖上任意一點與用戶坐標系X′軸的夾角,該點可用Autolisp中的函數(shù)(polar A′ω′ρ)來確定.
繪制圓柱面展開圖時,同樣需要把交線上的點P(x,y,z)變換到用戶坐標系X′Y′構(gòu)造面上,設繪制圓柱面展開圖的起始點與S′點在X′、Y′方向的偏移距離分別為e3和e4,根據(jù)公式(7)和(8),坐標變換公式為.
2.2 交線連接點的處理
由公式(5)和(7)可以看出,在計算交線上一點時,一次計算出兩個點的坐標(公式(5)的z和公式(7)的y1),當交線包圍錐頂點時,同時生成的兩條交線分別位于對頂點兩邊的上、下圓錐面上,一般在工程設計上只保留一側(cè)圓錐面(本文為XY坐標面下側(cè))及其交線,所以舍棄掉z>0的交點;當交線處于不包圍錐頂點的位置,同時生成的兩個交點將形成兩段交線,由這兩條交線構(gòu)成一條封閉的交線;由于計算交點是不連續(xù)的,其密度隨參數(shù)步長值Δθ和Δt減小而增加,生成的交線越光滑,但總會在兩段交線連接處有間斷,如圖4所示,除非計算的z或者y1恰好兩值相等,在實際計算交點時,可以在接近連接點區(qū)域時取足夠小的參數(shù)步長值Δθ和Δt,并用直線直接兩個端點,而在其他交線參數(shù)域內(nèi)取較大的參數(shù)步長值,以減少計算量.
圖4 封閉交線在連接點出現(xiàn)間斷Fig.3 Breaks at jionts of two sections of a closed intersection curve
在程序設計中,將該繪圖命令命名為cone_cyl_intersection,加載該命令定義程序,輸入命令名后,程序?qū)⒗L制相交圓柱、圓錐體及其交線的三視圖、尺寸標注和圓柱、圓錐表面展開圖,同時將原始輸入?yún)?shù)及相貫線坐標數(shù)據(jù)寫入數(shù)據(jù)文件.根據(jù)輸入的參數(shù)不同,圖形將反應出圓柱、圓錐相交的各種相對位置關系和對應的交線形狀[3].
3.1 軸線平行的情況
兩軸線平行時β=90°,所產(chǎn)生的交線分為包圍錐頂和不包圍錐頂,共軸是包圍錐頂?shù)囊粋€特例.當r=25,α=30°,Δx=35,Δz=0時,繪圖結(jié)果如圖5所示為交線包圍錐頂?shù)那闆r;當r=25,α=45°,Δx=0,Δz=0時,繪圖結(jié)果如圖6所示共軸的情況;當r=25,α=30°,Δx=85,Δz=150時,繪圖結(jié)果如圖7所示為交線不包圍錐頂?shù)那闆r.
圖5 交線包圍錐頂點Fig.5 Intersection line around cone apex
圖6 交線包圍錐頂且軸線共軸Fig.6 Intersection line around cone apex and coincident
圖7 交線不包圍錐頂點Fig.7 Intersection line not around cone apex
3.2 軸線相交
軸線相交有表面互貫、圓柱面貫穿圓錐面和圓錐面貫穿圓柱面三種情況,同時根據(jù)軸線的交角不同又分為正交和斜交.
圖8 軸線正交時的兩曲面互貫的相貫線Fig.8 Intersection line on right intersecting condition
圖9 軸線斜交時圓錐面貫穿圓柱面的相貫線Fig.9 Intersection line of cone through cylinder surface at non-right angle
圖10 軸線斜交時圓柱面貫穿圓錐面的相貫線Fig.10 Intersection line of cylinder thought cone surface at non-right angle
3.3 軸線是異面直線
圓柱和圓錐的軸線以直角或者一般角度相交且是異面直線時,相貫線一般為單條或兩條封閉的空間曲線,此時,參數(shù)輸入對話框中"兩軸線間位移距離"Δx不為0.以下是幾種典型的相貫線的形態(tài).
圖11 一條交線圍繞錐頂點Fig.11 One intersection line around cone apex
圖12 兩條交線圍繞錐頂點Fig.12 Two intersection line around cone apex
圖13 一條交線不圍繞錐頂點Fig.13 One intersection line not around cone apex
當β <90°?α 時,,且Δx的絕對數(shù)值較大時,交線常為一不圍繞圓錐頂點的空間封閉曲線,如圖14所示;Δx的絕對數(shù)值較小時,交線主要呈現(xiàn)為兩條圍繞圓錐頂點的空間封閉曲線,如圖15所示.
圖14 一條交線不圍繞錐頂點Fig.14 One intersection line not around cone apex
圖15 兩條交線圍繞錐頂點Fig.15 Two intersection line around cone apex
圖16 一條交線不圍繞錐頂點Fig.16 One intersection line not around cone apex
圖17 兩條交線不圍繞錐頂點Fig.17 Two intersection line not around cone apex
當β>90°?r 時,交線通常為一條空間封閉空間曲線,如圖18所示.
圖18 一條交線Fig.18 One intersection line
可以通過更為詳細的相貫線狀態(tài)分析來創(chuàng)建圓柱、圓錐相交的形態(tài)圖譜,并對每種形態(tài)圖對應出初始輸入尺寸和參數(shù),以便設計和繪圖時有針對性的應用[6].
應用程序是以圓錐及其附著的坐標系O-XYZ為參照來定義圓柱及其附著坐標系O1-X1Y1Z1的位置,其一般位置可以通過將圓柱及其固連坐標系圍繞X軸旋轉(zhuǎn)一定角度,并分別沿著Z軸和X軸移動一定距離而實現(xiàn),因此不需要使其再圍繞Y和Z軸旋轉(zhuǎn)及沿著Y軸平移的變換,從而簡化了坐標點的計算量和程序設計.
應用程序可以通過輸入不同的初始尺寸、參數(shù)來繪制各種相對位置情況下的相交圓柱、圓錐的三視圖.該程序沒有設計消除隱藏線的功能,在作圖時可以使用Trim(修剪)或Break(打斷)命令進行消隱,或打斷后用虛線表達隱藏線.不同初始參數(shù)的對話框輸入可以通過對DCL對話框文件及Lisp程序參數(shù)輸入及對話框處理的相關函數(shù)進行少量改動來實現(xiàn),以適應不同的設計及制圖的需要.依據(jù)本文提供的相貫線參數(shù)計算公式還可以進一步推導出圓柱、圓錐面展開面的相貫線展開公式,從而增加表面展開圖的作圖功能,方便了鈑金圖的繪制.
[1]胡志剛,鄭秋白.相交圓柱表面展開參數(shù)化繪圖命令的Lisp二次開發(fā)[J].河南科技學院學報:自然科學版,2014,42(5):66-71.
[2]侯愛民.偏斜交圓柱圓錐表面展開圖計算機繪制數(shù)模原理[J].機械管理開發(fā),2011,121(3):197-198.
[3]高麗華.相交圓柱與圓錐表面展開圖的計算機繪制[J].機械設計與制造工程,2001,30(5):45-46.
[4]江蘇師范學院數(shù)學系.解析幾何[M].北京:人民教育出版社,1983:187-208.
[5]胡志剛.大型橢圓形封頭放樣圖參數(shù)化繪圖的Lisp實現(xiàn)[J].河南科技學院學報:自然科學版,2013,41(5):53-57.
[6]儲珺,高滿屯.用形態(tài)圖方法建立圓柱與圓錐相貫圖譜[J].機械科學與技術(shù),2003,22(1):63-65.
(責任編輯:盧奇)
Secondary development of parametric drawing command of intersection of a cylinder and a cone
HU Zhigang1,HU Wei2
(1.Henan Institute of Science and Technology,Xinxiang 453003,China;2.Guizhou Vocational Technical Collage of Electronic Information,Kaili 556000,China)
For secondary development of a parametric drawing command of a complex object,which was composed of a cylinder and a cone,the formula of the intersection curve was given and the Lisp program structural diagram of parametric drawing of multiview was delivered,some processing methods coping with several key problems of drawing of intersection curve was listed.Different intersection line result in connection with different parameters'entry were analyzed.The command has the functions of multivew drawing,dimensioning and writing main parameters and coordinate data of intersection line to a data file.
secondary development;intersection line;parametric drawing;Lisp
TP391.7
:A
:1008-7516(2015)05-0058-09
10.3969/j.issn.1008-7516.2015.05.013
2015-06-09
國家自然科學基金(51375149)
胡志剛(1962-),男,江西進賢人,副教授.主要從事機械設計、CAD及工程圖學研究.