-
Notifications
You must be signed in to change notification settings - Fork 511
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
Suggestion: Add radio buttons to rotate groups for combine method #615
Comments
IIRC we looked into it with @Evil-Spirit but there was some issue. I don't remember what it was anymore though. |
@phkahler (Aside: I've edited the source block in your comment to be more readable, since it was pretty confusing the way it got laid out. Take a look at the markdown introduction; the most useful part is just the |
Can you attach an image of result and describe why this improvement helps to make it? |
Also. I propose a new combine method for groups - clip & assemble. The current group should be clipped (b - a) and then assembled. This is perfect for wooden constructions like roofs. |
@Evil-Spirit But if you do B-A there is nothing left to assemble? Just part of B. |
A stays and assembled with B-A |
How is that different that A union B? |
You have an assemble of two different parts instead of one solid model. You can suppress solid model of prev group and see a surface of contact. The reason is the same why we choose assemble mode for extrusion groups |
I see. But this is not the same option - actually, we have two different combine options. First is operation for combining with the previous group, the second is for operation to combine inside the current group (step and repeat - like). |
Yes @Evil-Spirit it looks like a hole (extrude as difference or even lathe as difference) is first rotated and Union combined with the original hole and then the entire set is subtracted from whatever existed 2 groups prior. This seems like it would be confusing to a user, even with radio buttons who might say "it says union but it's making more holes, which is what I wanted but...." @ruevs This is really a hack. One thing I want to implement (and tried before) is frustum extrusions. That will allow you to make a pentagon into a 5-sided truncated pyramid, and the intersection of 2 of those can form a dodecahedron. A tool like that seems more generally useful than this. It will also create all the line entities on the edges of the frustum, which booleans don't do. Either way, intersection is very important. Another way to make a dodecahedron (empty inside) is to extrude a pentagon to some thickness and then make an assembly from 12 of them. My recent experiment in "copy groups" allowed the same thing without the need to save and link the pentagonal extrusion, just make 11 copies of it. |
I agree that this seems to be confusing enough to be more trouble than it's worth. Remember, we can't really remove features we add. |
Since @phkahler, who requested this feature, thinks it's more trouble than it's worth, I'm going to close this. We can of course revisit it later if more use cases arise. |
I don't know it this is a good idea or not. As it exists when rotating a group, it picks up the last combine operation of the parent group - a regular extrusion will replicate N times and form a union of those. A hole extruded as difference will produce N holes when rotated. The idea here is to allow the full selection of Assemble, Union, Difference, and Intersection for rotate groups.
The attached model uses 2 extrudes - only to allow the second one to be an intersection. I then added 2 lines in Group::GenerateForStepAndRepeat() to allow the copies to be intersected:
The experimental lines are commented out here. This is not what I propose, but rather adding the regular radio buttons on the text window. It'd be fine to inherit the operation from the parent group but being able to change it might be nice.
Make the changes above and load the following model to see how powerful this can be.
dodecahedron.zip
Also to @ruevs if you load that with unmodified master the booleans fail. It seem intersection works more reliably than union or difference. I have no idea why, but maybe it's a hint.
This concludes todays episode of making SolveSpace do crazy stuff. Thoughts?
The text was updated successfully, but these errors were encountered: