Users:Geometry Generation/NURBS
From Carat++ Public Wiki
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 |