[Feature Request] Radial array/polar pattern in Sketcher

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
Shalmeneser
Veteran
Posts: 9475
Joined: Wed Dec 23, 2020 12:04 am
Location: Fr

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by Shalmeneser »

thomas-neemann wrote: Tue Nov 02, 2021 12:40 pm I would do it this way
To set all small circles equals, you can :
* Box-select everything
* unselect big circles
* E-key
User avatar
thomas-neemann
Veteran
Posts: 11801
Joined: Wed Jan 22, 2020 6:03 pm
Location: Osnabrück DE 🇩🇪
Contact:

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by thomas-neemann »

Shalmeneser wrote: Tue Nov 02, 2021 2:14 pm
thanks, this is a good indication.
Gruß Dipl.-Ing. (FH) Thomas Neemann

https://www.youtube.com/@thomasneemann5 ... ry=freecad
Crow
Posts: 31
Joined: Thu Nov 04, 2021 10:14 am

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by Crow »

NewJoker wrote: Wed Sep 01, 2021 5:56 pm Hi,

I know that there is a Polar Pattern tool in the Part Design workbench but no such thing in the Sketcher (even though it has a Rectangular Array option already). I think that it could be really useful. Is there any feature request or macro for that ? Or is the Part Design Polar Pattern the only option for now ?
I completely agree with the OP and I have yet to see a good explanation as to why polar patterns within sketches can create problems and/or is a bad habit.

I have an example geometry here. With a sketch that has both a circular array of features, imposed on an octagon, plus a non-symmetrical rectangle and circle that needs to reference the octagon lines.

If I only made an eighth of this geometry in the original sketch, and tried to pad and pattern that, I would either end up with too many rectangles and circles, or I would have to add them separately.
If anyone knows how to do this after the fact, in a way that subsequently allows me to loft or sweep the combined geometry, please show me how to do it. I do assume that it would be more laborious to do that though (and create more complex feature tree), than simply having an array in the sketch to begin with.
Helix_sketch.PNG
Helix_sketch.PNG (104.67 KiB) Viewed 1607 times
This is the sketch, where I have manually added all the symmetrical octagon-related lines, as well as constraints.
Helix_Cam.PNG
Helix_Cam.PNG (87.4 KiB) Viewed 1607 times
Here is the spiral-cam solid that I intended to sweep using the sketch. Now, I'm a beginner in using FreeCAD, so maybe there is an easy way to add a geometry that follows the spiral path of this helix, but my intuition tells me this will be difficult if done using "traditional means" such as the Pocket function within Part Design. Please tell me more if you have an intuitive way to do that.

My point with this is that I personally (and it seems others) have use for a radial pattern (array) feature within the Sketch environment.
I also want to discuss the problems that people bring up, most notably the complexity of adding additional constraints to geometry copied via radial pattern.

Lets look at this example from Siemens NX (Formerly Unigraphics):
He_NX_Array.PNG
He_NX_Array.PNG (123.42 KiB) Viewed 1607 times
He_NX_Pattern_Curve_Circular.PNG
He_NX_Pattern_Curve_Circular.PNG (215.49 KiB) Viewed 1607 times
This is a Linear Array, and a Radial Array, respectively, as shown in the NX user-interface. (It would be called a Pattern-Curve-Circular in NX though).
I have drawn an arrow to show the "constraint" symbol that represents the patterns.

I want to emphasize that these are active arrays or patterns, in that they're parametric. For example, you can go back and change the number of occurrences and the pattern will update. The pattern itself is a slave geometry to the selected curves and lines in the sketch, and therefore do not need additional constraints. It has the same ability with the mirror-function, by the way (something I miss in FreeCAD).

Maybe I'm wrong, but in that case I would sincerely appreciate if someone could explain why this is still "inefficient" or somehow a cause for potential problems.

And one more thing I would like to bring up, is that I feel that it's somewhat disreputable to point out that "this is free software, so take it or leave it" or "if you don't like it then go to a commercial platform and use that instead".
Because: This forum is called Open Discussion, and the definition of the forum is "Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place."
So, when we the users suggest an additional feature as feedback, this is our way of trying to contribute to making FreeCAD better. We are not here to make demands so please respect other peoples opinions. Thank you.
chrisb
Veteran
Posts: 53943
Joined: Tue Mar 17, 2015 9:14 am

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by chrisb »

This sketch is too complicated. You should split it in two. One of them can then be the base of a patterned feature.
(Having too complicated sketches is a bad habit too - been there, done that!)
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Crow
Posts: 31
Joined: Thu Nov 04, 2021 10:14 am

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by Crow »

chrisb wrote: Mon Nov 08, 2021 5:35 pm This sketch is too complicated. You should split it in two. One of them can then be the base of a patterned feature.
(Having too complicated sketches is a bad habit too - been there, done that!)
  • I believe you're missing the point. I only made this to illustrate that a sketch could have elements that are not symmetrical with the rest of a circular array. What if the circle was not in line with the rectangle? Would I be able to use a pattern then?
  • You say that the sketch is too complicated and that this is a bad thing. Yet again you neglect to explain why and how this is the case. I think you also ignored my suggestion to add a parametric array withing Sketch, which would keep the pattern within the Sketch environment.
  • You say that I could split this example in two and then use a pattern (mirror?) to complete it. How would that look if you were to do it? Are you suggesting to use a mirror tool to pattern the one half to the other? (Which one?) Because I can't get this to work with the existing mirrors. The Sketcher Mirror will copy the lines, but you'll end up with an equally complex sketch, without adequate constraints, sometimes even unconnected vertexes. Part Design Mirror refuses to work on lines on my end. Part WB Mirror can mirror the lines but results in an error ("links go out of the allowed scope") and the mirrored sketch is created outside the active body. Draft WB Mirror also gives me a "links go out of the allowed scope" error.
drmacro
Veteran
Posts: 8870
Joined: Sun Mar 02, 2014 4:35 pm

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by drmacro »

It is rather annoying that, I think, 2 posts of mine in this thread have gone missing...

So, I'll paraphrase.

As for what you refer to in the NX example. I don't really see what functionality you are describing. The bits that I think I get seem like things that can be done in FreeCAD, but, not grokking the details, I can't really offer an example to address it. I'm happy to listen to more description because it sounds like it might be a cool thing to try.

In the OP of this thread you mention you "feel like the development of FreeCAD has gotten stuck in a narrow-minded one-dimensional way of thinking where there is only one way you're supposed to solve a problem."

I believe you mistake the reality of the situation for some sort of "way of thinking".

To quote one of the founders: "FreeCAD has a very small team of developers. We have not as much time as we would like to dedicate to FreeCAD, and things are not planned ahead, they are done when some developer sees it fit and when he finds time to do it. So we don't maintain a list of tasks to be done. It is up to you to find something you would like to do, for example a defect you would like to correct, or a small feature you think is missing."

It is not a way of thinking, it's simply there aren't enough hands. The "team" he refers to is a handful (and that might be an over estimate) of people who are volunteers in their spare time.

You also mention possibly seeming arrogant and that there is some sort of disrespect when forum members aren't cheering people, like you, who come here and proffer these ideas. If there is any arrogance, it is in thinking you are the first person to put these ideas forward or assuming that you have cornered the market on being user of commercial CAD software.

Over and over we see the question: "how do I do this in FreeCAD". Then someone explains the way to do it. That way may be the only way available, or it may be different, kludgey, or even be a verified workaround. And the response is "well I used to do it this way in this here other software, I like that better, you should think about changing it to my liking because I'm frustrated". It doesn't really matter if you are frustrated or if the feature you suggest is the one feature that will make AutoDESK shudder in their boots...the issue is, who's going to code it?
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by adrianinsaval »

drmacro wrote: Mon Nov 08, 2021 6:44 pm It is rather annoying that, I think, 2 posts of mine in this thread have gone missing...
It's just that the same discussion is for some reason going on in parallel in two threads: https://forum.freecadweb.org/viewtopic. ... 58#p545209
(guess the forum got parallelization before OCCT and FreeCAD ;) )
Crow
Posts: 31
Joined: Thu Nov 04, 2021 10:14 am

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by Crow »

drmacro wrote: Mon Nov 08, 2021 6:44 pm It is rather annoying that, I think, 2 posts of mine in this thread have gone missing...

So, I'll paraphrase.

As for what you refer to in the NX example. I don't really see what functionality you are describing. The bits that I think I get seem like things that can be done in FreeCAD, but, not grokking the details, I can't really offer an example to address it. I'm happy to listen to more description because it sounds like it might be a cool thing to try.

In the OP of this thread you mention you "feel like the development of FreeCAD has gotten stuck in a narrow-minded one-dimensional way of thinking where there is only one way you're supposed to solve a problem."

I believe you mistake the reality of the situation for some sort of "way of thinking".

To quote one of the founders: "FreeCAD has a very small team of developers. We have not as much time as we would like to dedicate to FreeCAD, and things are not planned ahead, they are done when some developer sees it fit and when he finds time to do it. So we don't maintain a list of tasks to be done. It is up to you to find something you would like to do, for example a defect you would like to correct, or a small feature you think is missing."

It is not a way of thinking, it's simply there aren't enough hands. The "team" he refers to is a handful (and that might be an over estimate) of people who are volunteers in their spare time.

You also mention possibly seeming arrogant and that there is some sort of disrespect when forum members aren't cheering people, like you, who come here and proffer these ideas. If there is any arrogance, it is in thinking you are the first person to put these ideas forward or assuming that you have cornered the market on being user of commercial CAD software.

Over and over we see the question: "how do I do this in FreeCAD". Then someone explains the way to do it. That way may be the only way available, or it may be different, kludgey, or even be a verified workaround. And the response is "well I used to do it this way in this here other software, I like that better, you should think about changing it to my liking because I'm frustrated". It doesn't really matter if you are frustrated or if the feature you suggest is the one feature that will make AutoDESK shudder in their boots...the issue is, who's going to code it?
Yes, as pointed out by adrianinsaval, you're probably confused because you posted some comments in my thread where I raised a similar concern. My thread:
https://forum.freecadweb.org/viewtopic.php?f=8&t=63461

Also I want to point out that that I'm not the OP of this current topic (where you are reading this). I was redirected here by User1234 because this topic is similar to the sketch-part of my topic.

Again I'm sorry for making the Sketch-Array thing a major part of my topic, and I didn't know that this topic existed.

I did not use the terms disrespectful or arrogant, and it is not my intention to call anyone out or make accusations or personal attacks. I did however, state that (in my opinion) it would be disreputable for any community to disregard the opinions and feedback from new users. -And in that spirit I intended to promote a productive, and objective discussion about potential new features in FreeCAD.

I'm sorry if you feel like I implied anything about you personally. Also I want you to know that I don't think Ive cornered the market, and I never meant to imply that I have some kind of monopoly on good ideas. I made a mistake of thinking this particular system hadn't been suggested before because I looked in the wrong places. I'm fully aware that there are now several people who have asked for this (Arrays in Sketcher), including the OP of this topic.

And yes, In my topic I mentioned this issue had me frustrated. This was (and you can go back and read that if you want) related to me apologizing for sounding like an angry rant, if such was the case. It was not an incentive for someone to appease my requests.

The features I am referring to from NX do not exist in FreeCAD. That's kind of the point (as well as providing an example for how this could be done in FreeCAD). I can explain more about Siemens NX but I assume you've lost interest.
https://en.wikipedia.org/wiki/Siemens_NX
drmacro
Veteran
Posts: 8870
Joined: Sun Mar 02, 2014 4:35 pm

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by drmacro »

But, I'm not getting the point across.

I wasn't pointing at you or the topic particularly. We see time and again people insisting that <pick a topic> must be included in FreeCAD because their particular way or software does it. My point is it does not matter. It is not there, there aren't spare devs to make it there. And in many cases it been noted, before. And the people insist that any way that does not do it their way is to much bother to learn because it's not their way.

There are hundreds of users who will probably never look at the tool you propose because they are architects. They want BIM and architect stuff and are heavily invested in Draft workbench. Maybe they could use it to do spiral stairs...

While there is always profuse discussion any time threads like this arise, in the end, if the user who desires it isn't going to code it and do a PR, then it goes into the tracker and waits for someone to take interest and do the code.

As for what NX can do and FreeCAD can't, I'm not convinced there is NO way to do it in FreeCAD. I'm not convinced there is either.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
chrisb
Veteran
Posts: 53943
Joined: Tue Mar 17, 2015 9:14 am

Re: [Feature Request] Radial array/polar pattern in Sketcher

Post by chrisb »

Crow wrote: Mon Nov 08, 2021 6:28 pm
  • I believe you're missing the point. I only made this to illustrate that a sketch could have elements that are not symmetrical with the rest of a circular array.
That was exactly my point. I know that there are things that have both kinds of elements: patternable and non patternable. But there is no requirement to model them in the same sketch.

Example:
Let's assume it was 6 weeks before christmas and I want to model this:
SnipScreenshot-0438f3.png
SnipScreenshot-0438f3.png (10.8 KiB) Viewed 1470 times
The star suggests a pattern, the handle does not. To model this using a PolarPattern, I model one if the 5 rays and pattern it. Then I model the handle.
What if the circle was not in line with the rectangle? Would I be able to use a pattern then?
See the example above: split it into a pattern and a non pattern part.
[*] You say that the sketch is too complicated and that this is a bad thing. Yet again you neglect to explain why and how this is the case.
This is a difficult one, because I admit that there is no (mathematical) proof of my statement; or at least not a complete one. However, there are strong indications that I am right anyway:
1) the probably most neglectable: my own experience in creating and teaching sketching and helping out in the forum. Many people come here with horribly complicated sketches and they are happy to see them simplified.
Besides having some beauty in themselves, clearly constructed sketches are easier to understand and to maintain by others and even by the author after some time of not having worked on them.
2) recommendations from the big boys: a manufacturer of one of the big systems recommended the 7-7-7 rule: a sketch must have either no more than 7 elements, or no more than 7 dimensions or take no longer than 7 minutes. This was some time ago and may be extended now, but the idea remains.
3) recommendations from professional CAD modelers who work on a daily basis with professional systems.
4) (and this one is the only one which can be measured): simple sketches are simpler for the solver. The time needed to solve a sketch is not growing linearly and a sketch having doubled the number of constraints - which means roughly to have doubled the number of elements - takes much more than double time to solve.
[*] You say that I could split this example in two and then use a pattern (mirror?) to complete it.
Let's stick to the topic and not open another can of worms with a mirror in it. It boils down to something similar to the example given above, which I attach for further investigations.
Attachments
advent.FCStd
(22.22 KiB) Downloaded 28 times
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Post Reply