the pioneers of offshore engineering - plm …€¦ · the pioneers of offshore engineering ......
TRANSCRIPT
THE PIONEERS OF OFFSHORE ENGINEERING• Presentation date:
• Presenter Name: Frederik Vanhee
• Room name: Cannes
• Presentation Title: Using NX Open to adapt NX CAE to our working methods.
TABLE OF CONTENTS1. Who we are and what we do
2. Background to our working method
3. NX Open examples
WHO WE AREAND WHAT WE DO
• Engineering firm in the offshore industry
• Basic design of:
• Jack-up (picture courtesy of Maersk drilling)
• Semi-submersible (column stabilized unit) (picture courtesy of Floatel)
• Vessel (picture courtesy of Noble Drilling)
• Offshore crane (picture courtesy of A2SEA)
OUR MODELS• Sheet body geometry with „common edges“
• Shell meshes with beam elements
• Coarse meshes for overall/global hull
OUR WORKING METHODWHY CLICK IF YOU CAN SCRIPT• Combine basic building blocks into a customized FEA analysis
• Efficient while maintaining flexibility
• Building blocks:
• Siemens NX and other commercial software
• In-house programs
• Small scripts (journals) running specific tasks
• Advantages of scripting:
• Efficiency
• Re-use of code
• Traceability
• Error tracing / model checking
• Running in batch mode
COMMON TASKSPRE - PROCESSING
Mesh
•Shell meshes with beam elements
•Some tools to make life easier
Loads
•From external hydrodynamics calculations (in & out phase)
•Mass distribution (excel)
•Legloads (in-house, via excel)
•Pressures
•…
Boundary conditions (BC)
•Depending on operational condition
Solution with subcases
•Generate subcases
•Assign loads and BC
Extract
MeshGustoMSC
compiled class
COMMON TASKSPOST - PROCESSING
Export results
•Universal file format (Structural Dynamics Research Corporation)
External processing
•Maximum stresses over phase angle
•Buckling verification according offshore codes
•Fatigue damage calculation
Import results
•Universal file format
Post processing
•Combining subcases
•Maximum over subcases/solutions
•Envelope of direct results and results form external post-processing
•Stress and other results plots
Sort resultsExport
universal file
Export
universal file
GUSTOMSC EXTRACT MESHBACKGROUND
• NX shell mesher performs best if entire model is meshed in one operation.
• Only one mesh and as a result 1 plate thickness.
• Extract functionality is element based and loses associativity
GUSTOMSC EXTRACT MESH• Mesh entire model in one operation
• Use GustoMSC extract mesh to create separate meshes for different plate thicknesses
• Advantage:
• Good mesh due to single initial mesh operation
• Separate meshes for plate thickness assignment
• Associativity
GUSTOMSC COMPILED CLASSBACKGROUND
• Typical journal process:
• Record journal
• Modify code in journal to function or sub
• Call function several times in Main()
• One journal file per „functionality“
alternative: template journal with all GustoMSC functions at the bottom
• How do we keep track of journals
• Avoid remaking the same functionality
• Improve existing functionality
GUSTOMSC COMPILED CLASS• GustoMSC compiled class is a .dll containing all GustoMSC functions.
• User gets access to these function in every journal by late binding
• Also works in batch mode
• Advantages:
• Small step up
• Clean journal files
• User has latest up to date functionality
• Continious improvement of existing functionality
GUSTOMSC EXPORT UNIVERSAL FILE
• We have legacy stand-alone post-processing programs for buckling, fatigue, ...
• Take universal file as input and return as output
• Standard NX functionality not sufficient
• GustoMSC export universal file from NX
• No need to change our internal (legacy) programs
• Seamless transition from Ideas
GUSTOMSC SORT RESULTS• Some Sorting/envelope of results used in almost all analyses
• Similar functionality as the standard NX functionality
• Available as script
Dim SolutionNumbers() As Integer = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Dim LoadcaseNumbers() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
Dim IterationNumbers() As Integer = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Dim ResultNumbers() As Integer = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}
Dim Component As CAE.Result.Component= CAE.Result.Component.VonMises
Dim operation As CAE.ResultsEnvelopeBuilder.Operation = CAE.ResultsEnvelopeBuilder.Operation.Maximum
Dim name As String = "Maximum_VonMises"
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.VonMises, CAE.ResultsEnvelopeBuilder.Operation.Maximum, name)
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.VonMises, CAE.ResultsEnvelopeBuilder.Operation.Maximum, "Maximum_VonMises")
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.Xx, CAE.ResultsEnvelopeBuilder.Operation.Maximum, "Maximum_Xx")
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.Xx, CAE.ResultsEnvelopeBuilder.Operation.Minimum, "Minimum_Xx")
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.Yy, CAE.ResultsEnvelopeBuilder.Operation.Maximum, "Maximum_Yy")
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.Yy, CAE.ResultsEnvelopeBuilder.Operation.Minimum, "Minimum_Yy")
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.Zz, CAE.ResultsEnvelopeBuilder.Operation.Maximum, "Maximum_Zz")
Sort(SolutionNumbers, LoadcaseNumbers, IterationNumbers, ResultNumbers, CAE.Result.Component.Zz, CAE.ResultsEnvelopeBuilder.Operation.Minimum, "Minimum_Zz")
NX OPENSUMMARY
• Able to solve all our needs
• Allowed us to move forward
• Confident that it can be used for all future needs