Assembly4 question

Discussion about the development of the Assembly workbench.
ericsmoll
Posts: 17
Joined: Tue Sep 22, 2020 5:49 pm

Assembly4 question

Postby ericsmoll » Tue Jan 19, 2021 8:41 pm

Hi,

I am new to assembly 4 workbench and have a few questions.

1.) Why are there two buttons for creating a new part? One toggles the part as active, one does not. Are there subtle reasons to use one over the other or are they interchangable.

2.) I have an issue where simply opening and closing the sketch in a body in a part linked in a assembly4 model somehow disturbs the placement of a local coordinate system of the same part resulting in a misalignment in the overall model. I can easily edit the local coordinate system references I tried to make a toy model to reproduce the problem but it only happens in my large model system (~9 MB). If anyone can help, I would be happy to email it and give detailed instructions on how to reproduce the issue. Otherwise, does anyone have any idea what causes this?

3.) Why does it seem like there are two names for each local coordinate system in the "place a part" menu that is launched with the "link part" button? (See attached image).

-Eric
Attachments
TwoLCSNames.png
TwoLCSNames.png (10.18 KiB) Viewed 1060 times
ericsmoll
Posts: 17
Joined: Tue Sep 22, 2020 5:49 pm

Re: Assembly4 question

Postby ericsmoll » Thu Jan 21, 2021 2:32 am

I have another issue. I have an assembly4 model with a series of multi-body parts that are linked into the model.

It is convenient to use the manipulate workbench to mate pins into holes, etc. When I try to use this toolbox to manipulate a part in my assembly model, the pin moves and a blue "needs recalculation" icon appears on the body I am moving. When I recalculate the workbench, the movement induced by the manipulate workbench is reversed. Why is this happening?

The manipulate toolbox moves the object on the screen but in the data properties of the object, I don't see the position numbers changing.
ericsmoll
Posts: 17
Joined: Tue Sep 22, 2020 5:49 pm

Re: Assembly4 question

Postby ericsmoll » Mon Jan 25, 2021 8:13 pm

Hello!

I have an assembly 4 question. When I upload certain parts (e.g., a CAD model of a miniconflat elbow as shown in my example file), Positioning local coordinate systems on the part by clicking on edges doesn't seem to work properly (e.g., clicking on the circular edge of a flange does not move the coordinate system to the center of the plane defined by the edge). Is there a reason for this (see attached file).

OS: Ubuntu Core 16 (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22989 (Git)
Build type: Unknown
Branch: cloud
Hash: 8e1ec490139b6235e3e1019adc8ba4fb7389899e
Python version: 3.5.2
Qt version: 5.5.1
Coin version: 4.0.0a
OCC version: 7.4.0
Locale: English/UnitedStates (en_US)


Best,
Eric
Attachments
ElbowDemo.FCStd
(35.54 KiB) Downloaded 17 times
User avatar
Kunda1
Posts: 10626
Joined: Thu Jan 05, 2017 9:03 pm

Re: Assembly4 question

Postby Kunda1 » Tue Mar 02, 2021 11:43 pm

Mod edit: move to the assembly subform.

Up please ping the assembly4 forum thread in this specific sub forum to get assistance
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
Zolko
Posts: 1424
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly4 question

Postby Zolko » Wed Mar 03, 2021 7:34 am

ericsmoll wrote: Tue Jan 19, 2021 8:41 pm 2.) I have an issue where simply opening and closing the sketch in a body in a part linked in a assembly4 model somehow disturbs the placement of a local coordinate system of the same part resulting in a misalignment in the overall model.
topological naming issue

3.) Why does it seem like there are two names for each local coordinate system in the "place a part" menu that is launched with the "link part" button? (See attached image).
because you have renamed it (it shows the name and the label)

ericsmoll wrote: Thu Jan 21, 2021 2:32 am It is convenient to use the manipulate workbench to mate pins into holes, etc. When I try to use this toolbox to manipulate a part in my assembly model, the pin moves and a blue "needs recalculation" icon appears on the body I am moving. When I recalculate the workbench, the movement induced by the manipulate workbench is reversed. Why is this happening?
Yes, the "Transform" tool is not very compatible with the Assembly4 workbench: they both change the Placement of an object, and at the end Assembly4 "wins". You can use the Transform tool if you choose "Ignore" in the placement of the link: then Asm4 stops managing the part, but you can't have both

ericsmoll wrote: Mon Jan 25, 2021 8:13 pm When I upload certain parts (e.g., a CAD model of a miniconflat elbow as shown in my example file), Positioning local coordinate systems on the part by clicking on edges doesn't seem to work properly (e.g., clicking on the circular edge of a flange does not move the coordinate system to the center of the plane defined by the edge). Is there a reason for this (see attached file).
don't understand (what is "upload" ?)
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — tutorials here and here
zardozer
Posts: 47
Joined: Sat Nov 07, 2020 2:35 am

Re: Assembly4 question

Postby zardozer » Sat Mar 06, 2021 12:41 am

ericsmoll wrote: Mon Jan 25, 2021 8:13 pm Hello!

I have an assembly 4 question. When I upload certain parts (e.g., a CAD model of a miniconflat elbow as shown in my example file), Positioning local coordinate systems on the part by clicking on edges doesn't seem to work properly (e.g., clicking on the circular edge of a flange does not move the coordinate system to the center of the plane defined by the edge). Is there a reason for this (see attached file).
Ok, I think I know what you mean. The issue is that you probably downloaded this as a step file, and it contains a hierarchy of parts nested within other parts. And some parts, like the flange of the pipe at the top, have placement properties that it inherits from the yellow part it's under. And confusingly, the parts that make up the flange can have their own placement as well.

If you try to create an LCS in the root part, to be used as a connector, it doesn't inherit the placements properly. To get the LCS in the right location, you have to create it in the sub part... however, then you can't use that LCS as a connector in assembly 4 because it demands that all connector LCS objects need to be in the root.

As you can see here, LCS_1 is in the right spot in terms of the part hierarchy, the root of the part. But it's not placed properly probably because it doesn't inherit the placement of the yellow part.

LCS_2 is correctly placed on the flange, but that is created in the sub part. You can't use it as a connector. If you try to move this to the root... the flange comes with it and loses its part placement.

What I would really love is for when you create the LCS in the main root, that it be placed properly no matter how many levels embedded the sub part is. Can this be done?
Attachments
LCS Placement.png
LCS Placement.png (178.68 KiB) Viewed 724 times
User avatar
Zolko
Posts: 1424
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly4 question

Postby Zolko » Sat Mar 06, 2021 10:58 am

zardozer wrote: Sat Mar 06, 2021 12:41 am What I would really love is for when you create the LCS in the main root, that it be placed properly no matter how many levels embedded the sub part is. Can this be done?
this is not trivial. There is a reason for the App::Part container and the "Links go out of the allowed scope" warning message. But this is a very important feature, and I've also run into this same trouble, so some workaround should be found.

One thing I've though about is to be able to do the "Import Datum" on pure App::Part containers (as opposed to App::Link objects as today), raising one level up each time. So if you've created an LCS on a feature in a nested part, you can do the import several times until the datum is at the correct level. But it's quite brute-force and may-be not very robust.

Another thing that could be tried is to automagically create a ShapeBinder (or something equivalent) between the part where the datum resides and the part where the support feature is located. But I don't know ShapeBinders very well, so I don't really know how to use them in this context.

Any thoughts ?
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — tutorials here and here
zardozer
Posts: 47
Joined: Sat Nov 07, 2020 2:35 am

Re: Assembly4 question

Postby zardozer » Sat Mar 06, 2021 5:37 pm

Zolko wrote: Sat Mar 06, 2021 10:58 am
zardozer wrote: Sat Mar 06, 2021 12:41 am What I would really love is for when you create the LCS in the main root, that it be placed properly no matter how many levels embedded the sub part is. Can this be done?
this is not trivial. There is a reason for the App::Part container and the "Links go out of the allowed scope" warning message. But this is a very important feature, and I've also run into this same trouble, so some workaround should be found.

One thing I've though about is to be able to do the "Import Datum" on pure App::Part containers (as opposed to App::Link objects as today), raising one level up each time. So if you've created an LCS on a feature in a nested part, you can do the import several times until the datum is at the correct level. But it's quite brute-force and may-be not very robust.

Another thing that could be tried is to automagically create a ShapeBinder (or something equivalent) between the part where the datum resides and the part where the support feature is located. But I don't know ShapeBinders very well, so I don't really know how to use them in this context.

Any thoughts ?
Is the import datum method on pure app::part containers very difficult to implement? If not, it could be an ok temporary measure. Or at least it could be useful in some circumstances, even if it doesn't become the 'proper' method to do this.

But can it be made so that you can connect to an LCS that's not on the root? Is that possible? From a user perspective, I don't think this is ideal, since it relies on you knowing how to dig into the correct part in the tree to create the LCS. In a truly polished assembler, you shouldn't even need to think about this... you should be able to select the geometry where you want to put the joint, and it should "just work." But again, it could maybe be an option if it's not too hard to implement.

For shapebinder, currently you can't do this with only a part container. If shapebinder can be modified so that it can work between part containers and not just between bodies, maybe. But what I see here is that it kind of makes the tree more complicated now that it adds an extra item every time you want to make a joint like this. This is the sort of thing that makes FreeCAD pretty unfriendly and hard to understand if we continue to do things in this way.
pate
Posts: 2
Joined: Mon Mar 15, 2021 8:47 am

Re: Assembly4 question

Postby pate » Mon Mar 15, 2021 10:26 am

Hello

I'm new here. I have used a few years Freecad work and leisure activities. My mother tongue is Finnish. Sorry, I translate the text on Google.

I've managed to use Freecadia well. Parts, assemblies and g-code for machine tools.

I have developed my my client for their products in the PDM management Aras Innovator (open source) system. In the Aras PDM system, the component drawings are 2D files (* .dxf, * .pdf, * .jpg). Now they want 3D models of the products. I use Freecad 0.19 for that.

Assembly4 I come across a problem. The names of the parts to be assembled must not begin with a number but must begin with a letter. Another problem is "-", it can't be used, which must be "_". This is just a small thing, but we would like the names of the parts of the Aras pdm system and the names of the Freecad 3D models to be almost the same. This would be a great advantage because there are a lot of parts and the people in the company know how to identify the invented parts names. We use the Aras assembly structure EBOM, which means that the products can be very modular. The EBOM structure usually has 3 ... 5 levels.
Is there a new possibility for naming? :?:

I would also be interested in Freecad and Aras Innovator pdm connection. Is it coming to Freecad development? I could test it. 8-)
Attachments
Aras BOM.jpg
Aras BOM.jpg (130.11 KiB) Viewed 446 times
excavator_bucket.jpg
excavator_bucket.jpg (142.2 KiB) Viewed 446 times
User avatar
Zolko
Posts: 1424
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly4 question

Postby Zolko » Mon Mar 15, 2021 10:51 am

pate wrote: Mon Mar 15, 2021 10:26 am Assembly4 I come across a problem. The names of the parts to be assembled must not begin with a number but must begin with a letter. Another problem is "-", it can't be used, which must be "_" ... Is there a new possibility for naming?
Yes, there is.

1) the initial problem comes from the FreeCAD internals, and there is nothing to do about it: object names cannot begin by numbers, and "-" is interpreted as "minus" by Python thus cannot be used in names

2) BUT: FreeCAD objects have internal Names, that are subject to these limitations, and they also have Labels, which is what is displayed, and these labels have no limitation. So the solution is to import your files as you can, and then re-label each object with the correct name.
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — tutorials here and here