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

RFC: Copy Groups #614

Open
phkahler opened this issue May 14, 2020 · 7 comments
Open

RFC: Copy Groups #614

phkahler opened this issue May 14, 2020 · 7 comments
Labels

Comments

@phkahler
Copy link
Member

I have a preliminary implementation of copy groups. You can try it out on my "copy-groups" branch here: https://github.com/phkahler/solvespace.git

If this is of interest, I'd like some clarification on how it should work.

First, I used SHIFT-C instead of CTRL-C. I would prefer to use control, just wondering if there are any concerns about that. AFAICT That key combo currently does nothing for 3d groups.

Shift-C immediately makes a copy of the current group. Should CTRL-C do the same? I'd also like CTRL-V to add another copy within the same "copy" group to avoid having one new group for each copy.

If you've ever took the time to make a screw hole with a countersink you know how bad you wanted to just press a key to make a copy of that feature. This does that! These groups also have 6 degrees of freedom, so be careful. They don't seem to rotate easily unless you pin some point down.

I'm also thinking they should have a user adjustable scale other than 1.0.

Comments, thoughts, suggestions?

@whitequark
Copy link
Contributor

I don't think adding general copy groups is a good idea at the moment. The reason for that is group ordering. Internally, groups are hierarchical, but they're linearized for display in the group list, which can have very confusing results.

Adding mirror groups, as a more restricted version, at least avoids making the problem worse than it is now.

I'm also not sure if every new feature we introduce should immediately gain a key binding. We'll just run out of keys.

@whitequark
Copy link
Contributor

(If the explanation above doesn't make a lot of sense to you, let me know and I'll try to go into more detail, but that'll happen later as I haven't been feeling well the last week.)

@phkahler
Copy link
Member Author

@whitequark I understood, and I mostly agree. I just wanted to see if anyone else jumped in.

Key bindings are a limited resource. Also, trying to mimic copy/paste will probably never really work, it's not the same thing and would be confusing.

My replicating holes example is not that great either, you can already copy a complex hole with step translating. It's not as flexible as having each copy with it's own position and orientation but it helps to remember what's already possible.

Yesterday I was able to turn a single copy into a mirror copy just by internally adding the appropriate constrains and scale (-1). It is allowed to move the same way as my previous mirror implementation with much less invasive implementation. Problem is dragging is nowhere near as nice.

All of my new toys are going to take quite a while to figure out the "right" implementation. That's why I post partial stuff - for feedback. Thanks!

@whitequark
Copy link
Contributor

All of my new toys are going to take quite a while to figure out the "right" implementation. That's why I post partial stuff - for feedback. Thanks!

Great, we're on the same page then! It may not always look like it but I'm really happy to see you making progress on many of the oldest issues, even if I think the result can't be shipped right away.

@ghost
Copy link

ghost commented May 17, 2020

Yesterday I was able to turn a single copy into a mirror copy just by internally adding the appropriate constrains and scale (-1).

"Mirror copy" feature is long awaited & really needed.

@phkahler
Copy link
Member Author

This is also similar to #223 but in 3D.

@ruevs
Copy link
Member

ruevs commented May 17, 2020

...group ordering. Internally, groups are hierarchical, but they're linearized for display in the group list, which can have very confusing results.

Indeed #120

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants