美文网首页
第一篇 PCl语言入门

第一篇 PCl语言入门

作者: 板栗_1c34 | 来源:发表于2019-06-13 09:47 被阅读0次

    1.PCL语言简介

          PCL (Parametric Components Language)  由于Power Civil 和MicroStation的实体参数化功能较弱,为方便实现结构物的三维参数化,我们定义了一种描述语言,暂定名为PCL (Parametric Component Language),并在MicroStation平台上开发了相应的语言解释器,以实现结构体的参数化。

          参数化构件的原理是:首先实现二维轮廓的参数化,由二维轮廓通过拉伸、扫描等方法形成参数化构件,再由构件通过组合、并交差、排列、变换等操作形成复杂构件或组件。由此可知,一个参数化构件的主要参数是其轮廓几何参数、高度参数、定位参数等,而由这些参数组成的构件或组件,为保证其相互关系,就必须注意建立其参数关系,在PCL 里是通过参数传递、共用和表达式等方式来建立的。

    1.1 PCL语言的语法

        1-[Assemnly]

    PCL语言的格式:结构体分为三个层次:Element、构件Component和组件Assembly,

    Element 定义二维参数化图元。图元

    Component 定义三维参数化构件。构件

    Assembly定义三维参数化组装体。组件

        2-ID=paZST​   

          ID是关键字,“paZST”是定义的该对象的标识字符串,可以任意定义,但不能和其他对象重复。在其他对象要引用该对象时,也必须通过该ID来调用。​   

        3-Name=柱式台

        该对象的中文名称,可以与其他对象相同,但建议不要这样。

        4-Kind=1

         有意利用该关键字制定对象的类型,但尚未使用,可无。

         5-Unite=m

         参数的单位,原打算指定变量的单位,现该字段未使用,变量全部单位为m。   

        6-Type=PointPositioning

        对象的生成方式,常用的有以下:(Microstation中的实体建模的功能)

       1. PointPositioning——定位组合  (移动命令)

       2. MatrixDistributing———排列 (阵列命令)

       3. Loop——循环  单个T梁并排方式

       4. SolidByExtrusion———拉伸体 (拉伸命令) 常用来做有角度的拉伸

       5. LoftSolid——放样体 (放样命令) 生成体

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

       7. Sweep——扫描体 (扫描命令) 一个面沿着一个路径生成体

       8. Intersect——求交  布尔运算

       9. Subtract—实体相减

       10. Unite——实体相加

       11. UniteSubtract——实体相加后相减

       12. ChamferRound——倒圆角 找要倒角的边的代号

       13. Chamfer—倒直角

       14. Cell——一点定位单元 在PCL中调用单元

       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)

        该对象所需要的参数以及出事的默认值,格式必须严格遵守且必须为应为格式的标点符号,否则会导致报错甚至崩溃。例如:立方体参数:长(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作为前缀,"="后面的是调用的对象名称及其参数,参数的顺序可以任意,但是参数应该是定位点如P0,P1或调用对象所需要的参数。示例中L、W、H是调用的对象_pcBlock所需要的参数(即_pcBlock中Variable定义的参数),“()”里传入参数值,此处的参数值可以是具体的数值(即代替被调用对象的变量初值),也可以是此对象要传入给被调用对象(_pcBlock的L变量等于本对象定义的L变量,H(-H1)意思是:_pcBlock的H变量等于本对象的—H1。

    1.2 PCL语言的编写流程

    1、确定构件的组成部分与形成方式

        例如桥墩的组成部分大致分为:1、盖梁;2、支座垫石;3、墩身;4、基础(基础可分为扩大基础、承台桩基础等形式)

    2、Element二维图元的定义

         二维图元主要定义的是一个封闭轮廓或路径线,改图元克位于XY、YZ或ZX平面,所有二维图元都应是调用底层对象__pePlolygon和 _pePolyline _。

    (1)_pePolygon

         该对象定义由直线组成的连续或者连续线构成的封闭轮廓,如果Close=1则生成封闭的填充区域图元,缺省Close=1,拉伸实体必须是填充的封闭区域。( 不支持圆弧)

    [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 平面上的坐标,包含的点数是不受限制的,N作为坐标结束的标志,其值为点数,但程序不实际检查该值。 2)一般按照逆时针定义点的坐标。 3)以上点的定义全部是采用绝对坐标定义,即都是相对于(0,0)点。

    (2)_pePolyline

          该对象定义由直线和圆弧组成的多义线或多义线组成的封闭轮廓,如果close=1则生成粉笔的填充区域图元,缺省close=1,拉伸实体必须是填充的封闭区域。

    [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 平面上的坐标,包含的点数是不受限制的,N作为坐标结束的标志,其值为点数,但程序不实际检查该值。

    2)B是每点的凸度值,同AutoCAD多义线中对凸度的定义,

    相关文章

      网友评论

          本文标题:第一篇 PCl语言入门

          本文链接:https://www.haomeiwen.com/subject/bucjfqtx.html