Does Sketcher itself have topological naming issues?

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
Post Reply
emills2
Posts: 889
Joined: Tue Apr 28, 2015 11:23 pm

Does Sketcher itself have topological naming issues?

Post by emills2 »

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.9528 (Git)
Build type: Release
Branch: master
Hash: 4efd3e894a9d3c1954603c60c411d434506d44e7
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.0.0


I thought topological naming issues were purely an occ thing, but right now i'm getting unexpected behavior in the sketcher.

I have an overall sketch with standard zx placement
Bezier primary Surface Volume 05 - 02 topo name error on sketch edit.png
Bezier primary Surface Volume 05 - 02 topo name error on sketch edit.png (30.15 KiB) Viewed 1064 times
then i make new sketches into which i link the main sketch three lines at a time
Bezier primary Surface Volume 05 - 03 topo name error on sketch edit.png
Bezier primary Surface Volume 05 - 03 topo name error on sketch edit.png (27.69 KiB) Viewed 1064 times
if i then edit the main sketch, the points get jumbled
Bezier primary Surface Volume 05 - 04 topo name error on sketch edit.png
Bezier primary Surface Volume 05 - 04 topo name error on sketch edit.png (18.88 KiB) Viewed 1064 times
as seen above, one of the sketch points jumps to the origin (new line) and another one scramble the order of the point (top black curve folds over itself as a result)

The problem might come from my objects, but can i expect any stability from sketch object references? I necessary if can skip the overall layout, but it make sthe whole model harder to edit

Thanks
emills2
Posts: 889
Joined: Tue Apr 28, 2015 11:23 pm

Re: Does Sketcher itself have topological naming issues?

Post by emills2 »

my bad. i found a loose line endpoint in the layout sketch. after constraining it all seems to work fine


Bezier primary Surface Volume 06 - 00 fully constrained main layout.png
Bezier primary Surface Volume 06 - 00 fully constrained main layout.png (35.88 KiB) Viewed 1059 times
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Does Sketcher itself have topological naming issues?

Post by DeepSOIC »

It is of course still a problem. But much more predictable.

There are two sources of trouble I know of.
1. Deletion of elements. Deleting an element will cause all the elements that were created after it to change their sequential number. Constraints are redirected automatically, but all other links are not.

2. Converting sketch to wires. Sketch itself doesn't contain information about how the elements are connected into a wire. So, wires are glued up as a post-processing step (on recompute, sketch is first solved, and then its segments are glued into wires) This gluing renumbers the elements. This maks point 1 essentially non-existing, and creates a few new issues. In particular, if the wire formed by sketch is non-manifold, the path that wire forming wave takes seems to become random, probably driven by unpredictable tiny solution inaccuracies.

So, avoid making three or more vertices coincident, even if the sketch is not meant to be extruded or whatever. I hope, some day a special flag will be added to a sketch, that would disable wire making step altogether.
emills2
Posts: 889
Joined: Tue Apr 28, 2015 11:23 pm

Re: Does Sketcher itself have topological naming issues?

Post by emills2 »

Thanks DeepSOIC. Are there cases where FreeCAD will make a wire unless i extrude?

Right now my curve object sketches are strictly 3 lines or 1 circle + 1 line. i Basically scan the topology at every step along the way as i make my surface. I understand that if i delete a sketch line in the main layout sketch, the linked edges of my curves will get jumbled. I can deal with that. What i don't understand clearly is why i shouldn't join three lines (3 points coincident) if the sketch is not intended to form a simple loop. my curve sketches are so constrained as it is, i was really hoping to get some freedom by linking to a main layout sketch.

Has it ever been considered to move the sketcher to permanent unique non-repeating names? Something similar to the way FreeCAD in general handles names:
Sketch
Sketch001
Sketch002
Sketch003

It seems 999 objects per sketch would go a long way. If the user could set their own permanent names for sketch elements would do the trick too. Not complaining, just dreaming... :D most people wouldn't care and they wouldn't need to know.

This is not a huge deal for me right now, but i want to organize my sketches the best way possible. Right now, i change my surface system on a regular basis, but it's acceptable to 're-skin' from sketches every now and then. If the base sketch gets jumbled, it's pretty much time to start over.

Once again, not truly complaining, just planning a course. I'm super excited about the new possibilities. With all the new features, i can actually envision making a useful model with my surfaces as opposed to yet another ugly test case. FreeCAD = best cad!
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Does Sketcher itself have topological naming issues?

Post by DeepSOIC »

emills2 wrote:Are there cases where FreeCAD will make a wire unless i extrude?
I didn't get it. What do you mean?

emills2 wrote:What i don't understand clearly is why i shouldn't join three lines (3 points coincident) if the sketch is not intended to form a simple loop.
I tried to explain why in prev. post, and this is actually just a guess on what's going on. The reality will become clear if I digest the relevant piece of source code.

The most clear manifestation of the problem happened when I was experimenting with folding mode attachment. There, I would drop three hexagons, and constrain some vertices coincident. That made actual edges coincident, and some vertices had 4 connected edges. This caused some madness with the attachment, as I edited the sketch. I think it also happened that I would sketch a few profiles in one sketch (was convenient for some reason), and then extract the relevant profiles with Lattice Explode. Quad vertices again, and sketch formed a single wire instead of the expected two. So after that I made conclusions, and started to avoid the situation.
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Does Sketcher itself have topological naming issues?

Post by DeepSOIC »

emills2 wrote:Has it ever been considered to move the sketcher to permanent unique non-repeating names? Something similar to the way FreeCAD in general handles names: Sketch Sketch001 Sketch002 Sketch003
Well, not much. I did think of it. It was an interesting thought, as it's the basic seed for topological naming, where a name of some extruded edge would somehow be related to the name of the edge in a sketch. And the sketch as the primitive shape is thus responsible for keeping the name persistent. I also thought of using this mechanism to define special alignment geometry, for example construction circles for involute gears. But.. as usual... too many ideas, too little time to get busy with it.
emills2
Posts: 889
Joined: Tue Apr 28, 2015 11:23 pm

Re: Does Sketcher itself have topological naming issues?

Post by emills2 »

DeepSOIC wrote:Well, not much. I did think of it.
GUILTY!! :lol:
DeepSOIC wrote:as it's the basic seed for topological naming
yup, the old "hey, maybe let's not throw all the work into the garbage can" of dealing with any kind of database, ever. But as always, it's rear seat driving. I myself am guilty of it all the time in my personal code (macros).

It's kind of ironic...i went into mechanical engineering instead of computer science because i wanted to avoid the possibility of getting stuck writing databases...

first job out of school? 30% of work is transition a factory's tracking and maintenance database to oracle. Second job? 50% of the time spent doing double entry in autodesk inventor and homebrew PLM. Current job? no database time wasted type issues at all of course, in case anyone at work finds this ;)
DeepSOIC wrote:But.. as usual... too many ideas, too little time to get busy with it
I can never say thank you enough for your efforts (and everyone else's, including the people on the forum who keep the crowd organized and productive!)

here's my current favorite thing: fully parametric point and tangent control of 3D curves (of course located and oriented by linking to ribs linked to the main spine ). this method allows top view and side view independent adjustment for an 'overall' feel. Thank you.
Bezier primary Surface Volume 11-01.png
Bezier primary Surface Volume 11-01.png (46.83 KiB) Viewed 989 times
Post Reply