Users:Geometry Generation/NURBS
From Carat++ Public Wiki
< Users:Geometry Generation(Difference between revisions)
(Created page with "=== Input Example === Example of a complete input block: <pre> !################################################################### !#### NURBS-BLOCK ...") |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | == Curves == | ||
=== Input Example === | === Input Example === | ||
Line 17: | Line 18: | ||
CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 | CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 | ||
!=================================================================== | !=================================================================== | ||
+ | </pre> | ||
+ | |||
+ | == Surfaces == | ||
+ | === Input Example === | ||
+ | Example of a complete input block: | ||
+ | <pre> | ||
+ | !################################################################### | ||
+ | !#### NURBS-BLOCK #### | ||
+ | !################################################################### | ||
NURBS_PATCH 2 : NURBS_2D | NURBS_PATCH 2 : NURBS_2D | ||
CTRL_PTS = CTRL_PTS_DEF 2 | CTRL_PTS = CTRL_PTS_DEF 2 | ||
− | NCTRL = 2 | + | NCTRL = 2 !number of control points starting from 0 in u-direction |
− | MCTRL = 1 | + | MCTRL = 1 !number of control points starting from 0 in v-direction |
− | PDEG = 2 | + | PDEG = 2 !polynomial degree in u-direction |
− | QDEG = 1 | + | QDEG = 1 !polynomial degree in v-direction |
− | UKNOT = 0.0, 0.0, 0.0, 10.0, 10.0, 10.0 | + | UKNOT = 0.0, 0.0, 0.0, 10.0, 10.0, 10.0 !knot vector in u-directin (starts and ends with a multiplicity of p+1) |
− | VKNOT = 0,0,1,1 | + | VKNOT = 0,0,1,1 !knot vector in v-directin (starts and ends with a multiplicity of q+1) |
− | TRIMMING = B_REP 1 | + | TRIMMING = B_REP 1 !(optional) includes a B-Rep description for the surface (Trimmed surface) |
!=================================================================== | !=================================================================== | ||
− | CTRL_PTS_DEF 2 | + | CTRL_PTS_DEF 2 !number of control points |
− | CTRLPT 1 0.0000000000000000e+00 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 | + | CTRLPT 1 0.0000000000000000e+00 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 ! ||==>u |
− | CTRLPT 2 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 | + | CTRLPT 2 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 ! || 1 2 3 |
− | CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 | + | CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 !\ / 4 5 6 |
− | CTRLPT 4 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+00 1.0000000000000000e+00 | + | CTRLPT 4 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+00 1.0000000000000000e+00 ! \/v |
− | CTRLPT 5 1.0000000000000000e+01 1.0000000000000000e+01 1.0000000000000000e+00 7.0710678118654757e-01 | + | CTRLPT 5 1.0000000000000000e+01 1.0000000000000000e+01 1.0000000000000000e+00 7.0710678118654757e-01 ! |
− | CTRLPT 6 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 | + | CTRLPT 6 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 ! |
!=================================================================== | !=================================================================== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
!################################################################### | !################################################################### | ||
!#### TRIMMING #### | !#### TRIMMING #### | ||
!################################################################### | !################################################################### | ||
+ | ! id inner/outer trimming curve id Direction (FALSE means curve direction needs to be reversed for having correct orientation) | ||
B_REP 1 | B_REP 1 | ||
− | B_REP_LOOP 1 0 | + | B_REP_LOOP 1 0 1 TRUE 2 TRUE 3 TRUE 4 TRUE !outer loop (counter clockwise oriented trimming curves) |
+ | !B_REP_LOOP 2 1 5 FALSE 6 TRUE 7 TRUE 8 TRUE !inner loop (clockwise oriented trimming curves) | ||
!################################################################### | !################################################################### | ||
!#### NURBS-BLOCK-PARAMETER #### | !#### NURBS-BLOCK-PARAMETER #### | ||
!################################################################### | !################################################################### | ||
− | NURBS_PATCH_PAR 1 : NURBS_1D | + | NURBS_PATCH_PAR 1 : NURBS_1D !trimming curve within parameter space |
CTRL_PTS = CTRL_PTS_PAR 1 | CTRL_PTS = CTRL_PTS_PAR 1 | ||
NCTRL = 1 | NCTRL = 1 | ||
PDEG = 1 | PDEG = 1 | ||
UKNOT = 0.0000000000e+00, 0.0000000000e+00, 1.0000000000e+01, 1.0000000000e+01 | UKNOT = 0.0000000000e+00, 0.0000000000e+00, 1.0000000000e+01, 1.0000000000e+01 | ||
+ | TRIMMING = [0.000000e+000 1.000000e+000] !(optional) defines active range of the trimming curve | ||
!=================================================================== | !=================================================================== | ||
CTRL_PTS_PAR 1 | CTRL_PTS_PAR 1 | ||
Line 92: | Line 77: | ||
!=================================================================== | !=================================================================== | ||
CTRL_PTS_PAR 2 | CTRL_PTS_PAR 2 | ||
− | CTRLPT_PAR_ID 3 | + | CTRLPT_PAR_ID 3 !reference to control points in parameter space |
CTRLPT_PAR_ID 4 | CTRLPT_PAR_ID 4 | ||
!=================================================================== | !=================================================================== | ||
Line 135: | Line 120: | ||
!=================================================================== | !=================================================================== | ||
!=================================================================== | !=================================================================== | ||
− | CTRL_PTS_PAR_DEF | + | CTRL_PTS_PAR_DEF u v w(optional) weight(optional but requires u, v, and w) |
− | CTRLPT_PAR 1 0.0000000000e+00 0.0000000000e+00 | + | CTRLPT_PAR 1 0.0000000000e+00 0.0000000000e+00 !0.0 0.707 |
CTRLPT_PAR 2 1.0000000000e+01 0.0000000000e+00 | CTRLPT_PAR 2 1.0000000000e+01 0.0000000000e+00 | ||
CTRLPT_PAR 3 1.0000000000e+01 0.0000000000e+00 | CTRLPT_PAR 3 1.0000000000e+01 0.0000000000e+00 | ||
Line 144: | Line 129: | ||
CTRLPT_PAR 7 0.0000000000e+00 1.0000000000e+01 | CTRLPT_PAR 7 0.0000000000e+00 1.0000000000e+01 | ||
CTRLPT_PAR 8 0.0000000000e+00 0.0000000000e+00 | CTRLPT_PAR 8 0.0000000000e+00 0.0000000000e+00 | ||
+ | </pre> | ||
+ | |||
+ | == Volumes == | ||
+ | |||
+ | === Input Example === | ||
+ | |||
+ | Example of a complete input block: | ||
+ | <pre> | ||
+ | !################################################################### | ||
+ | !#### NURBS-BLOCK #### | ||
+ | !################################################################### | ||
+ | NURBS_PATCH 3 : NURBS_3D | ||
+ | CTRL_PTS = CTRL_PTS_DEF 3 | ||
+ | NCTRL = 2 | ||
+ | MCTRL = 1 | ||
+ | LCTRL = 1 | ||
+ | PDEG = 2 | ||
+ | QDEG = 1 | ||
+ | RDEG = 1 | ||
+ | UKNOT = 0, 0, 0, 10, 10, 10 | ||
+ | VKNOT = 0,0,1,1 | ||
+ | WKNOT = 0,0,1,1 | ||
+ | !=================================================================== | ||
+ | CTRL_PTS_DEF 3 | ||
+ | CTRLPT 1 0.0000000000000000e+00 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | CTRLPT 2 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 | ||
+ | CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | CTRLPT 4 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | CTRLPT 5 1.0000000000000000e+01 1.0000000000000000e+01 1.0000000000000000e+00 7.0710678118654757e-01 | ||
+ | CTRLPT 6 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | CTRLPT 7 0.0000000000000000e+00 2.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | CTRLPT 8 2.0000000000000000e+01 2.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 | ||
+ | CTRLPT 9 2.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | CTRLPT 10 0.0000000000000000e+00 2.0000000000000000e+01 1.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | CTRLPT 11 2.0000000000000000e+01 2.0000000000000000e+01 1.0000000000000000e+00 7.0710678118654757e-01 | ||
+ | CTRLPT 12 2.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 | ||
+ | !=================================================================== | ||
</pre> | </pre> |
Latest revision as of 15:41, 8 December 2016
Contents |
Curves
Input Example
Example of a complete input block:
!################################################################### !#### NURBS-BLOCK #### !################################################################### NURBS_PATCH 1 : NURBS_1D CTRL_PTS = CTRL_PTS_DEF 1 NCTRL = 2 PDEG = 2 UKNOT = 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 3.1415926535897931e+01, 3.1415926535897931e+01, 3.1415926535897931e+01 !=================================================================== CTRL_PTS_DEF 1 CTRLPT 1 0.0000000000000000e+00 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 2 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 !===================================================================
Surfaces
Input Example
Example of a complete input block:
!################################################################### !#### NURBS-BLOCK #### !################################################################### NURBS_PATCH 2 : NURBS_2D CTRL_PTS = CTRL_PTS_DEF 2 NCTRL = 2 !number of control points starting from 0 in u-direction MCTRL = 1 !number of control points starting from 0 in v-direction PDEG = 2 !polynomial degree in u-direction QDEG = 1 !polynomial degree in v-direction UKNOT = 0.0, 0.0, 0.0, 10.0, 10.0, 10.0 !knot vector in u-directin (starts and ends with a multiplicity of p+1) VKNOT = 0,0,1,1 !knot vector in v-directin (starts and ends with a multiplicity of q+1) TRIMMING = B_REP 1 !(optional) includes a B-Rep description for the surface (Trimmed surface) !=================================================================== CTRL_PTS_DEF 2 !number of control points CTRLPT 1 0.0000000000000000e+00 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 ! ||==>u CTRLPT 2 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 ! || 1 2 3 CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 !\ / 4 5 6 CTRLPT 4 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+00 1.0000000000000000e+00 ! \/v CTRLPT 5 1.0000000000000000e+01 1.0000000000000000e+01 1.0000000000000000e+00 7.0710678118654757e-01 ! CTRLPT 6 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 ! !=================================================================== !################################################################### !#### TRIMMING #### !################################################################### ! id inner/outer trimming curve id Direction (FALSE means curve direction needs to be reversed for having correct orientation) B_REP 1 B_REP_LOOP 1 0 1 TRUE 2 TRUE 3 TRUE 4 TRUE !outer loop (counter clockwise oriented trimming curves) !B_REP_LOOP 2 1 5 FALSE 6 TRUE 7 TRUE 8 TRUE !inner loop (clockwise oriented trimming curves) !################################################################### !#### NURBS-BLOCK-PARAMETER #### !################################################################### NURBS_PATCH_PAR 1 : NURBS_1D !trimming curve within parameter space CTRL_PTS = CTRL_PTS_PAR 1 NCTRL = 1 PDEG = 1 UKNOT = 0.0000000000e+00, 0.0000000000e+00, 1.0000000000e+01, 1.0000000000e+01 TRIMMING = [0.000000e+000 1.000000e+000] !(optional) defines active range of the trimming curve !=================================================================== CTRL_PTS_PAR 1 CTRLPT_PAR_ID 1 CTRLPT_PAR_ID 2 !=================================================================== !################################################################### !#### NURBS-BLOCK-PARAMETER #### !################################################################### NURBS_PATCH_PAR 2 : NURBS_1D CTRL_PTS = CTRL_PTS_PAR 2 NCTRL = 1 PDEG = 1 UKNOT = 0.0000000000e+00, 0.0000000000e+00, 1.0000000000e+01, 1.0000000000e+01 !=================================================================== CTRL_PTS_PAR 2 CTRLPT_PAR_ID 3 !reference to control points in parameter space CTRLPT_PAR_ID 4 !=================================================================== !################################################################### !#### NURBS-BLOCK-PARAMETER #### !################################################################### NURBS_PATCH_PAR 3 : NURBS_1D CTRL_PTS = CTRL_PTS_PAR 3 NCTRL = 1 PDEG = 1 UKNOT = 0.0000000000e+00, 0.0000000000e+00, 10, 10 !=================================================================== CTRL_PTS_PAR 3 CTRLPT_PAR_ID 5 CTRLPT_PAR_ID 6 !=================================================================== !################################################################### !#### NURBS-BLOCK-PARAMETER #### !################################################################### NURBS_PATCH_PAR 4 : NURBS_1D CTRL_PTS = CTRL_PTS_PAR 4 NCTRL = 1 PDEG = 1 UKNOT = 0.0000000000e+00, 0.0000000000e+00, 1.0000000000e+01, 1.0000000000e+01 !=================================================================== CTRL_PTS_PAR 4 CTRLPT_PAR_ID 7 CTRLPT_PAR_ID 8 !=================================================================== !################################################################### !#### NURBS-BLOCK-PARAMETER #### !################################################################### NURBS_PATCH_PAR 5 : NURBS_1D CTRL_PTS = CTRL_PTS_PAR 5 NCTRL = 1 PDEG = 1 UKNOT = 0.0000000000e+00, 0.0000000000e+00, 10, 10 !=================================================================== CTRL_PTS_PAR 5 CTRLPT_PAR_ID 9 CTRLPT_PAR_ID 10 !=================================================================== !=================================================================== CTRL_PTS_PAR_DEF u v w(optional) weight(optional but requires u, v, and w) CTRLPT_PAR 1 0.0000000000e+00 0.0000000000e+00 !0.0 0.707 CTRLPT_PAR 2 1.0000000000e+01 0.0000000000e+00 CTRLPT_PAR 3 1.0000000000e+01 0.0000000000e+00 CTRLPT_PAR 4 1.0000000000e+01 1.0000000000e+01 CTRLPT_PAR 5 1.0000000000e+01 1.0000000000e+01 CTRLPT_PAR 6 0.0000000000e+00 1.0000000000e+01 CTRLPT_PAR 7 0.0000000000e+00 1.0000000000e+01 CTRLPT_PAR 8 0.0000000000e+00 0.0000000000e+00
Volumes
Input Example
Example of a complete input block:
!################################################################### !#### NURBS-BLOCK #### !################################################################### NURBS_PATCH 3 : NURBS_3D CTRL_PTS = CTRL_PTS_DEF 3 NCTRL = 2 MCTRL = 1 LCTRL = 1 PDEG = 2 QDEG = 1 RDEG = 1 UKNOT = 0, 0, 0, 10, 10, 10 VKNOT = 0,0,1,1 WKNOT = 0,0,1,1 !=================================================================== CTRL_PTS_DEF 3 CTRLPT 1 0.0000000000000000e+00 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 2 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 CTRLPT 3 1.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 4 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 5 1.0000000000000000e+01 1.0000000000000000e+01 1.0000000000000000e+00 7.0710678118654757e-01 CTRLPT 6 1.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 7 0.0000000000000000e+00 2.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 8 2.0000000000000000e+01 2.0000000000000000e+01 0.0000000000000000e+00 7.0710678118654757e-01 CTRLPT 9 2.0000000000000000e+01 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 10 0.0000000000000000e+00 2.0000000000000000e+01 1.0000000000000000e+00 1.0000000000000000e+00 CTRLPT 11 2.0000000000000000e+01 2.0000000000000000e+01 1.0000000000000000e+00 7.0710678118654757e-01 CTRLPT 12 2.0000000000000000e+01 0.0000000000000000e+00 1.0000000000000000e+00 1.0000000000000000e+00 !===================================================================
Whos here now: Members 0 Guests 0 Bots & Crawlers 1 |