Users:Geometry Generation/NURBS

From Carat++ Public Wiki
< Users:Geometry Generation(Difference between revisions)
Jump to: navigation, search
(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 !
 
!===================================================================
 
!===================================================================
 
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
 
!===================================================================
 
 
 
!###################################################################
 
!###################################################################
 
!####                        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   1   TRUE   2  TRUE  3  TRUE  4  TRUE
+
  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
 
Personal tools
Content for Developers