第一篇 PCl語言入門

1.PCL語言簡介

????? PCL (Parametric Components Language)? 由于Power Civil 和MicroStation的實體參數(shù)化功能較弱,為方便實現(xiàn)結(jié)構物的三維參數(shù)化,我們定義了一種描述語言,暫定名為PCL (Parametric Component Language),并在MicroStation平臺上開發(fā)了相應的語言解釋器,以實現(xiàn)結(jié)構體的參數(shù)化。

????? 參數(shù)化構件的原理是:首先實現(xiàn)二維輪廓的參數(shù)化,由二維輪廓通過拉伸、掃描等方法形成參數(shù)化構件,再由構件通過組合、并交差、排列、變換等操作形成復雜構件或組件。由此可知,一個參數(shù)化構件的主要參數(shù)是其輪廓幾何參數(shù)、高度參數(shù)、定位參數(shù)等,而由這些參數(shù)組成的構件或組件,為保證其相互關系,就必須注意建立其參數(shù)關系,在PCL 里是通過參數(shù)傳遞、共用和表達式等方式來建立的。

1.1 PCL語言的語法

??? 1-[Assemnly]

PCL語言的格式:結(jié)構體分為三個層次:Element、構件Component和組件Assembly,

Element 定義二維參數(shù)化圖元。圖元

Component 定義三維參數(shù)化構件。構件

Assembly定義三維參數(shù)化組裝體。組件

? ? 2-ID=paZST?? ?

????? ID是關鍵字,“paZST”是定義的該對象的標識字符串,可以任意定義,但不能和其他對象重復。在其他對象要引用該對象時,也必須通過該ID來調(diào)用。?? ?

??? 3-Name=柱式臺

? ? 該對象的中文名稱,可以與其他對象相同,但建議不要這樣。

??? 4-Kind=1

???? 有意利用該關鍵字制定對象的類型,但尚未使用,可無。

???? 5-Unite=m

???? 參數(shù)的單位,原打算指定變量的單位,現(xiàn)該字段未使用,變量全部單位為m。? ?

??? 6-Type=PointPositioning

? ? 對象的生成方式,常用的有以下:(Microstation中的實體建模的功能)

?? 1. PointPositioning——定位組合? (移動命令)

?? 2. MatrixDistributing———排列 (陣列命令)

?? 3. Loop——循環(huán)? 單個T梁并排方式

?? 4. SolidByExtrusion———拉伸體 (拉伸命令) 常用來做有角度的拉伸

?? 5. LoftSolid——放樣體 (放樣命令) 生成體

?? 6. LoftSurface——放樣面 (放樣命令) 生成面

?? 7. Sweep——掃描體 (掃描命令) 一個面沿著一個路徑生成體

?? 8. Intersect——求交? 布爾運算

?? 9. Subtract—實體相減

?? 10. Unite——實體相加

?? 11. UniteSubtract——實體相加后相減

?? 12. ChamferRound——倒圓角 找要倒角的邊的代號

?? 13. Chamfer—倒直角

?? 14. Cell——一點定位單元 在PCL中調(diào)用單元

?? 15. CellProfileSolid——單元輪廓體 ?

7-Variable=B(12.19);i1(0.02);i2(-0.02);tw(1.);b(0.02);c(0.01);d(1);dx(3.5);nx(3)

? ? 該對象所需要的參數(shù)以及出事的默認值,格式必須嚴格遵守且必須為應為格式的標點符號,否則會導致報錯甚至崩潰。例如:立方體參數(shù):長(L)、寬(W)、高(H)———Variable=L(1);W(1);H(1);

8-Pivot=P0(0,0,0);P 1(0,-tw+b+c+d/2,-H-i1*B/4+i2*B/4)

?? 該對象的定位點,可以有多個;實際是相對插入點的偏移值可以由變量或者變量表達式組成,但變量必須是Variable中定義的變量。

如:P0(0,0,0);P1(0,W/2-1,H+2)? ?

9-Part1=_pcAbutmentCap(B(B);H(H);dw(0.2);dw0(0.2);dtw0(0.4);dtw(0.3);dth(0.8);zd0(0.2);zd1(0.2);d0(0.);d1(0);i1(i1);i2(i2);W(1.2);tw(tw);bqw(0.5);t(0.39);@Rx(90))

Part2=_pcGroupColunm(P0(P1);D(d);dx(dx);pd(i1/2+i2/2);@i(0);@n(nx))

??????? 該對象的構件組成,關鍵字必須是Element或Part作為前綴,"="后面的是調(diào)用的對象名稱及其參數(shù),參數(shù)的順序可以任意,但是參數(shù)應該是定位點如P0,P1或調(diào)用對象所需要的參數(shù)。示例中L、W、H是調(diào)用的對象_pcBlock所需要的參數(shù)(即_pcBlock中Variable定義的參數(shù)),“()”里傳入?yún)?shù)值,此處的參數(shù)值可以是具體的數(shù)值(即代替被調(diào)用對象的變量初值),也可以是此對象要傳入給被調(diào)用對象(_pcBlock的L變量等于本對象定義的L變量,H(-H1)意思是:_pcBlock的H變量等于本對象的—H1。


1.2 PCL語言的編寫流程

1、確定構件的組成部分與形成方式

??? 例如橋墩的組成部分大致分為:1、蓋梁;2、支座墊石;3、墩身;4、基礎(基礎可分為擴大基礎、承臺樁基礎等形式)

2、Element二維圖元的定義

???? 二維圖元主要定義的是一個封閉輪廓或路徑線,改圖元克位于XY、YZ或ZX平面,所有二維圖元都應是調(diào)用底層對象__pePlolygon和 _pePolyline _。

(1)_pePolygon

???? 該對象定義由直線組成的連續(xù)或者連續(xù)線構成的封閉輪廓,如果Close=1則生成封閉的填充區(qū)域圖元,缺省Close=1,拉伸實體必須是填充的封閉區(qū)域。( 不支持圓?。?/b>

[Element]

ID=_pePolygon

Name=多邊形

Type=Polygon

Unit=m

Variable=close(1);X0(0);Y0(0);X1(0);Y1(0.40);X2(0.08);Y2(0.40);N(3)

Provit=P0(0,0,0)

說明:

1)Variable里包含坐標必須是XY、YZ或ZX 平面上的坐標,包含的點數(shù)是不受限制的,N作為坐標結(jié)束的標志,其值為點數(shù),但程序不實際檢查該值。 2)一般按照逆時針定義點的坐標。 3)以上點的定義全部是采用絕對坐標定義,即都是相對于(0,0)點。

(2)_pePolyline

????? 該對象定義由直線和圓弧組成的多義線或多義線組成的封閉輪廓,如果close=1則生成粉筆的填充區(qū)域圖元,缺省close=1,拉伸實體必須是填充的封閉區(qū)域。

[Element]ID=_pePolylineName=復雜鏈Type=PolylineUnit=mVariable=close(1);X0(0);BY0(0);X1(0);Y1(0.40);X2(0.08);Y2(0.40);N(3)Provit=P0(0,0,0)

說明:

1)Variable里包含坐標必須是XY、YZ或ZX 平面上的坐標,包含的點數(shù)是不受限制的,N作為坐標結(jié)束的標志,其值為點數(shù),但程序不實際檢查該值。

2)B是每點的凸度值,同AutoCAD多義線中對凸度的定義,

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容