bSI-InfraRoom / IFC-Tunnel-Deployment

The IFC Tunnel Deployment documentation, examples and discussions
8 stars 32 forks source link

IfcPolyline / IfcPolynomialCurve for guidelines? #167

Closed ivaroppen closed 1 year ago

ivaroppen commented 1 year ago

I have tested several curves for parametric description of the guideline parameter along the peg number axis.

It has been found a 5-order polynomial curve provide superb accuracy (better than 1 micro meter in my test case: A T9.5 to T12.5 over 10m).

I need some advice on how to output the curve to the ifc file:

Currently I am creating a IfcPolyline from the control points. In this manner the user of the file can fit a curve of own choice, or use a simple linear interpolation on the control points….

An alternative would be to create a IfcPolynomialCurve?

SergejMuhic commented 1 year ago

@ivaroppen I am not sure I understand what the scenario is. I also need some more information on what you are trying to achieve. Could you provide a little more context?

I am also not sure if you are using "control points" in the notion of a IfcBSplineCurve or if these have some other meaning because in that case you might want to look at bspline definitions.

An IfcPolynomialCurve is a parametric representation of a polynomial in a particular axis placement so yes, a 5th-order polynomial is definitely possible. It just does not come with explicit points like IfcPolyline.

First thing is first though, a bit more context would be very welcome.

ivaroppen commented 1 year ago

BeverControl_Detail The cyan lines are the guide lines. Control points are producer (creator of the ifc file) calculated values along these lines. The producer is assumed to calulate these values with high accuracy. Each cyan line will produce 3 curves in the curveset of the ifc file: side offset, height offset and radius.

image The cross section is calulated at an arbitrary peg by evaluating the side offset, height offset and radius guide lines in P1, P2, P3, P4


For each parameter as a guide line we try to fit a paramteric curve:

The first try was to fit a Bezier spline. This was abandoned because the Bezier, by nature, does not go through the control points. Wikipedia has a nice animation on Bezier curves....

As a result, a polynomial curve was selected. Standard maths was used to fit the polynomial to these values. For a 5-order polynomial excellent accuracy was achieved :

$x = peg - pegStartOfTransition$ $y = k_0 + k_1 x + k_2 x^2 + k_3 x^3 + k_4 x^4 + k_5 * x^5$

The question is: Should I put the coefficients of the polynomial into the ifc file, ie. IfcPolynomialCurve, or should I put the peg numbers and calculated correct values (control points) into the ifc file as IfcPolyline?


Another question: I see the guided sweep has been merged into the schema, and the schema is built successfully. However, I still can not find it in the documentation at the link in your FAQ. Is there a separate build for the documentation which has not been executed yet?

pjanck commented 1 year ago

Is there a separate build for the documentation which has not been executed yet?

Correct, this is done separately. We are, however, close to having it updated - bear with us.

ivaroppen commented 1 year ago

Superceeded by #179