sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] Mirror

    Scheduled Pinned Locked Moved Plugins
    211 Posts 72 Posters 390.6k Views 72 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.
    • pilouP Offline
      pilou
      last edited by

      Don't know this little last one πŸ˜„

      Frenchy Pilou
      Is beautiful that please without concept!
      My Little site :)

      1 Reply Last reply Reply Quote 0
      • jeff hammondJ Offline
        jeff hammond
        last edited by

        rainy day ideas..

        mirror would be a good one for doing what you did to split_to_plane.. where <enter> is Z instead of the 3rd click.. lathe would be another candidate (2nd click when defining the axis)..

        dotdotdot

        1 Reply Last reply Reply Quote 0
        • pilouP Offline
          pilou
          last edited by

          Seems there is a glitch ?

          An arc is drawn up left corner then "Mirrored"

          Making a group don't resolve the problem 😲
          when explode mirrored group , arc is exploded!
          when explode original group , arc is not exploded! 😲

          Mirror_arc.jpg


          Mirror_arc.skp

          Frenchy Pilou
          Is beautiful that please without concept!
          My Little site :)

          1 Reply Last reply Reply Quote 0
          • R Offline
            rv1974
            last edited by

            I use to render my projects in 3DS Max and my pipeline is to turn all entourage components to the cubes proxies (by Fredo's Ghost plug in), open simplified entourage skp file in Max and then replace
            them by another Max script with hi-poly vray proxies.
            What is interesting is that the mirrored (at some stage) SU components get wrongZ value in Max.
            I just wandering where is the wicked link:
            SU itself, mirror.rb, ghostcomponent.rb, exporters\importers? πŸ˜•

            1 Reply Last reply Reply Quote 0
            • pilouP Offline
              pilou
              last edited by

              @Jeff
              Sorry don't understand first proposition ...and second proposition! 😳

              @unknownuser said:

              mirror would be a good one
              : it's that the problem that don't work πŸ˜„
              with 2 or 3 clicks even I split horizontally the rectangle

              @unknownuser said:

              lathe

              ?? 😳

              A Copy Rotate works (don't explode the arc) but it's not the mirror function and i must draw some helper lines πŸ˜„

              copyrot.jpg

              Frenchy Pilou
              Is beautiful that please without concept!
              My Little site :)

              1 Reply Last reply Reply Quote 0
              • TIGT Offline
                TIG Moderator
                last edited by

                @rv1974 said:

                I use to render my projects in 3DS Max and my pipeline is to turn all entourage components to the cubes proxies (by Fredo's Ghost plug in), open simplified entourage skp file in Max and then replace them by another Max script with hi-poly vray proxies.
                What is interesting is that the mirrored (at some stage) SU components get wrongZ value in Max.
                I just wandering where is the wicked link:
                SU itself, mirror.rb, ghostcomponent.rb, exporters\importers? πŸ˜•
                When you 'mirror' or use 'scale -1' [which is all that mirror really does] the component-instance is flipped [aka 'transformed']; however, inside its definition the geometry still has the original orientation.
                When exporting such objects into another format that exporter's code must identify the original geometry and its container's 'transformation', then typically it applies the transformation so it now looks right - some formats have limited 'transformation' abilities, so make everything changed so it looks right perhaps messing with the object's innards while doing this. This then breaks the direct link to the original's transformation, so maybe 'swapping' a component won't adopt the original's transformation...

                When you 'mirror' something it's typically about a bounding-box center-point - so is this 'Z difference' you see after swapping related to say half of the object's bounding-box 'height' [actually Z is its 'depth'!] - it might be that the Max script is incorrectly interpreting that point when applying its own transformation - would a fix be for the script to adjust the Z-value as it swaps ?
                Are you sure that the paired simple and complex proxies have the exact same bounding-box and insertion point etc - if they don't then the swapping of them can easily get muddled... If you swap and swap back do things reset properly or get worsened ? This could indicate such a state...

                TIG

                1 Reply Last reply Reply Quote 0
                • R Offline
                  rv1974
                  last edited by

                  may be the attached files would help.


                  skp+max files example


                  It looks correct in SU: axes are OK and the same definition of the components


                  after opening in Max it looks OK too


                  After the Soulburn's Object replacer was applied: Z values :(


                  the same area after some brief messing:)

                  1 Reply Last reply Reply Quote 0
                  • TIGT Offline
                    TIG Moderator
                    last edited by

                    So the Max 'swapper' script is misinterpreting the transformation of the imported objects ?
                    If you swap and re-swap back as you were, are you back or has further wrong-transformation happened ?
                    Seems to me the issue is with the Max swapper script itself, which is clearly flipping the 'mirrored' versions of swapped pyramids about their centers ??
                    If you used a non-symmetrical object as the two simple/complex we can better see the extent of the 'flipping' which might be a 'rotation' or a real 'scale -1' ??? try a pyramid placeholder with an offset apex so we can clearly see its transformation, and a more complex version for the 'swap'.
                    The Z-offset issue should be solved if the script correctly flips these mirrored versions...
                    I know little about Max scripts.
                    Have you tried looking for solutions over on their forums...

                    TIG

                    1 Reply Last reply Reply Quote 0
                    • R Offline
                      rv1974
                      last edited by

                      Wow you helped (even knowing little about max script) me to solve the the issue that was a real pain in the @ss for a very long period.
                      I tended to blame Sketchup but it appears to be a Soulburn replacer problem.
                      For all who suffered the same issue, Here is a good one (that respects SU components):
                      https://www.scriptspot.com/3ds-max/scripts/replacer-0

                      1 Reply Last reply Reply Quote 0
                      • jeff hammondJ Offline
                        jeff hammond
                        last edited by

                        @unknownuser said:

                        @Jeff
                        Sorry don't understand first proposition ...and second proposition! 😳

                        it's that the problem that don't work πŸ˜„
                        with 2 or 3 clicks even I split horizontally the rectangle

                        maybe it works out ok with 2D (but even then, i think you still have to define the Z for proper mirror)

                        @unknownuser said:

                        ?? 😳

                        A Copy Rotate works (don't explode the arc) but it's not the mirror function and i must draw some helper lines πŸ˜„

                        [attachment=0:25m1367s]<!-- ia0 -->copyrot.jpg<!-- ia0 -->[/attachment:25m1367s]

                        copy/rotate isn't mirroring it though.. using a rectangle for testing doesn't make that immediately recognizable..
                        (mirroring an object can very literally be thought of as placing an actual mirror on a line and you'll be left with the original component as well as the one you see in the mirror.. there's no 180ΒΊ rotating happening )

                        anyway.. the idea for <return> for Z isn't creating new functionality for the tools.. it just makes some situations a tiny bit easier when you're zoomed in close.. if you want to mirror something along the green axis, you select the object, click on one part of the green axis, click another part of the green axis, then inference along the blue axis for your third point.. if you can push <return> for Z, you'd only click the first and second points then <return> tells it your third click is on a vertical axis..

                        with lathe, you also have to define the rotation axis.. but if this option were in it and you were rotating perpendicular to the ground, you'd only click once then <enter>
                        (in a round about way, it's the same thing as holding the shift key in order to lock the protractor to the Z axis then using one click to define a point of rotation)

                        you can see the same behavior in split_to_plane and cut_to_plane.

                        dotdotdot

                        1 Reply Last reply Reply Quote 0
                        • pilouP Offline
                          pilou
                          last edited by

                          Yes but the problem was not exactly that the problem was the "explosion" of the arc πŸ˜„

                          So my solution to Group the rectangle before draw anything resolve all headache! πŸ˜‰
                          Mirror can be used with any restriction and by Magical mood the arc stay safe! πŸ˜„

                          Frenchy Pilou
                          Is beautiful that please without concept!
                          My Little site :)

                          1 Reply Last reply Reply Quote 0
                          • jeff hammondJ Offline
                            jeff hammond
                            last edited by

                            @unknownuser said:

                            Yes but the problem was not exactly that the problem was the "explosion" of the arc πŸ˜„

                            So my solution to Group the rectangle before draw anything resolve all headache! πŸ˜‰
                            Mirror can be used with any restriction and by Magical mood the arc stay safe! πŸ˜„

                            haha.. i think we're talking about two entirely different things.
                            TIG knows what i'm talking about because i got the idea from him.. it's not my idea, it's his πŸ˜‰

                            dotdotdot

                            1 Reply Last reply Reply Quote 0
                            • bmikeB Offline
                              bmike
                              last edited by

                              would love to see <enter> or <return> give you the Z. would make life that much nicer when picking and hunting around to mirror an object.

                              mike beganyi design + consulting llc

                              1 Reply Last reply Reply Quote 0
                              • TIGT Offline
                                TIG Moderator
                                last edited by

                                But if you pick two points if gives you a line on the 'plane of mirroring', the third point can be in any direction, provided it's not co-linear with the initial two points: the inference engine makes picking a third point on the plane to make it 'vertical' easy [provided that the initial two points are not already vertically aligned!]... just move the cursor until the rubber-banding turn blue and click the 'plane of mirroring' is now vertical and passing through the initial two points... If you replaced the third mouse click with a <enter> key-press what are the advantages ? you'd probably have to take your hand off the mouse ?? Having the third point replaced by <enter> also screws up the tool as you can mirror in different ways by picking one, two or three points - an <enter> after clicking stops and uses the points so far clicked...

                                TIG

                                1 Reply Last reply Reply Quote 0
                                • jeff hammondJ Offline
                                  jeff hammond
                                  last edited by

                                  @tig said:

                                  But if you pick two points if gives you a line on the 'plane of mirroring', the third point can be in any direction, provided it's not co-linear with the initial two points: the inference engine makes picking a third point on the plane to make it 'vertical' easy [provided that the initial two points are not already vertically aligned!]... just move the cursor until the rubber-banding turn blue and click the 'plane of mirroring' is now vertical and passing through the initial two points... If you replaced the third mouse click with a <enter> key-press what are the advantages ? you'd probably have to take your hand off the mouse ?? Having the third point replaced by <enter> also screws up the tool as you can mirror in different ways by picking one, two or three points - an <enter> after clicking stops and uses the points so far clicked...

                                  yeah.. i hear what you're saying..
                                  the reason i posted in the first place was because i was doing some mirroring in a weirdish situation (in close with other elements nearby) and was having problems getting the Z inference.. so i was setting 1st & 2nd points then zooming out to get the Z.. in which case, id rather of kept the zoom the same then took my hand off the mouse for the <return> key..

                                  generally though, the mirror plugin catches the Z axis very consistently.. maybe a sweeter idea than <return> would be a double-click (or a right-click?) on the 2nd point forces the Z? is that even possible with ruby?

                                  that said, lathe's axis setting is a little more finicky when it comes to setting the second point and i usually end up drawing a line which defines the rotation axis then snapping to it's end points.. (there's a little box the follows the cursor and you have to click inside of it.. even if it's showing you you're locked to the Z axis, you still have to click in the little box as well)

                                  [EDIT]- oh.. also.. i wasn't suggesting replacing the third click with <enter>... the third click is still necessary in a lot of situations.. i was just thinking IF the <enter> is pressed after the 2nd click then it will go on the Z.. but you're still able to do a 3rd click instead if you need another plane that isn't vertical

                                  dotdotdot

                                  1 Reply Last reply Reply Quote 0
                                  • bmikeB Offline
                                    bmike
                                    last edited by

                                    yes, you still need to keep the third click, but if there was an 'option' click or something that simply meant Z on the last point, it would be sweet.

                                    thats the way the mirror works in auto cad, if i remember. you can pick three points, or 2 with a right click or enter to finish the command.

                                    mike beganyi design + consulting llc

                                    1 Reply Last reply Reply Quote 0
                                    • P Offline
                                      photon2
                                      last edited by

                                      Wow great plugin, Thanks!

                                      1 Reply Last reply Reply Quote 0
                                      • F Offline
                                        function
                                        last edited by

                                        is there a way to turn off the prompt at the end of the command, so it never erases original geometry?

                                        1 Reply Last reply Reply Quote 0
                                        • mitcorbM Offline
                                          mitcorb
                                          last edited by

                                          There probably is. You would have to study the Ruby code and maybe comment out the line(s) that generates it. Conceptually, this would be simple. But I will bet that while you comment out one thing, you might "punch a hole in the bottom of the boat". The author could probably point you to it.

                                          I take the slow, deliberate approach in my aimless wandering.

                                          1 Reply Last reply Reply Quote 0
                                          • TIGT Offline
                                            TIG Moderator
                                            last edited by

                                            @function said:

                                            is there a way to turn off the prompt at the end of the command, so it never erases original geometry?
                                            You can edit the code so it does whatever you want...
                                            The closing code that asks the question and makes the erase is easily disabled with a leading #

                                            if UI.messagebox("Erase Original Selection ? ",MB_YESNO,"")==6 ### 6=YES 7=NO
                                                        copy_group.erase! if copy_group.valid?        
                                                  	else ### NO
                                                        copy_group.explode if copy_group.valid?
                                            	        @faces=[]
                                            	        ents.each{|e|@faces << e if e.valid? && e.class==Sketchup;;Face}
                                            			self.gluer(sents)
                                            			@ss.clear
                                                        sents.each{|e|@ss.add(e) if e.valid?}
                                                	end#if
                                            

                                            becomes

                                            #if UI.messagebox("Erase Original Selection ? ",MB_YESNO,"")==6 ### 6=YES 7=NO
                                                        #copy_group.erase! if copy_group.valid?        
                                                  	#else ### NO
                                                        copy_group.explode if copy_group.valid?
                                            	        @faces=[]
                                            	        ents.each{|e|@faces << e if e.valid? && e.class==Sketchup;;Face}
                                            			self.gluer(sents)
                                            			@ss.clear
                                                        sents.each{|e|@ss.add(e) if e.valid?}
                                                	#end#if
                                            

                                            BUT if you want to Mirror and NOT keep the original selected object[s] then how would you do it ?
                                            Clicking on Yes/No [or just pressing the Y or the N key] is hardly a hardship ?

                                            TIG

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 10
                                            • 11
                                            • 5 / 11
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement