Calculate fintab height from body radii at for and aft fintab extents, instead

of assuming constant radius body tube
This commit is contained in:
JoePfeiffer 2020-12-08 10:08:15 -07:00 committed by Billy Olsen
parent 0dd878d1f4
commit f8430c6504
2 changed files with 8 additions and 3 deletions

View File

@ -333,7 +333,7 @@ public abstract class FinSet extends ExternalComponent implements AxialPositiona
/** /**
* Return the tab trailing edge position *from the front of the fin*. * Return the tab trailing edge position *from the front of the fin*.
*/ */
private double getTabTrailingEdge() { public double getTabTrailingEdge() {
return tabPosition + tabLength; return tabPosition + tabLength;
} }

View File

@ -35,9 +35,12 @@ import net.sf.openrocket.rocketcomponent.FinSet;
import net.sf.openrocket.rocketcomponent.FreeformFinSet; import net.sf.openrocket.rocketcomponent.FreeformFinSet;
import net.sf.openrocket.rocketcomponent.InnerTube; import net.sf.openrocket.rocketcomponent.InnerTube;
import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.rocketcomponent.SymmetricComponent;
import net.sf.openrocket.rocketcomponent.Transition;
import net.sf.openrocket.rocketcomponent.position.AxialMethod; import net.sf.openrocket.rocketcomponent.position.AxialMethod;
import net.sf.openrocket.startup.Application; import net.sf.openrocket.startup.Application;
import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.unit.UnitGroup;
import net.sf.openrocket.util.MathUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -231,7 +234,7 @@ public abstract class FinSetConfig extends RocketComponentConfig {
double inRad = 0.0; double inRad = 0.0;
RocketComponent parent = component.getParent(); RocketComponent parent = component.getParent();
if (parent instanceof Coaxial) { if (parent instanceof SymmetricComponent){
try { try {
document.startUndo("Compute fin tabs"); document.startUndo("Compute fin tabs");
@ -263,7 +266,9 @@ public abstract class FinSetConfig extends RocketComponentConfig {
} }
// compute tab height // compute tab height
double height = ((Coaxial) parent).getOuterRadius() - inRad; double height = MathUtil.min(((SymmetricComponent)parent).getRadius(((FinSet) component).getTabFrontEdge()),
((SymmetricComponent)parent).getRadius(((FinSet) component).getTabTrailingEdge())) - inRad;
// double height = ((Coaxial) parent).getOuterRadius() - inRad;
//Set fin tab height //Set fin tab height
if (height >= 0.0d) { if (height >= 0.0d) {
tabHeightModel.setValue(height); tabHeightModel.setValue(height);