胡志剛,胡煒
(1.河南科技學(xué)院,河南新鄉(xiāng)453003;2.貴州電子信息職業(yè)技術(shù)學(xué)院,貴州凱里556000)
相交圓柱圓錐參數(shù)化繪圖命令的二次開發(fā)
胡志剛1,胡煒2
(1.河南科技學(xué)院,河南新鄉(xiāng)453003;2.貴州電子信息職業(yè)技術(shù)學(xué)院,貴州凱里556000)
就相交圓柱、圓錐體參數(shù)化繪圖命令的Lisp二次開發(fā),給出了相交圓柱及圓錐表面的相貫線算法的參數(shù)公式和實現(xiàn)參數(shù)化繪制三視圖程序設(shè)計思路,對實現(xiàn)參數(shù)化繪圖所涉及到的一些關(guān)鍵問題給出相應(yīng)的處理方法,對繪圖命令的不同參數(shù)輸入及對應(yīng)的相貫線繪圖結(jié)果進(jìn)行分析;該命令以對話框輸入初始參數(shù),能實現(xiàn)自動繪制圓柱、圓錐體及其相貫線三視圖、尺寸標(biāo)注及將主要尺寸、參數(shù)及相貫線的坐標(biāo)數(shù)據(jù)寫入數(shù)據(jù)文件.
二次開發(fā);相貫線;參數(shù)化繪圖;Lisp
在工程設(shè)計中,幾何形體建模及圖樣的繪制是基本的和極其重要的設(shè)計環(huán)節(jié),回轉(zhuǎn)體是組成幾何體模型的基本單元之一,準(zhǔn)確建模及繪圖,尤其是創(chuàng)建相交的回轉(zhuǎn)體表面交線是關(guān)系到回轉(zhuǎn)體建模、繪制多面投影視圖和表面展開圖的關(guān)鍵,也是設(shè)計人員常常遇到的問題.有關(guān)文獻(xiàn)基于不同的建模與繪圖要求給出了相應(yīng)的數(shù)學(xué)模型及其程序設(shè)計方法,有些是針對軸線相交的情況,有些是針對軸線垂直的情況,有些則是針對軸線處于一般位置的情況[1-3].本文介紹一個基于AutoCAD二次開發(fā)的參數(shù)化設(shè)計與繪圖命令,用于圓錐和圓柱體組合建模時處于一般位置的情況,但與一些相關(guān)文獻(xiàn)對同類情況的具體數(shù)學(xué)模型在坐標(biāo)系的選擇及表達(dá)式的建立上具體方法有所區(qū)別,幾何意義更為明顯,在應(yīng)用程序的功能設(shè)計上更為全面,可以繪制其組合體及其相貫線的多面投影視圖、表面展開圖,實現(xiàn)尺寸標(biāo)注,將輸入的初始參數(shù)和其他重要的數(shù)據(jù)寫入數(shù)據(jù)文件,為工程設(shè)計和制圖提供一個有效的工具.
兩個基本回轉(zhuǎn)體相交,其交線只與各自的尺寸和相對位置有關(guān),而與坐標(biāo)系的選擇無關(guān),但呈現(xiàn)的數(shù)學(xué)表達(dá)式在形式上有所不同[2-3].本算法采用兩個附著于圓錐和圓柱的笛卡爾坐標(biāo)系定義各自回轉(zhuǎn)面及其交線,并通過適當(dāng)?shù)淖鴺?biāo)變換將交線分別繪制在各個視圖平面及展開面上.
建立一個笛卡爾坐標(biāo)系O-XYZ,將下圓錐(對頂?shù)纳蠄A錐不顯示)頂點置于坐標(biāo)原點位置,圓錐軸線與Z軸共軸,下圓錐位于XY坐標(biāo)平面下方,向上為正方向;將圓柱體軸線與Y軸同軸,此時圓錐圓柱軸線正交,錐頂點在圓柱軸線上;當(dāng)兩者處于一般位置時(即圓錐面和圓柱面軸線為異面直線),相當(dāng)于改變圓柱面及其坐標(biāo)系的位置,即圍繞X軸旋轉(zhuǎn)β角度,再分別沿著X、Z軸移動Δx和Δz而得到,此時Δz一般應(yīng)為負(fù)值,此時隨同圓柱面移動到新位置的坐標(biāo)系用O1-X1Y1Z1表示,這時X和X1方向仍相同,如圖1所示.
圖1 相交圓柱體、圓錐體、坐標(biāo)系及基本參數(shù)Fig.1 Intersecting cylinder and cone,coordinate systems and basic dimensions
開發(fā)過程基于Visual Lisp集成開發(fā)環(huán)境,用Autolisp語言進(jìn)行程序設(shè)計,并基于對話框輸入初始尺寸和參數(shù),如圖2所示.
圖2 相交圓柱、圓錐參數(shù)輸入對話框Fig.2 Parametric entry dialog box for intersection of a cone and a cylinder
參數(shù)化繪圖命令命名為cone_cyl_intersection,命令功能包括在指定點繪制圓柱、圓錐組合體及其交線的主、俯及左視圖,在各自回轉(zhuǎn)體視圖附近繪制表面展開圖,標(biāo)注各部尺寸,將回轉(zhuǎn)體尺寸、位移參數(shù)及交線參數(shù)數(shù)據(jù)寫入一個Excel文件[5].主程序和繪圖部分程序設(shè)計框圖如圖3所示,在執(zhí)行主程序繪制視圖和展開圖時調(diào)用畫圖子函數(shù),左圖為主程序框圖.
圖3 三視圖繪制的程序框圖Fig.3 Diagram of mutiview drawing program section
2.1 點在構(gòu)造平面上的坐標(biāo)變換
由公式(5)、(7)計算出的交線上點的坐標(biāo),必須經(jīng)過坐標(biāo)變換形成用戶坐標(biāo)系O′-X′Y′Z′的X′Y′構(gòu)造面上的二維坐標(biāo).設(shè)計算出點的坐標(biāo)為P(x,y,z),繪圖起始點的坐標(biāo)為S′(x′0,y′0,z′0),俯、左視圖與繪圖起始點的距離分別為和e1和e2,其轉(zhuǎn)換公式分別為
圓錐面展開圖的繪圖起點可置于主視圖左上方,設(shè)為A′(x′1,y′1,z′1),根據(jù)式(8),其交線展開圖上任意一點與用戶坐標(biāo)系X′軸的夾角,該點可用Autolisp中的函數(shù)(polar A′ω′ρ)來確定.
繪制圓柱面展開圖時,同樣需要把交線上的點P(x,y,z)變換到用戶坐標(biāo)系X′Y′構(gòu)造面上,設(shè)繪制圓柱面展開圖的起始點與S′點在X′、Y′方向的偏移距離分別為e3和e4,根據(jù)公式(7)和(8),坐標(biāo)變換公式為.
2.2 交線連接點的處理
由公式(5)和(7)可以看出,在計算交線上一點時,一次計算出兩個點的坐標(biāo)(公式(5)的z和公式(7)的y1),當(dāng)交線包圍錐頂點時,同時生成的兩條交線分別位于對頂點兩邊的上、下圓錐面上,一般在工程設(shè)計上只保留一側(cè)圓錐面(本文為XY坐標(biāo)面下側(cè))及其交線,所以舍棄掉z>0的交點;當(dāng)交線處于不包圍錐頂點的位置,同時生成的兩個交點將形成兩段交線,由這兩條交線構(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
在程序設(shè)計中,將該繪圖命令命名為cone_cyl_intersection,加載該命令定義程序,輸入命令名后,程序?qū)⒗L制相交圓柱、圓錐體及其交線的三視圖、尺寸標(biāo)注和圓柱、圓錐表面展開圖,同時將原始輸入?yún)?shù)及相貫線坐標(biāo)數(shù)據(jù)寫入數(shù)據(jù)文件.根據(jù)輸入的參數(shù)不同,圖形將反應(yīng)出圓柱、圓錐相交的各種相對位置關(guān)系和對應(yīng)的交線形狀[3].
3.1 軸線平行的情況
兩軸線平行時β=90°,所產(chǎn)生的交線分為包圍錐頂和不包圍錐頂,共軸是包圍錐頂?shù)囊粋€特例.當(dāng)r=25,α=30°,Δx=35,Δz=0時,繪圖結(jié)果如圖5所示為交線包圍錐頂?shù)那闆r;當(dāng)r=25,α=45°,Δx=0,Δz=0時,繪圖結(jié)果如圖6所示共軸的情況;當(dāng)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
當(dāng)β <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
當(dāng)β>90°?r 時,交線通常為一條空間封閉空間曲線,如圖18所示.
圖18 一條交線Fig.18 One intersection line
可以通過更為詳細(xì)的相貫線狀態(tài)分析來創(chuàng)建圓柱、圓錐相交的形態(tài)圖譜,并對每種形態(tài)圖對應(yīng)出初始輸入尺寸和參數(shù),以便設(shè)計和繪圖時有針對性的應(yīng)用[6].
應(yīng)用程序是以圓錐及其附著的坐標(biāo)系O-XYZ為參照來定義圓柱及其附著坐標(biāo)系O1-X1Y1Z1的位置,其一般位置可以通過將圓柱及其固連坐標(biāo)系圍繞X軸旋轉(zhuǎn)一定角度,并分別沿著Z軸和X軸移動一定距離而實現(xiàn),因此不需要使其再圍繞Y和Z軸旋轉(zhuǎn)及沿著Y軸平移的變換,從而簡化了坐標(biāo)點的計算量和程序設(shè)計.
應(yīng)用程序可以通過輸入不同的初始尺寸、參數(shù)來繪制各種相對位置情況下的相交圓柱、圓錐的三視圖.該程序沒有設(shè)計消除隱藏線的功能,在作圖時可以使用Trim(修剪)或Break(打斷)命令進(jìn)行消隱,或打斷后用虛線表達(dá)隱藏線.不同初始參數(shù)的對話框輸入可以通過對DCL對話框文件及Lisp程序參數(shù)輸入及對話框處理的相關(guān)函數(shù)進(jìn)行少量改動來實現(xiàn),以適應(yīng)不同的設(shè)計及制圖的需要.依據(jù)本文提供的相貫線參數(shù)計算公式還可以進(jìn)一步推導(dǎo)出圓柱、圓錐面展開面的相貫線展開公式,從而增加表面展開圖的作圖功能,方便了鈑金圖的繪制.
[1]胡志剛,鄭秋白.相交圓柱表面展開參數(shù)化繪圖命令的Lisp二次開發(fā)[J].河南科技學(xué)院學(xué)報:自然科學(xué)版,2014,42(5):66-71.
[2]侯愛民.偏斜交圓柱圓錐表面展開圖計算機(jī)繪制數(shù)模原理[J].機(jī)械管理開發(fā),2011,121(3):197-198.
[3]高麗華.相交圓柱與圓錐表面展開圖的計算機(jī)繪制[J].機(jī)械設(shè)計與制造工程,2001,30(5):45-46.
[4]江蘇師范學(xué)院數(shù)學(xué)系.解析幾何[M].北京:人民教育出版社,1983:187-208.
[5]胡志剛.大型橢圓形封頭放樣圖參數(shù)化繪圖的Lisp實現(xiàn)[J].河南科技學(xué)院學(xué)報:自然科學(xué)版,2013,41(5):53-57.
[6]儲珺,高滿屯.用形態(tài)圖方法建立圓柱與圓錐相貫圖譜[J].機(jī)械科學(xué)與技術(shù),2003,22(1):63-65.
(責(zé)任編輯:盧奇)
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
國家自然科學(xué)基金(51375149)
胡志剛(1962-),男,江西進(jìn)賢人,副教授.主要從事機(jī)械設(shè)計、CAD及工程圖學(xué)研究.