Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The information model was built as a gello_model and an XSD schema.

Here is the gello_model:



Package OntoEngineering
Imports iso_21090_datatypes

    class Geometry extends Any
      name: String
      code: CD -- square, rectangle, circle, triangle, cylinder, cone, sphere, line , cube, cuboid
      area: PQ   --derived
      width: PQ
      length: PQ
      height: PQ
      volume: PQ  --derived
      radius: PQ
      circumference: PQ
      describingFunction: String
 --all horizontal relationships done up to here

    class BuiltThing extends Any
      code: CD
      hasGeometry: Sequence(Geometry)
      hasBehaviour: Behaviour
      hasRole: Role
      component: Sequence(Component)
      tensileStrength: PQ
      btArea: PQ
      btWidth: PQ
      btLength: PQ
      btVolume: PQ
      btRadius: PQ
      btCircumference: PQ
      btFluxEmmission: PQ
      spaceType: CD  -- negative, positive, negAndPos
      constructionMaterial: CD  -- wood, steel
      constructionMethod: CD  --  extruded, printed, cast, milled
      elasticity: PQ

    class Part extends BuiltThing
      partID: String
      usedWith: Sequence(Part)

    class Behaviour extends Any

    class Role extends Any
      participant1: Part
      participant2: Part
      roleType: CD -- fasten, support, join

    class Component extends Part
      componentID: String

    class Fastener extends Part  --reference https://fastenerengineering.com/what-are-pins/
      type: CD  --mechanical, electromagnetic, adhesive

    class Pin extends Fastener
      pinType: CD -- dowel, slotted, coiled (spiral), grooved, split, cotter
      chamfer: Chamfer

    class Chamfer extends Any
      angle: PQ
      chamferLength: PQ
      turnOffDistance: PQ
      chamferLocation: CD  -- proximal, distal

    class SpringPin extends Pin  --new
      springStrength: PQ

    class SlottedPin extends SpringPin
      sheetRevolutionDeg: PQ
      compressionTolerance: PQ

    class CoiledPin extends SpringPin
        -- sheetRevolutionDeg > 360 deg

    class GroovedPin extends Pin
      grooveNumber: Integer  --usually 3    -- done
      groove: Sequence(Component)

    class CotterPin extends Any
      taper: Geometry

    class SplitPin extends Pin
      end: Sequence(Component)

    class Bush extends Part
      -- spaceType = negative
      interferenceMeasure: PQ
      chamfer: Chamfer

    class InfrastructureRoot extends Any
       builtThing: Sequence(BuiltThing)

EndPackage

...

A xml file was created that accords with the model:. The OIDs in the CD's codeSystem and the codeSystemName attributes in this example and the next are made up.


<GroovedPin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <type
        code="5336670848"
        codeSystem="2.16.840.1.113883.6.8"
        codeSystemName="OntoEValueDomain">
        <displayName value = "Mechanical" />
    </type>
    <pinType
        code="9377156411"
        codeSystem="2.16.840.1.113883.6.8"
        codeSystemName="OntoEValueDomain">
        <displayName value = "Grooved Pin" />    
    </pinType>
    <partID value = '6787982-A'/>
    <hasGeometry> 
            <code
                code="7573194557"
                codeSystem="2.16.840.1.113883.6.8"
                codeSystemName="OntoEValueDomain">
                <displayName value = "Cylinder"/>
            </code>
    </hasGeometry>
    <spaceType
            code="8494431267"
            codeSystem="2.16.840.1.113883.6.8"
            codeSystemName="OntoEValueDomain">
            <displayName value = "PositiveSpace"/>    
    </spaceType>
    <btLength xsi:type = "PQ" value = "100" unit = "mm" />
    <btRadius xsi:type = "PQ" value = "10" unit = "mm" />
    <hasRole>
        <roleType code="4514449250"
                  codeSystem="2.16.840.1.113883.6.8"
                  codeSystemName="OntoEValueDomain">
                  <displayName value = "Fasten"/>
    </roleType>
    </hasRole>
    <usedWith>
        <partID value = '89u207-F'/>
        <code
            code="7715218853"
            codeSystem="2.16.840.1.113883.6.8"
            codeSystemName="OntoEValueDomain">
            <displayName value = "Bush"/>
        </code>
    </usedWith>
    <component>
        <componentID value = 'Groove1'/>
        <hasGeometry> 
            <code
                code="7573194557"
                codeSystem="2.16.840.1.113883.6.8"
                codeSystemName="OntoEValueDomain">
                <displayName value = "Cylinder"/>
            </code>
        </hasGeometry>
        <spaceType
            code="8999051355"
            codeSystem="2.16.840.1.113883.6.8"
            codeSystemName="OntoEValueDomain">
            <displayName value = "NegativeSpace"/>    
        </spaceType>
        <btLength xsi:type = "PQ" value = "75" unit = "mm" />
        <btRadius xsi:type = "PQ" value = "4" unit = "mm" />
    </component>

    
    <grooveNumber value = '1' />
</GroovedPin>

...