#Acad FACES for 3D Studio
12 messages in this thread
Hello All,
We have a client drawing complex 3D structures in AutoCAD R11 that he
wants rendered in 3D Studio by another firm. What is the proper way to
draw 3D faces so that the normals are facing outward. Once drawn is there
a way to verify that they are correct in Acad ?
Thanks for your help ,
Kevin Stuart
Kevin – I'll pass this to our resident 3D Studio Studs, and you may also
want to ask over on the "Asoft" forum. That's where a LOT of 3D Studio
Studs and Studettes hang out.
R@A
>> surface normals
Kevin,
The new release of BlockSOLID will have an SEDIT command (surface edit).
One of the options of the SEDIT command is the Align option. This will take
any surface entity in R11 and make all of the surface normals consistant. A
Reverse command will "flip-flop" the normals. In this manner, the user
doesn't have to worry about how they draw the faces, just draw away and then
align them when your done.
Kevin:
It has been my experience that there is no predictable way to make sure
that the faces have the normals pointing in the same direction unless you
make all of the faces 3 sided and contstruct them in a counterclockwise
fashion when looking at the object from the viewing side (outside or
inside). This is rather pointless, in my opinion, since your client will
probably want to have models that use interior and exterior shots and
getting this all sorted out isn't worth the time. (If blocksolid does this
for four sided 3d faces they are in for a suprise…).
It is much simpler to just define all of the materials as two sided… this
increases rendering time somewhat, but doesn't require a computer modeler
to sit at the computer trying to figure out what side of what face is up in
AutoCAD. In this way, you let the cheapest per hour guy do the work, the
computer…
Using AME and creating true solids and maintaining their total form
(whether you need it or not (e.g. tops and bottoms of walls…) will
provide more predictable results.
You can also get a copy of dxf23ds from the Asoft forum that will process
the dxf file in short order, when compared to loading it into 3DS, welding,
and unifying all of the faces.
You should also create objects by layer… if there is going to be scaled
texture maps on each wall, for example (e.g. brick) then you need to make
each wall direction (N,S,E,W) on a separate layer so that each wall can be
mapped in 3DS individually. This isn't entirely necessary, but it would
help the 3DS operator. They should have a long talk with whoever is going
to do the work.
C#
Craig,
We in fact do surface welding, aligning, and offsetting. This will work with
any surface entity:
3D faces …3 & 4 sided
Surface meshes (Rulesurfs, edgesurf, revsurf, etc)
P-face meshes … these may include both 3-sided and 4-sided p-faces
Exploded AME solids (just a collection of P-face meshes).
For instance, you can to the following:
Make a couple RULESURF's which share edges. Also on some other edges, add
some hand drawn 3D faces, and a P-face mesh or 2. Run the SEDIT command,
and with the Join option, "weld" all of these entities into a single mesh.
During this proceedure, all redundant vertecies are removed and the faces
are re-indexed (we also handle the "-" indexes for invisable edges
correctly). Next, using the Align option, all the faces in this mesh are
aligned with the "1st" face of the mesh such that all the surface normals
are consistent. If the 1st face's normal was pointing in the wrong
direction, a Reverse option simple reverses the connectivity (surface normal
direction) for the mesh. If this mesh represents the outside or inside
surface of a constant thickness part, then the SOFFSET command will generate
the other surface (either inside or outside), and seal the edges if
instructed. This new mesh's normals are also consistent with the previos
one.
We really can do these things … really… in not kidding .. <g>
Ang
Angelo:
I didn't mean to imply that Block solid couldn't do them, or in any way was
deficient. I meant to imply that I don't think you can predict what any
open meshed (and possibly many close meshed) objects in AutoCAD are going
to do in 3DS. Until Autodesk provides surface normal information for their
3Dfaces, then any conversion will either be VERY time consuming (i.e. it
has to design the 'world' that the model is sitting in to determine what
direction the intended normal is) or inaccurate.
If you only create solid meshes, that doesn't help me when I have a roof
plane and a wall plane… I want the two to be placed in 3DS as separate
objects and if they are part of the same mesh, I don't know how to do that.
Maybe I'm missing something.
C#
>> maybe I'm missing something
Craig,
Maybe what your "missing" is the details on how BlockSOLID does this. I
think this will clear it up….
In the SEDIT/Join command, we infact combine all the MxN meshes, p-face
meshes and 3D Faces into one P-face mesh. Once this is done, you can use
the SEDIT/Align command to make all of those faces IN THAT MESH consistent
with the 1st face in that mesh. If that face was "pointed the wrong
direction", then the SEDIT/Reverse command will "flip-flop" the entire mesh.
So you see, we are addressing the problem by "imbedding" the 4-sided, 3D
faces into a P-face mesh and then doing an orientation check on the unified
mesh. Since P-face meshed are supported by 3DS, this is a reasonable
solution.
Hope that clears it up….
Ang
Angelo:
I DON'T WANT THEM COMBINED….
C#
>>I DON'T WANT THEN COMBINED …
Craig,
THEN EXPLODE THE MESH AFTER YOU ARE DONE…
Ang
Angelo:
Do you combine meshes from two different layers? If I explode them don't I
end up with a bunch of faces? Are these 3 or four sided faces? Once you've
aligned the normals, if you don't leave them as closed meshes, I don't
believe you will be guaranteed that 3DS will keep them aligned… which is
what I believe my original point was… and what the original question was.
I mean, I can be mistaken since I've never used Block Solid, but I think
you need to spend a little time making sure of what I'm talking about. I
can't imagine (doesn't mean that there isn't) any way to currently
guarantee that a non-closed mesh will translate properly to 3DS. And, I
have no idea what would happen if a closed mesh were made up of two layers
(I've never tried this….) but as soon as 3DS takes it apart, it can't
tell where the normals should face. Am I communicating my point, yet?
C#
>> different faces on different layers.. get it?
Craig,
I'm STARTING <g> to understand what your concerns are. I guess I may be
falling into the trap of knowing too much about my own product and not
communicating properly. The joining and aligning commands are separate
command and thus if you have "one item" and want tha item on different
layers, "I would" probably approach the problem in the following manner.
First – I would join the entire model with then align the "part" thus
ensuring that the normals are consistent to describe this part.
Second – I would expode the part and then join the "sections" of the part
that reside on the same layer and that are contiguous.
Third – I would then change the layer defiintions appropriately.
In this manner I believe you will have all that was asked for (even though I
don't remember the originator of this thread requesting faces on the same
part existing on differnt layers). By joining and aligning the entire part
first and then exploding, you are ensured that subsequent joined "sections"
have consistent normal definitions.
Ang
Angelo:
No, you are very clear now and I don't agree with you. You can't send
disjointed faces or pmesh surfaces to 3DS and guarantee that all of the
face normals will be aligned. If you leave the meshes together (closed)
then you have to separate them into objects once you're in 3DS. You get to
do the work one way or the other unless you simply create the objects in
3DS in the first place.
And that is what I was trying to explain to the person that I was talking
with… and why I noted that if you guarantee to your customers that faces
will be aligned you need to make a more detailed statement than that… or
you will end up with some unhappy customers.
I have been round and round about this with Gary Yost and I finally
understand what is happening since he has been patient enough to explain it
to me. Since it is to our benefit to originate the drawings in AutoCAD, I
find it best to use two sided materials in 3DS and let the computer do the
work. There is no big advantage to make buildings up from solids, either.
Too cumbersome and big file oriented for me. Yes, it would be nice to tell
the client how much his building weighs..<g>… but we will stick with
building the thing face by face.
It does seem, BTW, that DXF23DS does do a better job of converting the
file, and it is MUCH faster than 3DS 1.0 at doing it, too!
C#