Users:Geometry Generation/NURBS

From Carat++ Public Wiki
(Difference between revisions)
Jump to: navigation, search
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   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                    ####

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
 
Personal tools
Content for Developers