Skip to content

[Enhancement] Use more advanced triangulation in OBJ export #2444

@eddiebe

Description

@eddiebe

When exporting fin sets that contain inward curves or angles to .obj files it creates a flat plane on one side of the fin that connects the highest points on that edge.
Bat_fins_error.zip
Fin_Export_Example.zip
Fin_Export_Example
Bat_fins_error

(Do not modify anything below this line.)
---------- System information ----------
OpenRocket version: 23.09
OpenRocket source: default
OpenRocket location: F:\Office\OpenRocket.\OpenRocket.jar
User-defined thrust curves location: C:\Users\eddie\AppData\Roaming\OpenRocket\ThrustCurves
LAF: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
JOGL version: 2.5.0
Current default locale: en_US
System properties:
exe4j.consoleCodepage=cp0
exe4j.isInstall4j=true
exe4j.launchName=F:\Office\OpenRocket\OpenRocket.exe
exe4j.moduleName=F:\Office\OpenRocket\OpenRocket.exe
exe4j.semaphoreName=Local\f:_office_openrocket_openrocket.exe0
exe4j.tempDir=
exe4j.unextractedPosition=0
file.encoding=Cp1252
file.separator=
install4j.appDir=F:\Office\OpenRocket
install4j.exeDir=F:\Office\OpenRocket
install4j.launcherId=59
install4j.swt=false
java.class.path=F:\Office\OpenRocket.install4j\i4jruntime.jar;F:\Office\OpenRocket.\OpenRocket.jar
java.class.version=61.0
java.home=f:\office\openrocket\jre
java.io.tmpdir=C:\Users\eddie\AppData\Local\Temp
java.library.path=f:\office\openrocket\jre\bin;C:\Program Files (x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Program Files\ImageMagick-7.1.1-Q16-HDRI;C:\Program Files (x86)\Python311-32\Scripts;C:\Program Files (x86)\Python311-32;C:\Program Files\Python311\Scripts;C:\Program Files\Python311;F:\VMware\VMware Workstation.16\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\dotnet;C:\Program Files\Git\cmd;C:\Program Files\CMake\bin;C:\Users\eddie\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;F:\Utility\Calibre2;
java.runtime.name=OpenJDK Runtime Environment
java.runtime.version=17.0.7+7-LTS
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=17
java.util.Arrays.useLegacyMergeSort=true
java.vendor=BellSoft
java.vendor.url=https://bell-sw.com/
java.vendor.url.bug=https://bell-sw.com/support
java.version=17.0.7
java.version.date=2023-04-18
java.vm.compressedOopsMode=Zero based
java.vm.info=mixed mode
java.vm.name=OpenJDK 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.specification.version=17
java.vm.vendor=BellSoft
java.vm.version=17.0.7+7-LTS
jdk.debug=release
jnlp.jogamp.tmp.cache.root=jln11974797948420517716
line.separator=\u000d\u000a
native.encoding=Cp1252
os.arch=amd64
os.name=Windows 11
os.version=10.0
path.separator=;
sun.arch.data.model=64
sun.awt.enableExtraMouseButtons=true
sun.awt.exception.handler=net.sf.openrocket.gui.main.SwingExceptionHandler$AwtHandler
sun.boot.library.path=f:\office\openrocket\jre\bin
sun.cpu.endian=little
sun.cpu.isalist=amd64
sun.io.unicode.encoding=UnicodeLittle
sun.java.command=F:\Office\OpenRocket\OpenRocket.exe
sun.jnu.encoding=Cp1252
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.os.patch.level=
user.country=US
user.dir=F:\Office\OpenRocket
user.home=C:\Users\eddie
user.language=en
user.name=Ed.Gmail
user.script=
user.timezone=America/New_York
user.variant=
---------- Error log ----------
1 0.002 INFO (SwingStartup.java:68) Starting up OpenRocket version 23.09
2 0.004 INFO (SwingStartup.java:77) Checking for graphics head
3 0.005 INFO (SwingStartup.java:88) Moving startup to EDT
4 0.101 INFO (SwingStartup.java:180) Initializing the splash screen
5 0.212 INFO (SwingStartup.java:184) Registering exception handler
6 0.218 INFO (SwingStartup.java:190) Loading databases
7 2.052 INFO (TranslatorProvider.java:49) Using default locale en_US
8 2.069 INFO (TranslatorProvider.java:61) Set up translation for locale en_US, debug.currentFile=messages.properties
9 2.071 INFO (ComponentPresetDatabaseLoader.java:91) Loading component presets from datafiles/components
10 2.072 INFO (MotorDatabaseLoader.java:90) Starting reading serialized motor database
15 2.095 INFO (SwingStartup.java:258) Starting update check
17 2.099 INFO (SwingStartup.java:203) Setting LAF
18 2.487 INFO (SwingStartup.java:226) Opening main application window
20 2.554 INFO (BasicFrame.java:1309) Starting OpenFileWorker
21 2.563 INFO (SwingWorkerDialog.java:133) Running SwingWorker net.sf.openrocket.gui.util.OpenFileWorker@512dbe76
22 2.572 INFO (OpenRocketLoader.java:44) Loading .ork file
23 2.713 INFO (OpenRocketLoader.java:96) Loading done
24 2.781 INFO (SwingWorkerDialog.java:151) Worker completed before opening dialog
28 2.809 INFO (MotorDatabaseLoader.java:96) Ending reading serialized motor database, motorCount=1900
29 2.818 INFO (MotorDatabaseLoader.java:71) Starting reading user-defined motors
30 2.823 INFO (MotorDatabaseLoader.java:81) Ending reading user-defined motors, motorCount=1900
40 3.149 INFO (UpdateInfoRetriever.java:145) Current build is latest version
95 0.000 VBOSE (-) ===== 10 VBOSE lines removed =====
95 3.743 VBOSE (AbstractChangeSource.java:25) Adding change listeners, listener count is now 1
100 0.000 DEBUG (-) ===== 66 DEBUG lines removed =====
100 3.817 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: fliskits-legacy.orc
101 3.817 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file fliskits-legacy.orc
102 3.884 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file fliskits-legacy.orc contained 160 presets
103 3.884 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: generic_materials.orc
104 3.884 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file generic_materials.orc
105 3.891 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file generic_materials.orc contained 0 presets
106 3.891 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: giantleaprocketry-legacy.orc
107 3.891 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file giantleaprocketry-legacy.orc
108 3.903 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.gui.dialogs.flightconfiguration.MotorMountTableModel@39dfa37d, current number of listeners is 7
109 3.906 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file giantleaprocketry-legacy.orc contained 74 presets
110 3.908 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: giantleaprocketry.orc
111 3.908 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file giantleaprocketry.orc
112 3.918 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.gui.main.flightconfigpanel.FlightConfigurableTableModel@118cc41f, current number of listeners is 8
113 3.920 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file giantleaprocketry.orc contained 92 presets
114 3.922 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.gui.main.flightconfigpanel.RecoveryConfigurationPanel$$Lambda$258/0x000000080050ac28@57ffbb7c, current number of listeners is 9
115 3.929 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.gui.main.flightconfigpanel.SeparationConfigurationPanel$2@1a28dfdd, current number of listeners is 10
116 3.931 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: loc_precision.orc
117 3.931 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file loc_precision.orc
118 3.941 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file loc_precision.orc contained 113 presets
119 3.943 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: madcow.orc
120 3.943 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file madcow.orc
121 3.958 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
122 3.976 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file madcow.orc contained 240 presets
123 3.978 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: mpc.orc
124 3.978 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file mpc.orc
125 3.988 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file mpc.orc contained 49 presets
126 3.988 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: publicmissiles-legacy.orc
127 3.988 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file publicmissiles-legacy.orc
128 4.047 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file publicmissiles-legacy.orc contained 115 presets
129 4.047 DEBUG (RocketFigure3d.java:158) Initializing RocketFigure3D OpenGL Canvas
130 4.047 DEBUG (RocketFigure3d.java:160) Setting up GL capabilities...
131 4.047 VBOSE (RocketFigure3d.java:162) GL - Getting Default Profile
132 4.056 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: publicmissiles.orc
133 4.056 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file publicmissiles.orc
134 4.106 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file publicmissiles.orc contained 139 presets
135 4.108 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: quest.orc
136 4.108 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file quest.orc
137 4.132 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file quest.orc contained 71 presets
138 4.132 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: semroc-legacy.orc
139 4.132 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file semroc-legacy.orc
140 4.420 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file semroc-legacy.orc contained 874 presets
141 4.422 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: semroc.orc
142 4.422 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file semroc.orc
143 4.544 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file semroc.orc contained 1676 presets
144 4.551 DEBUG (ComponentPresetDatabaseLoader.java:115) loading from file: top_flight.orc
145 4.551 DEBUG (OpenRocketComponentLoader.java:26) Loading presets from file top_flight.orc
146 4.555 DEBUG (OpenRocketComponentLoader.java:35) ComponentPreset file top_flight.orc contained 47 presets
147 4.580 DEBUG (ComponentPresetDatabaseLoader.java:57) Time to load presets: 2502ms 5309 loaded from 31 files
148 5.555 VBOSE (RocketFigure3d.java:165) GL - creating GLCapabilities
149 5.555 VBOSE (RocketFigure3d.java:169) GL - setSampleBuffers
150 5.555 VBOSE (RocketFigure3d.java:172) GL - setNumSamples
151 5.555 VBOSE (RocketFigure3d.java:182) GL - Creating GLCanvas
152 5.561 VBOSE (RocketFigure3d.java:186) GL - Registering as GLEventListener on canvas
153 5.561 VBOSE (RocketFigure3d.java:189) GL - Adding canvas to this JPanel
154 5.562 VBOSE (RocketFigure3d.java:192) GL - Setting up mouse listeners
155 5.562 VBOSE (RocketFigure3d.java:195) GL - Rasterizing Carets
156 5.582 VBOSE (DoubleModel.java:953) DoubleModel[constant=0.0] adding listener (total 1): net.sf.openrocket.gui.scalefigure.ScaleScrollPane$1@4edd87c1
157 5.605 VBOSE (DoubleModel.java:953) DoubleModel[constant=0.0] adding listener (total 2): net.sf.openrocket.gui.scalefigure.ScaleScrollPane$Ruler[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=]
158 5.606 VBOSE (DoubleModel.java:953) DoubleModel[constant=0.0] adding listener (total 3): net.sf.openrocket.gui.scalefigure.ScaleScrollPane$Ruler[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=]
159 5.606 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
160 5.606 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
161 5.607 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
162 5.607 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
163 5.607 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
164 5.609 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
165 5.610 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.util.ComponentChangeAdapter@1ba20b5e, current number of listeners is 11
166 5.626 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.util.ComponentChangeAdapter@7e4fe377, current number of listeners is 12
167 5.629 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.util.ComponentChangeAdapter@77125eea, current number of listeners is 13
168 5.640 VBOSE (DoubleModel.java:953) DoubleModel[RocketFigure:Rotation] adding listener (total 1): net.sf.openrocket.gui.components.UnitSelector[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,verticalAlignment=CENTER,verticalTextPosition=CENTER]
169 5.642 VBOSE (DoubleModel.java:953) DoubleModel[RocketFigure:Rotation] adding listener (total 2): javax.swing.JSlider$ModelListener@691ccd97
170 5.642 VBOSE (DoubleModel.java:953) DoubleModel[RocketFigure:Rotation] adding listener (total 3): javax.swing.plaf.basic.BasicSliderUI$Handler@ab3f885
171 5.643 VBOSE (DoubleModel.java:975) DoubleModel[RocketFigure:Rotation] removing listener (total 2): javax.swing.plaf.basic.BasicSliderUI$Handler@ab3f885
172 5.644 VBOSE (DoubleModel.java:953) DoubleModel[RocketFigure:Rotation] adding listener (total 3): javax.swing.plaf.basic.BasicSliderUI$Handler@5ccec31
173 5.679 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
174 5.679 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.util.ComponentChangeAdapter@2cb55fb3, current number of listeners is 14
175 5.680 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.gui.scalefigure.RocketPanel$4@64eb180, current number of listeners is 15
176 5.680 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
177 5.707 DEBUG (JarUtil.java:40) Found jar file using codeSource
178 5.707 DEBUG (ExampleDesignFile.java:118) Current jar file is: F:\Office\OpenRocket.\OpenRocket.jar
179 5.734 VBOSE (Rocket.java:487) Added ComponentChangeListener net.sf.openrocket.gui.main.BasicFrame$1@1c33d96b, current number of listeners is 16
180 5.829 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 1.00000 user scale, 6614.18 overall scale
181 5.831 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.0787170 user scale, 520.648 overall scale
182 5.833 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.0787170 user scale, 520.648 overall scale
183 5.835 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.0787170 user scale, 520.648 overall scale
184 5.835 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.0787170 user scale, 520.648 overall scale
185 5.836 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.0787170 user scale, 520.648 overall scale
186 5.836 DEBUG (BasicFrame.java:320) ... Setting Initial Selection: [Rocket, Stage]
187 5.836 DEBUG (BasicFrame.java:324) BasicFrame instantiation complete
188 5.861 INFO (SwingStartup.java:234) Checking update status
189 5.870 INFO (SwingStartup.java:96) Startup complete
190 6.041 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.145733 user scale, 963.903 overall scale
191 6.042 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.145733 user scale, 963.903 overall scale
192 6.042 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.145733 user scale, 963.903 overall scale
193 6.052 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.145733 user scale, 963.903 overall scale
194 6.053 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.145733 user scale, 963.903 overall scale
195 6.054 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.145733 user scale, 963.903 overall scale
196 6.054 VBOSE (AbstractScaleFigure.java:209) ____ Updating RocketFigure to: 0.145733 user scale, 963.903 overall scale
197 60.403 USER (BasicFrame.java:754) Bug report selected
198 60.405 DEBUG (JarUtil.java:40) Found jar file using codeSource
199 279.113 DEBUG (GUIUtil.java:276) Clearing all models of window net.sf.openrocket.gui.dialogs.BugReportDialog[dialog0,226,226,772x595,invalid,hidden,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=Bug report,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,7,30,758x558,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
200 279.114 DEBUG (MemoryManagement.java:56) Adding object into collectable list: net.sf.openrocket.gui.dialogs.BugReportDialog[dialog0,226,226,772x595,invalid,hidden,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=Bug report,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,7,30,758x558,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
201 43246.935 USER (BasicFrame.java:754) Bug report selected
202 43246.936 DEBUG (JarUtil.java:40) Found jar file using codeSource
---------- End of bug report ----------

Metadata

Metadata

Assignees

Labels

enhancementThis differs from a feature request in that the feature already exists, but should be improved.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions