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

    MSPhysics tests and questions

    Scheduled Pinned Locked Moved Plugins
    104 Posts 21 Posters 44.7k Views 21 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.
    • C Offline
      chad3006
      last edited by

      I posted this same question at the MSPhysics Github. I'm very new to MSPhysics and not very smart either, so I was wondering if anyone has attempted a simulated wind-tunnel or something like that using MSPhysics? Is such a thing even possible at the moment? If so could you share?

      1 Reply Last reply Reply Quote 0
      • A Offline
        Anton_S
        last edited by

        Wind tests are not possible with MSPhysics. I once came across a plugin dealing with fluid analysis but can't recall the name of it.

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

          Here the first small test example MSPhysics v1.0.0 with scripted emitters.
          Unfortunately, SketchUp crashes completely after a few seconds.
          In MSPhysics v1.0.0 WIP7 there was no problem with this.
          Thanks in advance.
          Edit: Fixed in high Speed - now it works - thanks to Anton! πŸ‘


          Rain-Test_SUp17-MSP100_01.skp

          1 Reply Last reply Reply Quote 0
          • ecatiE Offline
            ecati
            last edited by

            To ensure smooth movement, how should the green piece connect to the blue piece?


            soru.jpg


            soru.skp

            1 Reply Last reply Reply Quote 0
            • A Offline
              Anton_S
              last edited by

              The green piece can be grouped with the blue pieces: ungroup both of the blue pieces, hold CTRL, select the green piece, and regroup them all together.

              For improvements you can change the collision of the yellow wheels to Cylinder shape. Also, set the solver model to iterative 16 passes and material thickness to zero.

              The only way you will achieve a smooth ride is by relying on the CurvySlider joints and having the entire track set be ignored; relying on contacts will rarely show you good results. Here I attached your model with two CurvySlider joints lining the entire track. I also used Fredo6's Curvyvizard (http://sketchucation.com/forums/viewtopic.php?p=415495#p415495) to smooth the curvy at certain, rough locations.
              soru.skp

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

                Comparison between V0.9.9 and V1.0.1(V1.0.2)

                Have the following problems:

                • the deep impact of small scripted emitters on heavy bodies.
                • strong reflection of that emitted objects (non collision) on a Buoyancy Plane.
                • continuous OnTouch events of object with a plane for "waves" and "splashes" don't work anymore.

                Here are two files, on for SkechUp 2016 with MSPhysics v0.9.9 witch worked well and the other for SketchUp 2017 with MSPhysics v1.0.1 for witch I need help.
                For the parallel tests I hade to install MSP v0.9.9 on SUp 2016 - sorry!
                The GIF of V0.9.9 shows what I want to achieve.
                Thanks in advance!


                OnTouch-Test_05_099.gif


                OnTouch-Test_01_MSP0.9.9_SUp2016.skp


                OnTouch-Test_05_101.gif


                OnTouch-Test_01_MSP1.0.1_SUp2017.skp

                1 Reply Last reply Reply Quote 0
                • A Offline
                  Anton_S
                  last edited by

                  There were a few issues.

                  In new version, onTouch is triggered only one time, whenever there is a contact between bodies. In your script you tried to use the onTouch event as a repetitive event for generating trailing waves. It did work, as a bug, in version 0.9.9 but not anymore.

                  Another thing is setting emitted bodies non-collidable. Setting the original bodies non-collidable won't make the emitted body non-collidable. You must appply such state explicitly to the emitted body:

                  
                  body = simulation.emit_body(...)
                  body.collidable = false
                  
                  

                  I fixed all these issues and also made rain droplets be independent of touch event.


                  Faust's Whale.skp

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

                    Hi Anton, once again thank you for the quick reply. πŸ‘
                    This is, of course, an interesting approach and for me something new to explore again.

                    A touch function as a repetitive event for generating something would be great. I think it was a good bug and you should bring it back as separate option. if it is possible... 😎

                    One problem in the new solution is, that after about 700 frames the lifetime of some emitted objects doesn't end.


                    Whale_AntonS_1150.png

                    1 Reply Last reply Reply Quote 0
                    • A Offline
                      Anton_S
                      last edited by

                      Hmm... I think something is wrong in code or with MSPhysics. Try changing the rain dproplet's code to this:

                      onStart {
                        @instances = {}
                      }
                      
                      onTick {
                        dir = this.group.transformation.zaxis
                        dir.length = this.mass
                        point = this.get_position + Geom;;Vector3d.new((rand()-0.5)*1000, (rand()-0.5)*1000, (rand()-0.5)*10)
                        tra = Geom;;Transformation.new(point)
                        rain = simulation.emit_body(this, tra, dir, 5)
                        rain.collidable = false
                        @instances[rain] = true
                        @instances.reject! { |k,v|
                          next true unless k.valid?
                          point = k.get_position(0)
                          if point.z < 0
                            #k.destroy(true)
                            posineu = Geom;;Point3d.new(point.x, point.y, 5)
                            tra = Geom;;Transformation.new(posineu)
                            body = simulation.emit_body(@@splash2, tra, @@dir, 0.25)
                            body.collidable = false
                            if frame % 3 == 0
                              posineu = Geom;;Point3d.new(point.x, point.y, -2)
                              tra = Geom;;Transformation.new(posineu)
                              body = simulation.emit_body(@@bubble2, tra, @@dir, 0.2)
                              body.collidable = false
                            end
                            next true
                          end
                          false
                        }
                      }
                      

                      Aside from that, you can use onTouching event for repetitive action, but it only yields toucher parameter and doesn't provide touch position.

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

                        Without the k.destroy function it works better now. Thanks, Anton. πŸ‘
                        Controlling the disappearance of the drops by setting the lifetime is sufficient...
                        I have meanwhile found a way to make the marine life's bow wave smooth on the surface of the water, even if it slopes sideways.
                        More complicated is it, when objects are jumping out of the water, when diving or with falling ice floes causing the appropriate waves and splashes, which was very easy with the good old V0.9.9 bug function.
                        The gif-example is old, but shows what I mean.
                        Witch toucher parameters can I use from an onTouching event to get recurring waves and splashes during prolonged movement of objects in the water?


                        Foam_Test05.gif

                        1 Reply Last reply Reply Quote 0
                        • A Offline
                          Anton_S
                          last edited by

                          You can rely on MSPhysics::Body.#contacts function. Add this code to an iceberg to see the effect:

                          onTick {
                            if this.get_velocity.length > 1.0 && frame % 10 == 0
                              this.contacts(true).each { |contact|
                                body = simulation.emit_body(@@splash4, contact.point, @@dir, 0.4)
                                body.collidable = false
                              }
                            end
                          }
                          
                          1 Reply Last reply Reply Quote 0
                          • F Offline
                            faust07
                            last edited by

                            The script works in this form good for a few objects. The falling pieces of an iceberg touch each other and produce emitting objects everywhere in the air in mass. SketchUp crashes then ... It would be good if I could use instead of .each a certain surface for the contact. Another problem is that all splashes are created simultaneously. Therefore a script for a random time point of emitting would be very helpful. I'll try this...

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

                              After I have tried several things and have not come to any satisfactory result, I have a suggestion:
                              It would be great to have a kind of "Penetration Joint" or function (onPenetration):
                              to connect it to one or more noncollidable objects (or faces).
                              The properties of objects that penetrate this noncollidable object are to be evaluated continuously:
                              name, mass, velocity, position of the touch/penetration, direction of movement, etc..
                              In other words, please bring back the old onTouch bug as an independent function!

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

                                I finally found a satisfactory solution for my imitated water fun in MSPhysics v1.0.2:
                                A combination of a surface with onTouch function (water surface) and an evaluation of velocity.lenght (onTouching event) and contact.points of in the area of this surface moving objects.
                                Anton, thank you for the examples, hints and help!


                                OnTouch-0001.gif

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

                                  Hi Anton,
                                  I want to bring more variation into the particles of the orca's breathing air. My intended scaling function does not show any reaction. What can be the cause? Can't scripted emitted objects not be scaled during simulation?

                                  
                                  for i in 1..20 do
                                    tra = this.group.transformation
                                    dir_zsf = tra.zaxis
                                    dir_zsf.length = 290 + rand(100)
                                    fount_p = Geom;;Point3d.new(0.0 + rand(-5..5), 2.9.m + rand(20), 0.5.m + rand(15)) # y-pos of fountain
                                    point = fount_p.transform(tra)
                                    transl = Geom;;Transformation.new(point)
                                    scalin = Geom;;Transformation.scaling point, rand(1..5)     
                                    transf = scalin * transl
                                    if point.z > 0.1.m
                                      body = simulation.emit_body(@@splashF, transf, dir_zsf, 0.2)
                                      body.collidable = false
                                    end
                                  end
                                  
                                  

                                  OnTouch-Test_21_V102.gif

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

                                    The next step is to find a solution to bridge the gaps that arise between the moving parts of the objects at the pivot points.
                                    I think of flexible triangular or square surfaces, which I can clamp between the boundary lines of the moving parts. For this I have to immerse deeper into the Ruby programming of SketchUp geometry ...
                                    If someone from the experts has ideas, I would be very happy.


                                    OnTouch-Test_19_V102.gif


                                    and how it looks like rendered with indigo RT

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

                                      Hello Anton, here an other little question:
                                      When I let run "Replay" with active hidden geometry all emitted objects remain in there last position still after there lifetime. Is this normal? Could that explain why Twilight takes longer and longer to render the images during the simulation?


                                      Flexi-Joint_SUp_07.gif


                                      Emitter_Hidden-Geometrie_02.jpg

                                      1 Reply Last reply Reply Quote 0
                                      • A Offline
                                        aldoz8
                                        last edited by

                                        Hi, I hope I am in the right place to put my question..

                                        I am developing a quadruped robot:
                                        https://www.youtube.com/watch?v=bt_8X4lYDGY

                                        So I am using SketchUP make 2017 + MSPhysics to test different settings of my robot and different scenarios :
                                        https://www.youtube.com/watch?v=fBTxNx2UAT8

                                        Just cool! but I have a little problem:
                                        In Sketchup I am using 8 servos, 2 for each legs and I get (as you can see in the second video) 8 MSPhysics sliders to move my 8 servos.
                                        Ok, but I would to have another slider that let me to move, for example, servos 3,4 and 5.
                                        So I would to obtain my actual 8 sliders + 1 new sliders that move servos 3,4 and 5.
                                        Obviously I will be able to move servo 3,4 and 5 using both the old 3,4&5 sliders and the new one slider too!
                                        So I will obtain :
                                        SLIDER 1 = servo 1
                                        SLIDER 2 = servo 2
                                        SLIDER 3 = servo 3
                                        SLIDER 4 = servo 4
                                        SLIDER 5 = servo 5
                                        SLIDER 6 = servo 6
                                        SLIDER 7 = servo 7
                                        SLIDER 8 = servo 8
                                        SLIDER 9 = servo 3, 4, 5

                                        How to do that?
                                        Thank you all in advance!

                                        1 Reply Last reply Reply Quote 0
                                        • ecatiE Offline
                                          ecati
                                          last edited by

                                          aldoz8
                                          If you can not find a solution, do you share the skp file?

                                          1 Reply Last reply Reply Quote 0
                                          • J Offline
                                            Jens3D
                                            last edited by

                                            I downloaded MS Physics plugin after seeing a demo from Justin's SketchUpEssentials. Looks really cool, but is it really compatible with Mac? It says it is, but following the tutorials on Youtube, all the setup modes seem to function, but when it comes to implementation, the model disappears, and a counter on the bottom left hand of the screen counts β€˜Frame’, Time and FPS. Goes on forever! Is this normal?

                                            Box, on the SketchUp Forum looked at the model for me on a PC, and then had similar issues, so suggested that this is not necessarily a Mac issue.

                                            I am setting up a mobile (to hang above a baby's cot) with rotating discs balanced on a simple rod. Each disc then has to be able to swivel on its vertical axis, each group would then too, and then including the main arm holding all the groups has to be able to swivel on its axis.

                                            Can Anybody offer some advice.

                                            Thanks
                                            Jens

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

                                            Advertisement