Joel_graff wrote: ↑Wed Jan 16, 2019 1:53 pm
So to be clear, what I'm trying to determine is the following:
1. Is there any other feasible way to create permanent references (by a unique ID or otherwise) to a point in a sketch that will always remain, even if the sketch gains / loses points or that point moves?
2. Can I be sure that when the SketchObjectPython sees a change, that change will be atomic? That is, it won't possibly include multiple changes at once (e.g., a new point, plus an existing point moving).
3. Would it be possible to create an "empty" constraint that applies to a specific point? It's a constraint that does nothing but exist on a point (or edge).That would provide an excellent way to reference sketcher geometry externally by a unique, unchanging reference and save a lot of the hassle I've described above.
Pinging the two guys who I know will have an opinion.
Congratulations for all that far that you are going with the Civil engineering WB.
I more or less understood the problem (road widening/narrowing). I am not sure I fully understand the solutions. I can try to answer the questions.
1)
Today (v.18): Yes in runtime (id not serialized).
>>> geo0 = ActiveSketch.Geometry[0]
>>> geo0.Tag
'aab26c14-9f21-45c4-ba03-f71eddf58cfb'
This tag will stay the same until you delete the object. Now you close FC and start it again. That object will get a different uuid on restoring, this new uuid will remain the same until you delete the object or close FC.
This uuid is not Sketch specific, but FC global, you won't find a repeated number in any other geometry in FC.
Tomorrow (v.19): If I manage to make Python defined geometry extensions, you will be able to associate whatever you like to a Sketcher Geometry AND this will be serialized.
This is an example of how this could work (the extension is NOT Python defined in this example):
example
Maybe Tomorrow (v.19): Maybe we get some ways to make a geometry not move at all.
2) Not my arena. I think that one is for microelly
3) I think this is an inferior solution to 1). I do not think this is the way. If 1) does not fulfil your needs, let me know why and we can find a solution for your problem.