A Profile is a planar region surrounded by an outer boundary, and optionally containing inner 'hole' boundaries. It is not legal for holes to intersect each other or the outer boundary. A boundary is a close set of curves.
Parameter Rules
boundary: | An array of CurveTo objects. It recommended that they be connected in a counter-clockwise (about the +Z axis) direction. |
Example: | var myRadius = 1; |
var myHeight = 3; |
var myLength = 10; |
var baseX = 0; |
var baseY = 5; |
return [ |
{op: 'moveTo', x1: baseX, y1: baseY}, |
{op: 'lineTo', x1: baseX, y1: baseY+myHeight-myRadius}, |
{op: 'quadraticCurveTo', x1: baseX, y1: baseY+myHeight, x2: myRadius, y2:baseY+myHeight}, |
{op: 'lineTo', x1: baseX+myLength-myRadius, y1: baseY+myHeight}, |
{op: 'quadraticCurveTo', x1: baseX+myLength, y1: baseY+myHeight, x2: baseX+myLength , y2:baseY+myHeight-myRadius }, |
{op: 'lineTo', x1: baseX+myLength, y1: baseY}, |
{op: 'lineTo', x1: baseX, y1: baseY} |
]; |
boundaryPolygon: | An array of co-planar Points. It recommended that they be connected in a counter-clockwise (about the +Z axis) direction. |
Example: | return[p(0,0,0), |
p(0,3,0), |
p(10,3,0), |
p(10,0,0), |
p(0,0,0)]; |
holePolygons: | An array of arrays of co-planar Points. It recommended that they be connected in a clockwise (about the +Z axis) direction. |
Example: | return [[p(0.5,0.5,0),p(0.5,2.5,0),p(2.5,2.5,0),p(2.5,0.5,0),p(0.5,0.5,0)], |
[p(6.5,0.5,0),p(6.5,2.5,0),p(8.5,2.5,0),p(8.5,0.5,0),p(6.5,0.5,0)]]; |
//Needs to be an array of arrays |
//[[holePoints],[holePoints]] |
hole: | An array of arrays of CurveTo objects. It recommended that they be connected in a clockwise (about the +Z axis) direction. |
Example: | var baseY = 5; |
return [[{op: 'moveTo', x1: 0.5, y1: baseY+.5}, |
{op: 'lineTo', x1: 0.5, y1: baseY+2.5}, |
{op: 'lineTo', x1: 2.5, y1: baseY+2.5}, |
{op: 'lineTo', x1: 2.5, y1: baseY+.5}, |
{op: 'lineTo', x1: 0.5, y1: baseY+.5}], |
[{op: 'moveTo', x1: 6.5, y1: baseY+.5}, |
{op: 'lineTo', x1: 6.5, y1: baseY+2.5}, |
{op: 'lineTo', x1: 8.5, y1: baseY+2.5}, |
{op: 'lineTo', x1: 8.5, y1: baseY+.5}, |
{op: 'lineTo', x1: 6.5, y1: baseY+.5}]]; |
areaProps: | Returns { area: <number>, centroid: <Point> } ...Not a Parameter. |
Example: | {"area":30,"centroid":{"x":5,"y":1.5,"z":0}} |
Mixins
ProfileRenderMixin
RULE NAME |
TYPE |
DEFAULTS |
CATEGORY |
FLAGS |
---|---|---|---|---|
boundary |
array |
R.polygonToCurveTo(this.boundary2d) |
Inputs |
Cached |
boundaryPolygon |
array |
[] |
Inputs |
Cached |
holePolygons |
array |
[] |
Inputs |
Cached |
hole |
array |
this.holes2d.map(h => R.polygonToCurveTo(h)) |
Inputs |
Cached |
areaProps |
any |
R.THREE.areaProps(this.meshData) |
Internal |
Cached |
Project Example:
In your kBridge Examples Projects folder open the project called ‘Profile Example’.
Reference Location:
'world.profile_example.profilewithhole.myprofile1'
Link: https://knowledgebridge.engineer/projects
Open the Profile Example project.
If you look at Profile_Example/ProfileWithHole/myProfile1, the 2 parameter used are boundaryPolygon and holePolygons.
If you look at Profile_Example/ProfileWithHole/myProfile2, the 2 parameter used are boundary and holes. By using these 2 parameters you can
create curved corners.