Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Placement has to be attached to edge called Edge1 #68

Open
macdroid53 opened this issue Jun 15, 2022 · 13 comments
Open

Placement has to be attached to edge called Edge1 #68

macdroid53 opened this issue Jun 15, 2022 · 13 comments
Labels
confusi confusing behavior that is not actually a bug

Comments

@macdroid53
Copy link

When using the Placement if the support property is set to, for example Edge2, then Edge1 is ignored.

See Placement002 in this file. If the Support is changed to Edge1 the 3rd latch is populated. As it is, set to Edge2, no copy is populated for Edge1.

Lattice2_Placement_on_Edge2.FCStd.zip

@DeepSOIC
Copy link
Owner

Hi, this is by design, to allow cross-item attachment. For example, if you use Edge1 and Edge2 (which Lattice2 reinterprets as Child2.Edge1) as support, Lattice2 will loop as: Child1.Edge1+Clild2.Edge1, Child2.Edge1+Child3.Edge1. You can switch PlacementSubsequence.CycleMode to Periodic, then the first one will also be included (but appear as the last placement of the array).

@DeepSOIC DeepSOIC added the confusi confusing behavior that is not actually a bug label Jun 15, 2022
@macdroid53
Copy link
Author

Ok, I thought it might be by design
But, what are Child 1 & 2? I'm making that connection...

@DeepSOIC
Copy link
Owner

DeepSOIC commented Jun 15, 2022

The shape of the sketch is a compound of wires, ChildX is a child of that compound (a wire). Each child in your sketch has just 1 edge. If you were to make the L-shape placer sketch, each child will have two edges.

@macdroid53
Copy link
Author

Excuse me, I've not looked at the way the sketch handles this is quite a while.

So, what associates the 2 edges of the L-shape to a child?

@DeepSOIC
Copy link
Owner

Sketcher assembles edges into wires by looking at geometrically coincident vertices (the way you constrain it doesn't matter, actual positions do). Also, don't do triple (and higher) connections, they cause broken shapes and unstable edge/vertex numbering. (construction geometry is completely ignored, thankfully)

@macdroid53
Copy link
Author

I'm sure I don't get the details...

I opened one of the sketches in the example. Added an edge to make up an L-shape. One vertex is on top of the other. When the sketch is closed, the Placement is changed as expected.

But, when I select the sketch, then look at it's details in the selection object (I stop the code running in a debugger), the sketch has now 4 'Part::GeomLineSegment' objects (before it had 3). But, I don't see what indicates there is a parent of two of the segments...

@DeepSOIC
Copy link
Owner

Part::GeomLineSegment is the content of Geometry property. Lattice2 does not use it, it uses Shape property.

@DeepSOIC
Copy link
Owner

Use Lattice2's Shape Info to examine shape structure, it was made for that.

Selected 1 subelements:
Vertex2: Vertex ([-14.905163, 35.62737, 4.0])

Selected document object:
  Name = Sketch002
  Label = Sketch002
  Is placement/array = False
Structure: 
Compound (3 objects):
    Wire (1 segments)
    Wire (1 segments)
    Wire (1 segments)

@macdroid53
Copy link
Author

Aha, I see in my debugger the SubShape.SubShapes has the association between two of the edges.. But, what process made that association?

I'll have a look at the Shape Info here shortly.

@DeepSOIC
Copy link
Owner

@macdroid53
Copy link
Author

Ok, so that's a sort of base process.

Thanks...I hope I haven't asked too many questions. I appreciate your patience.

@DeepSOIC
Copy link
Owner

well, they are good questions!

@quiret
Copy link

quiret commented Oct 27, 2022

Thank you, DeepSOIC, for creating this amazing workbench! You are a technical mastermind of which there are only few. Your workbench enables workflows that are complex but which are too cumbersome to do in regular FreeCAD. I also love that you added the PartDesign equivalent of Feature Mirror as Lattice2 Mirror tool! You enable people.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
confusi confusing behavior that is not actually a bug
Projects
None yet
Development

No branches or pull requests

3 participants