##### Personal tools
You are here: Home Use limits of fuse operation ...

# limits of fuse operation ...

Up to Use

### limits of fuse operation ...

Posted by Francesco at November 12. 2012

I am having problems with a normal fuse operations.

I am fusing together several solid cylinders using a .py script, but after few of them i
obtain a message :"MakeBoolean : Fuse operation can not be performed on the given shapes "

p, li { white-space: pre-wrap; }

Given the fact that the two shapes are a cylinder and another shape made of cylinders i do not understand the message.

So i was wondering if the fuse operation has any technical hidden limitations...

thank you

francesco

### Re: limits of fuse operation ...

Posted by Saint Michael at November 12. 2012

Hi Francesco

Probably, either one of your initial shapes or a result of intermediate fuse is not a solid. Maybe your "another shape made of cylinders" contains not only solids? If you've got a compound, explode it into sub-shapes on type "shape" to see types of items of the compound.

St.Michael

### Re: limits of fuse operation ...

Posted by Francesco at November 13. 2012

Yes, when i fuse the cylinders something goes wrong, the result shape has surfaces. Which starting from solid it should not happen ...

i reported also here:

Thus i was thinking to a coding limitation like 10 fuse operations, or simply a bug, or my Salome' installation has some problems...

ideas?

unfortunately to study some random effect  in a regular structure i was hoping to do something like 1000s fuse operations...

thank you

francesco

### Re: limits of fuse operation ...

Posted by Saint Michael at November 13. 2012

There are always the same problems with multiple boolean operations: they are long, take much memory and there are bugs. With your structure3.py you face the latter of these problems.

I suppose you have not coped with an approach I proposed in your other thread? http://www.salome-platform.org/forum/forum_10/151095632

St.Michael

### Re: limits of fuse operation ...

Posted by William Tougeron at November 13. 2012

Hello Francesco,

Endeed, I looked to your script and the fusion between Cylinder 2 and 3 is not a solid. It seems that it is not possible to fuse them by this way.

In Salome it sometimes happens that "normal" fusion, intersection, partition, etc. doesn't work without "logical" reason from a user point of view.

But the fusion between Cylinder 1 and 2 works well. So, maybe you can reproduce Cylinder 1 / 2 situation between the cylinder 2 and 3. In other words, you can split the Cylinder 2 at its middle and rotate the side touching the Cylinder 1 by 180 degrees, so the Cylinder 2 be replaced by two halfs of Cylinder 2. Then you can fuse each half Cylinder 2 with the Cylinder 1 and 3 respectively (it works), and then fuse these two fusions.

Below is a picture of what I mean. I tested it and it works.

William

Attachments

### Re: limits of fuse operation ...

Posted by Francesco at November 13. 2012

the problem is that i would like to build an irregular structure, meaning to give a random displace to each node.

thus the minimal building block will became the single cylinder.  So for this case i don't see alternatives to the boolean.

Do you?

If i fail the irregular approach i may go back to a regular structure and try to use the shell approach...

Any other idea?

thank you

for the help

francesco

### Re: limits of fuse operation ...

Posted by Francesco at November 13. 2012

Thank you,

the problem is that i was planning to automatically build  up a structure with 100s cylinders (or even 1000s).  if the "critical" fuse operation are few i can think of fixing them manually, otherwise no. The fact that i have problems already after about 10 cylinders leave me little hope that i will succeed with this approach.

Do you think that the problem is related to accuracy? is there a way to decrease the accuracy of Salome such the it sees "less smooth" volumes and surfaces? may this help? do you see what i mean?

really any idea is well come.  thank you a lot for helping...

francesco

Previously William Tougeron wrote:

Hello Francesco,

Endeed, I looked to your script and the fusion between Cylinder 2 and 3 is not a solid. It seems that it is not possible to fuse them by this way.

In Salome it sometimes happens that "normal" fusion, intersection, partition, etc. doesn't work without "logical" reason from a user point of view.

But the fusion between Cylinder 1 and 2 works well. So, maybe you can reproduce Cylinder 1 / 2 situation between the cylinder 2 and 3. In other words, you can split the Cylinder 2 at its middle and rotate the side touching the Cylinder 1 by 180 degrees, so the Cylinder 2 be replaced by two halfs of Cylinder 2. Then you can fuse each half Cylinder 2 with the Cylinder 1 and 3 respectively (it works), and then fuse these two fusions.

Below is a picture of what I mean. I tested it and it works.

William

### Re: limits of fuse operation ...

Posted by William Tougeron at November 14. 2012

Hello,

It is not perfect, but it seems that if you slightly increase the cylinder length, for example 1.001 instead of 1.000, it works.

Besides, if deal with great number of elements in a script, I recommend you to use arrays. I re-wrote your script with my style to show you what I mean.

Hope it helps.

William

Attachments

### Re: limits of fuse operation ...

Posted by Francesco at November 16. 2012

Thank you very much William,

I tested your suggestion of 1.001, thank you also for rewriting the full script, i am still studying it...

francesco

### Re: limits of fuse operation ...

Posted by William Tougeron at November 20. 2012

Hello, Francesco,

Please, ignore the "pi = 3.141592654" line in my script...

It is from some tests I made to rotate randomly cylinders before fusion... But its wasn't a solution.

Best regards,

William