General Modeling and Import Questions

Michael Mayer
edited November 2017 in 3D Modeling

Hello,

1.
My DWGs from exported from Vectorworks bring in Solids - fine.
Unfortunately each Solid's Face is tessellated, divided by 5 "Coedges"
in each direction.
So it needs a dmSimplify.
This works great in one go for all "free" Solids but is very tedious for Solids
in (nested) Blocks to repair, as you have to RefEdit each Block one by one.

So is there any way to Simplify All Solids, including those in Blocks in one go ?

2.
Some of my Cubes come in as individual "3D Faces" (watertight)
Is there any way to get them back to Solids ?
dmStitch does not accept them.

As I have a lot of them, do it one go ?

3.
Is it possible to get Solids from Meshes ?

4.
I had filled 2D Geometry which comes in as (not closed) Polyline.
Will these appear in Renderings - as a filled Areas ?
If not, what can I do/convert ?

Thanks.

Comments

  • 2+3:
    A mesh can be exploded into 3D faces which can be turned into regions. The _DmStitch command will accept regions (and surfaces).

  • Michael Mayer
    edited November 2017

    Thanks Roy,

    I will test that.
    I have lots unwanted "3D Faces"
    Unfortunately all Vectorworks Wall Objects come in as loose 3D Faces ...

    And a few "Polyface Meshes"
    These were multiple 2D Rectangles, "grouped" as a Mesh in VW.
    Will these be visible as 3D Faces for Rendering ?
    The look like having a filled Face her on screen

  • I tested. It works.
    But a bit impractical for me, that does not work in in go for all.

    Create Region needs the correct Layer active.
    The Stitch worked, unfortunately created a few "Multi" Solids of
    non-touching Volumes.
    The Separate seems not able to separate these again.

  • "Stitching" works similar to "Vertex Welding" in 3D Polygon Apps.
    That means it will fail when two or more Objects were touching at >2 vertices.
    In such a case Bricscad will not create Solids for each object but stitch all their
    Faces together, wich will result in a corrupt volume and so produce a
    Surface Object.
    (Like in a 3D App it will fail to proper orient Face Normals)

  • Egor Ermolin
    edited January 2018

    Dear sirs,

    Separate just splits multilump solids into several (solid per lump).

    (Sorry for bold text, it seems to be forum glitch) Geometry in each lump has no common faces/edges. Stitching shares edges with exact match, thus non-manifold edges (sharing more than 2 faces are created). These non-manifold edges are the reason why surface object is created and once faces are merged with edges, they can't be split by separate. However, DmStitch has an option to force solid creation with no regard of non-manifold edges analysis:

    DMSTITCH
    Select entities to stitch or [Entire model/MOde] :mo
    Select stitching mode [Auto/SOlid/SUrface/Tolerance] :so
    Select entities to stitch or [Entire model/MOde] :
    1 solid(s) successfully created

    We are considering to improve DmStitch to create several solids when it is possible (in simple cases it already works, try two boxes stack on each other, explode them, stitch will create two solids back).

    Best regards,
    Egor ERMOLIN

  • Michael Mayer
    edited January 2018

    That is very interesting Egor !
    I thought these actions would be very hard to solve or impossible for computers
    as I was used that they fail everywhere.

    Similar creating Meshes (Surfaces) from Solids (Volumes).
    A polygon modeling user uses Axis Slice to cut the whole Wall to pleasantly cut
    a Window hole by keeping Quads while a computer starts from a vertex and
    produces ugly long thin triangles. Or when meshing a digital terrain model
    and you look at 4 vertices that form a non planar quad face, there are 2 options
    how to triangulate. 1 that will better follow the terrain or 1 that will create
    a disturbing edge in the terrain flow. A human would chose the first option while
    a computer does this randomly.

    In the Stitch case, your cubes on the same Layer, exported by DXF to Modo.
    They will come in as separate Polygons, not welded vertices that form a
    connected Mesh. Face Normals will be flipped to the wrong side.
    You need to correct all that to render properly and being able to do further
    operations like edge beveling.
    (BTW, by DAE export, Bricscad will only weld/connect each Solids Face,
    not the whole Volume)
    If the Cubes don't touch you can run a Vertex Welding to connect redundant
    vertices, get a closed Mesh from 6 Faces and so can finally run a Flip or
    Align Face command in case Face Normals were even flipped randomly.
    If the Cubes touch each other and their Vertices get welded together you get
    1 Mesh from both, with 2 touching Faces inside, that will make an automatic
    Face Align fail.
    And as we normally deal with thousands of separate Solids, manually selecting
    and welding is impractical.

    Like Stitching imported geometry in Bricscad.
    (Importing BIM Wall Objects from Vectorworks by IFC will bring in Solids)
    Importing via DWG export, e.g. all Walls will come in as separate 3D Faces.
    On the same Layer and Walls touching Faces of other Wall Objects of course.

    If Bricscad can bring in more (human) intelligence into Stitching,
    even for simpler cases only, that would be just GREAT !

    (By somehow recognizing that some Faces were 1 part of 1 Objects or by
    working with face normals/draw direction some Faces belong together
    while others do not ?)

    Or if there could be more intelligence in conversion between Solids and Meshes
    in both ways. E.g. Furniture Libraries often contain Mesh Geometry, useless and
    resource hungry in CAD. Like round chair legs.
    If Bricscad in its current AI way could recognize, hey, there are 2 parallel Faces
    with some parallel edges in between, that could be a Cylinder.
    Even worse when these pipes are bent.
    When you want to (Mesh) Export a Solid Cylinder, you can choose a
    circle resolution of only 8, because for such a thin Cylinder, 8 faces may look
    "round" enough and save Polys.
    But when the Cylinder is bent the resulting Mesh will get far more tessellated
    in triangles than wanted.
    (A mesh modeler would keep Quads and do just a few cuts along the length
    before bending, which means a few Cylinders connected by an angle)

    If AI could recognize from a bunch of connected Polygons, hey, that could be
    a bent Cylinder or this looks like a squashed Sphere ...
    And vice versa could mesh such Solids in a more human Mesh modeling way,
    That would be awesome.

  • Hello Michael,

    Thank you for the answer. Can't promise much (especially for AI), but if you want use to progress in this direction, please make SR with some examples. Please note that we focus on 3D solids first, not 3D meshes. Basically, we are focusing on three typical cases of coincident geometry for 3D solids:
    1. stack of exploded boxes, when separate bodies are to be created
    2. same stack, but we exclude coincident faces and create single solid
    3. same stack, but instead of 2 coincident faces only one exists. Then it has to be removed and result has to be a single solid
    4. when coincident faces have partial overlapping: we have to judge what to do with coincident geometry

    So you see, the task can't be univocally solved, i.e. 1 and 2 are different results for same input, required by different users. Thus working deep requires good examples .dwg, user feedback on what he wants. For the moment we internally move in this direction (but the speed is determined by our needs implicitly appearing from other tasks).

    Best regards,
    Egor

  • Michael Mayer
    edited January 2018

    Egor that sounds really great.

    Didn't even think about the optional results beside 1.
    Of course a single Solid could be very useful in some situations too.
    Beside Walls, an other example would be things like Curtain Wall Bars.
    Just because Mesh Welding will fail I often model more tediously by
    dividing, in this case, horizontal and vertical Bars on separate Layers
    To avoid elements touching each other.

    To not get misunderstood,
    talking about Meshes is just an example for similar problems. I don't
    want Bricscad to get a Mesh Modeler at all. I bought it as intentionally
    as a Solids Modeler and BIM solution.
    But as I am doing Architectural Visualization and 3D Apps Rendering
    is based on Mesh Geometry or because IFC exchange doesn't always
    provide perfect Solids, I am very interested in a lossless conversion in
    both directions.
    (e.g. FBX does a very good job Solid>Mesh - as long as the original geometry
    is defined properly. Also it can bring Material, Camera, Light, Hierarchies,
    Instances/Blocks, Animations, .... (currently not in Bricscad))

    Currently my main Exchange is between Bricscad and Vectorworks.
    Bricscad Solids to VW by DWG import works pretty well.

    VW to Bricscad DWG (or IFC) is more problematic.
    VW uses Parasolid as well as custom history based Geometries in BIM.
    Although both use the same Teigha libraries for DWG,
    when I export VW Solids to ACIS Solids, all Solids will have an unnecessary
    6 time tessellation by coedges in Briscscad (or other DWG imoports).
    Which requires a dmSimplify for all Solids after import.

    BIM Objects like Walls/Slabs ... will come in as separate Faces only
    (I think they kind of really are in VW internally)
    and would profit from any Stitching improvements.
    (But come mostly as Solids by IFC !?)

    And the biggest problem, as in Bricscad, VW has these strange single Solids
    that contain more than 1 of non touching Volume - but misses the
    Separate Tool which Bricscad has.
    Very handy in VW is the use of Extrudes that extrude multiple 2D Faces
    at once. No matter if these got converted to a Solid before Export or not,
    these objects will come as separate Faces only into Bricscad.
    Same for real Solids, that went strange multi Volume Solids just by real
    Solid Operations like e.g. Booleans. These will also come into Bricscad as
    Faces only. Although I can produce the same strange Multi Solids in Bricscad
    easily too.

    I could organize some example files if interested and will maybe create
    some wish SR's the next time.

    And thanks a lot for the insight Egor.

  • Hello Michael,

    Please indeed open separate SR on intelligent stitching and separating solids with sample .dwg files (one SR - for stitch, one SR - for separate). SR has more preferences over forum post (especially if you really need some new tool to appear :)) :

    • you can share some (private) examples in .dwg
    • Bricsys technical leads can discuss possible solutions
    • SR are simplier to include in our development plans

    Please inform about SR numbers in order I could find them easily (I'm not subscribed to the group of SR you could potentially report).

    Best regards,
    Egor

  • Yes, that is some general info on what I am interested in.

    For Separate,
    if you Extrude through a Solid (like a Wall) in Bricscad, you also get a
    single Solid containing 2 separate Walls. So in general, Bricacsad can
    deal with these strange multi Volume Solids
    If that irritates, you simply use the Separate Tool to get rid of these.

    I think Separation of Multi Solids should happen inside VW (while Export),
    but is not possible for Solids as there is no Separate Tool.
    :smile:
    Don't know what VW's interpretation of Teigha libraries finally puts in the
    DWG Export. Maybe just separate Faces already.

    So it is more about the Import Stitching Magic happening in Bricscad.
    Like Garbage in - Solids out.

    Another thing are meshes (in VW).
    Like many other CADs there is some rudimentary support for Meshes
    but no CAD really likes them.
    (Exception, FormZ, treats Solids and Meshes equally ?)
    In VW there also is no way to convert Meshes into Solids.
    They said it is hard to determine if Meshes are watertight.
    (But Mesh Modelers can (?) Cap Hole Modifiers, 3D printing and such)

    However, I realized in VW that in many many cases, when the Mesh is ok,
    you can use the Push Pull Tool, pull one Face out and back in,
    (not very comfortable and maybe not intended)
    to get a Solid
    :smile:

    That trick does not work in Bricscad. If I convert a Solid Cube into a Mesh,
    the only way I know to get it back into a Solid :

    • Explode
    • Region
    • Stitch
    • Simplify
  • Michael Mayer
    edited January 2018

    And I notice the same on the VW side.
    If I import such strange Multi Solids,
    VW will give me a Group with separate Faces inside :wink:
    that need Stitching.

  • Egor Ermolin
    edited November 2018

    @Michael Mayer said:
    So it needs a dmSimplify.
    This works great in one go for all "free" Solids but is very tedious for Solids
    in (nested) Blocks to repair, as you have to RefEdit each Block one by one.

    So is there any way to Simplify All Solids, including those in Blocks in one go ?

    Hello Michael,

    Please check dmSimplifyAll in BricsCAD V19 :o)

    Best regards,
    Egor

  • Yes, haven't tested so far.
    But from looking at the endless release notes list,
    the Team did a very good job in that Area, which seems to
    improve my productivity enormous.

This discussion has been closed.