On Tue, Jul 7, 2015 at 1:58 PM, Charles Schnake
<
csch...@desktopaero.com> wrote:
> Well, you make a good point for the arbitrary case. For my geometry,
> however, the fuselage is simply a series of elliptical sections so I think
> the interpolated sections should always be able to be defined by major/minor
> axes & a center point (right?).
I agree that a simple geometry will produce simple cross sections. I
mainly meant that a general feature to monitor 'ellipse' parameters
for interpolated cross sections doesn't really work. In general, we
try to steer VSP development to work for the general case, this isn't
the sort of feature we would have already developed.
That said, I do believe it is something that should be doable for your use.
> I'm not sure I understand your reference to the interference checker. In
> this case there really aren't 2 objects, there is only the fuselage (well
> okay, there are also the wing and nacelles, but those aren't relevant to the
> fuselage width/height constraints). Perhaps you're saying that I should
> build a thin ellipse inside the fuselage with the minimum dimensions @ the
> constrained stations and use the gap measurement between them and the
> fuselage as my constraint function? I'm not sure how to do that, is there a
> built-in function for computing distance between two components? If so, I
> couldn't find it.
We don't have such a checker. I was implying that this is the general
approach I would take if I was developing such a capability. In my
scenario, you would define a 3D keep-out zone(s) to represent the
constraint(s). It could be a cylinder, or a representation of the
engine, pilot, fixed equipment, etc. Ideally, you could give the
optimizer some control to move those components around if it really
wanted to...
> Sorry for being dense. Unless I can figure out how to constrain the fuselage
> width & height @ certain x-locs I think my only recourse will be to set my
> design parameters @ at each constrained location with the corresponding
> UBs/LBs, and obviously that would undermine the effort to identify the most
> valuable control points.
I agree.
> Also, even in the arbitrary case, even though you might not be able to
> define the cross-sectional geometry nicely, surely you can always identify
> the width (y-axis) and height (z-axis) at a given x plane? That would be
> sufficient for me to apply my constraints.
There are a couple of approaches that you might want to take in this direction.
Either way, you're going to have to use VSP to output a representation
of the geometry and then write your own program to interpret that
representation in a way that constitutes the constraint for your
problem. You might be able to do this entirely in scripting, but for
argument sake, we'll just say it needs to be done.
The two file formats that immediately come to mind as 'easy' to use
for this are 1) the XSec *.hrm file (a simple wireframe format), or 2)
the DegenGeom format.
The XSec file is just the x,y,z coordinates of the wireframe you see
on screen. You can take those points and do whatever you need with
them.
The DegenGeom file (either *.csv or Matlab) includes different
representations. The 'Stick' representation calculates a 'chord' and
'toc' for any shape -- including fuselages. The 'chord' will
represent the width or height -- toc*chord will represent the other
one.
When you degenerate a wing to a plate, there is an obvious direction
to prefer -- and then to a stick, there is a clear chord and thickness
direction.... For a fuselage, it isn't clear which direction you
would prefer, so we do both! So, for each component, you will find
there are two degenerate sticks -- the first is smashed one way, the
second the other. In this case, one's 'chord' will be the width, the
other 'chord' will be the height.
At present, the DegenGeom data is not made available to the Scripting
via the API. So, you're probably best off using either the *.csv or
Matlab format to process and come up with your constraints.
Rob