wandererfan wrote: ↑Tue Dec 28, 2021 7:44 pm
The only recommendation I've ever heard is to delay adding Dimensions until the 3D model is finished, or nearly so.
Yeah. I understand. However, let me explain why this is not always possible:
- You design your model as normal, finalize it, and then create your TechDraw sheet, following all the relevant local norms (ISO, etc), add all the relevant annotations, detail views, cuts, etc.
- You send your drawing to someone who will machine it as per your instructions
- The machinist then replies saying X feature is too complicated/he doesn't have the tools/the machine that does that part is booked for 3 months or is broken and the maintenance guy isn't available because of the pandemic
- You alter/remove that feature to suit the machinist's needs
The problem is that now, you basically need to restart the drawing from scratch
Code: Select all
I am definitely not an expert on @RealThunder's work, especially the TNP aspects. I suspect that maintaining shape history across the projection/hidden line removal step will be very difficult.
I don't expect the algorithm to work unchanged, but after
reading how his solution works, I wonder if a similar scheme would be possible.
Then again, I find the way TechDraw does the projection and hidden line removal to be almost akin to black magic in how clean the end result is (I usually export to SVG and then tweak with Inkscape, and I almost cry when I see clean curves instead of polygons you often see from other CAD suites, or I see that there aren't eleventy bajillion lines stacked over one another, etc etc). It's so much nicer. It's part of the reason why I like working with TechDraw so much, despite it sometimes being a little rough around the edges.
One of the design principles for TechDraw was that drawings should change whenever the source geometry changed. Dimensions currently don't really remember their own location, Location is recomputed using the geometry references every time the view changes. If a reference no longer exists, an error is generated. If, for example, "Vertex4" is no longer the correct end point and "Vertex5" should now be used, this is not detected.
I'm afraid I don't see a quick fix to this problem.
I guess having some sort of caching mechanism on the projected view, and then if the number of edges/vertices in the view changes, halt the update to the view until the user manually triggers it? or a way to make a dimension "cosmetic" by unlinking it from the geometry, so if the geometry changes, the dimension doesn't change with it? I guess I'm just throwing ideas at the wall to see what sticks, and I don't think I'm qualified to do this, as I don't know enough of the internals.