sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    ⚠️ Update | Sketchucation Tools 5.0.8 released with licensing improvements and bugfixes Download

    Question about "open" groups.

    Scheduled Pinned Locked Moved Developers' Forum
    22 Posts 5 Posters 3.1k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jim
      last edited by

      But the Group's transformation stays the same even if its entities are changed... so what's the point trying to get something you already know? Sorry if I'm missing the obvious.

      Hi

      1 Reply Last reply
      Reply Quote 0
      • T
        todd burch
        last edited by

        OK, you're right.

        What are you trying to do? Can you use the group's transformation origin and apply that to any translation you need to do for your cpoints?

        1 Reply Last reply
        Reply Quote 0
        • C
          CPhillips
          last edited by

          @unknownuser said:

          OK, you're right.

          What are you trying to do? Can you use the group's transformation origin and apply that to any translation you need to do for your cpoints?

          I could if I could get the original transformation. But as I said its set to identity as soon as you open the group.

          When I create the group of construction points I set an attribute that has its initial position in the group. Then the user opens the group, manipulates the points and I compare the new position to the position stored in the attribute. It works fine if the group is closed but if it is still open the points are transformed into world space instead of group space so I am comparing apples and oranges.

          @jim said:

          But the Group's transformation stays the same even if its entities are changed... so what's the point trying to get something you already know? Sorry if I'm missing the obvious.

          The groups transform does not stay the same. Not only is the transform zeroed but the location of all the points is world relative instead of group relative. If I have a point at position (1,1,1) in a group when I open the group its position will be (1,1,1) + whatever the transformation.origin of the unopened group is. Not to mention the effects of rotation and scaling.

          It seems when you open a group Sketchup transforms all the entities in that group by the groups transform and then sets the group transform to identity.

          1 Reply Last reply
          Reply Quote 0
          • T
            todd burch
            last edited by

            I had a similar issue recently and I simply had to tell the user that the operation he was trying to perform was not allowed while in Group edit. This was because of the bugs dealing with working with groups and being out of context when in group/component edit.

            That's the way the ball bounces.

            1 Reply Last reply
            Reply Quote 0
            • C
              CPhillips
              last edited by

              @unknownuser said:

              I had a similar issue recently and I simply had to tell the user that the operation he was trying to perform was not allowed while in Group edit. This was because of the bugs dealing with working with groups and being out of context when in group/component edit.

              That's the way the ball bounces.

              Thats disappointing.

              Thanks Todd.

              1 Reply Last reply
              Reply Quote 0
              • C
                CPhillips
                last edited by

                I found a work around but its a little gross. I don't fully trust observers not to crash Sketchup.

                I put a entityObserver on my lattice group and then in onChangeEntity I store the current transformation in an attribute. Then when a user moves a point I check to see if the group is open (via observer) and if so I transform my control points by the inverse of the stored transform. That gives me a group relative point. whew.

                Thanks for the help.
                Chris

                1 Reply Last reply
                Reply Quote 0
                • T
                  todd burch
                  last edited by

                  I figured it out!

                  If your group is open, get any entity in the group, and do this:

                  entity.parent.origin

                  That will give you the origin of the group's transformation. Viola!

                  Todd

                  1 Reply Last reply
                  Reply Quote 0
                  • C
                    CPhillips
                    last edited by

                    @unknownuser said:

                    I figured it out!

                    If your group is open, get any entity in the group, and do this:

                    entity.parent.origin

                    That will give you the origin of the group's transformation. Viola!

                    Todd

                    When I try that the parent is ComponentDefinition and that doesn't have .origin. Did I miss a step?

                    Chris

                    1 Reply Last reply
                    Reply Quote 0
                    • T
                      todd burch
                      last edited by

                      Oops. Sorry.

                      entity.parent.insertion_point

                      Todd

                      1 Reply Last reply
                      Reply Quote 0
                      • C
                        CPhillips
                        last edited by

                        @unknownuser said:

                        Oops. Sorry.

                        entity.parent.insertion_point

                        Todd

                        Ah! That does seem to work. Its only a point though, any way to get the rest of the transformation?

                        Thanks Todd!

                        1 Reply Last reply
                        Reply Quote 0
                        • T
                          todd burch
                          last edited by

                          My hat of guessing says...

                          tr = Geom::Transformation.new(entity.parent.insertion_point)

                          Todd

                          1 Reply Last reply
                          Reply Quote 0
                          • T
                            todd burch
                            last edited by

                            ...but I don't think that will take care of any rotation. 😞

                            1 Reply Last reply
                            Reply Quote 0
                            • C
                              CPhillips
                              last edited by

                              @unknownuser said:

                              ...but I don't think that will take care of any rotation. 😞

                              Yeah without rotation it doesn't help. But the observer method seems to be working fine so far.

                              Chris

                              1 Reply Last reply
                              Reply Quote 0
                              • T
                                todd burch
                                last edited by

                                I did check with Google on this topic yesterday, and they see it as a flaw.

                                Todd

                                1 Reply Last reply
                                Reply Quote 0

                                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                With your input, this post could be even better πŸ’—

                                Register Login
                                • 1
                                • 2
                                • 1 / 2
                                • First post
                                  Last post
                                Buy SketchPlus
                                Buy SUbD
                                Buy WrapR
                                Buy eBook
                                Buy Modelur
                                Buy Vertex Tools
                                Buy SketchCuisine
                                Buy FormFonts

                                Advertisement