Users:Geometry Generation/NURBS
From Carat++ Public Wiki
(Difference between revisions)
Line 30: | Line 30: | ||
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 !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 #### |
Revision as of 15:31, 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 !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 CTRL_PTS = CTRL_PTS_PAR 1 NCTRL = 1 PDEG = 1 UKNOT = 0.0000000000e+00, 0.0000000000e+00, 1.0000000000e+01, 1.0000000000e+01 !=================================================================== 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 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 CTRLPT_PAR 1 0.0000000000e+00 0.0000000000e+00 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 |