MSPhysics 1.0.3 (16 October 2017)
-
Hello, I am working on a project to create a long torsion wave as an interactive artwork on a bridge. I have been able to simulate the wave behavior in MSPhysics. I am psyched for that but now I would like to simulate the interaction which will be driven by sensors controlling motors that will pull the pendulum top in towards the bridge when a person breaks an IR beam. I'd like to be able to click on one of the pendulums and have it move in at a user defined rate and then release and swing freely. Is there a way to do this? I have seen something in the API called onLButtonDown but also best_picked in the sketchup API but I am not really a programmer and am not sure how to put these together if they are even appropriate. Might someone be able to help? or at least suggest an approach?
-
Hello, charlessowers,
I'm not quite sure what you're trying to achieve. Using a simple pick and drag tool may help. Just hold the shift key when dragging the IR beams.
If in case you want to do something else, perhaps an onClick even will help. For that you will have to utilize an onClick event for all beams, which will do the desired thing when a beam is clicked. (And of course, to write the same script to all beams you can write script to one beam and make use of the "assign script to all with name" button).
Anton
-
Hello Anton,
Thanks for the plugin and thank you for considering my question.
An onClick sounds like a great possibility, but I am not sure how to use it. I tried this script applied to a picket...
# Triggered when simulation starts onStart { @force = 45 } # triggered when body is clicked onClick {|point| fx = @force this.add_force(fx, 0, 0) }
But it didn't work. maybe it needs time for the force to be applied after the click? Maybe it should be a torque? Maybe it should set the start angle of the spring hinge? Not sure if onClick always applies to the thing clicked (this)?
-
Charles,
You got the idea right, but the force you apply must be applied as a point force. Doing so will also, generate torque as you want. For the point, you can either apply force at clicked location or at a particular point such as pole's origin + some shift in the up direction...
Here is the script for applying at point force:
# Triggered when simulation starts onStart { @impx = 45 * simulation.update_timestep_inv } # triggered when body is clicked onClick { |point| this.add_point_force(point, Geom;;Vector3d.new(@impx, 0, 0)) # Or point could be a custom point #tra = this.normal_matrix #point = tra.origin + AMS;;Geometry.scale_vector(tra.zaxis, 100) #this.add_point_force(point, AMS;;Geometry.scale_vector(tra.xaxis, @impx)) }
Note that in the simulation tab, you will have to enable the game mode option, which will disable the pick & drag tool, to prevent it from interfering.
Then, the script is then supposed to be assigned to every pole thingy in your model. As mentioned before you can do this by using the "assign script to all with name" button (assuming that all pole thingies have the same name).
Anton
-
Thanks Anton! That does the trick. Is there a way to re-enable orbit control (middle mouse button) and zoom (mouse wheel) while in game mode?
-
Charles,
For now, there isn't a way other than modifying the simulation code, so that it only disables the pick & drag and not the user input. I may need to add a Ruby function for that in the future versions.
Anton
-
Hello nice article,
one question. Is it possible to create an outstanding moving camera crane while using MS Physics in SketchUp?
-
Nothing could be easier. Examples of camera simulations with MSphysics can be found here: http://sketchucation.com/forums/viewtopic.php?f=323&t=68975
You can connect the moving parts of the crane with MSPhysics Joints, place the crane on rails and control everything with sliders, keyboard or scripts. -
I may be a little slow of late but, can someone suggest how I can make a table cloth or bedding in simple terms? Sorry to bug you folks.
-
@ Mike: Anton_S is currently working on an easy-to-use plugin for this purpose.
-
Hello everyone
I'm new here. I found this plugin yesterday and try to use it to simulate the equilibrium of a wooden product I'm designing.
The structure is in wood, and it supports heavy objects by their side with big screws (so they are not resting on the wood structure). If I group all of these or make a component, it feels like the mass of these heavy objects is lost, and so playing the simulation gives very strange (and false ) results, as the structure doesn't fall on the ground as it should.The fact is I don't understand how to keep the different masses AND attach the objects between them. I tried with the fixed joint but it fixes everything and nothing at all moves
Could you help me please ?
Thanks -
Hello mickaellemickael,
The collision generated for objects is convex and thus doesn't reflect the real object. Your group must be made up of convex items for the mass to be reflected. You can also assign the mass manually, via the MSPhysics UI by changing the Mass Control mode to Mass and assigning the right mass (in kg).
You can enable collision wireframe for all objects in simulation, which can be found in Debug Draw section of the simulation tab in the MSPhysics UI. This draws the actual collision wireframe generated for the object. You may have to divide the object into convex sub-groups for the most realistic effects (assuming the top-level group is assigned a compound collision).
In compound collision (which is assigned to objects by default), all sub-groups and sub-components are treated as convex sub-collisions.
By meaning convex collision, the collision is wrapped around a shape. Here is an image for example: http://newtondynamics.com/wiki/images/2/24/Convex_shape.jpg
So with compound collision, you can have many convex collisions clumped together to form a complex dynamic collision.
Anton
-
Hi Anton,
I understand your approach on the unreliable nature of "compound from cd" shape. However without it, there isn't a better way to make a front wheels of a car. You can't try to make sub groups of a car mesh, it's a lot of work and "compound" doesn't work as an alternative because in collision wireframe body of the car interferes with the rotating tires.
Can't you at least leave compound from cd in the selection list with a warning? It would be better if any demanding users should be able to use it.
Best regards.
-
Hello Anton !
Many thanks to you for both clothworks and MS Physics plugins, these are really nice to use and user friendly. MS physics can sometimes be a little tricky when it's about animating a model with a lot of groups but I guess there's always a way to make things work.
In a project I'm drawing for a client, I'm designing a sliding/folding door which is made of hinge between the panels. I found pretty easily how to achieve the folding action with rotation limits and for the moment it's possible to slide it but I had to reduce the slider joint stiffness in order to be able to fold panels completely (don't know why it's not possible when stiffness is set to one).
But my biggest concern is to be able to keep the sliding action on one panel (the others linked by hinges are following) without applying a straight constraint on the whole panel. I'd like only the hinge part of this panel to follow a straight way (a railing)In the end, it should rotate freely and slide at the same time... If my problem isn't clear, I can always copy paste the concerned model in a new file if that's easier to understand.
https://www.reynaers-particulier.fr/_img/_pages/porte-pliante-aluminium/3.jpg
Thanks for your help,
-
Hello Baumard,
What you're trying to achieve here is nested joints. There should be a top level slider joint, as you already have. There should also be temporary boxes with hinges inside them; one box per each hinge, located at each axis. The boxes should be set noncollidable. Then the slider is supposed to be connected to the boxes and each hinge to the door. That way the boxes will slide and the doors will rotate.
Another thing to consider in that case is to user Acurate Joint Solver model or Iterative 64 passes. These options can be adjusted in UI. That way joints will be stiffer.
Anton
-
@cgltkn said:
Hi Anton,
I understand your approach on the unreliable nature of "compound from cd" shape. However without it, there isn't a better way to make a front wheels of a car. You can't try to make sub groups of a car mesh, it's a lot of work and "compound" doesn't work as an alternative because in collision wireframe body of the car interferes with the rotating tires.
Can't you at least leave compound from cd in the selection list with a warning? It would be better if any demanding users should be able to use it.
Best regards.
For wheels, use sphere/cylinder shape. Have the parts intersecting the wheel be assigned a non-collidable state. Generally, it is a bad and performance consuming to rely on collision detection. If you examine SketchyPhysics car making tutorials at youtube, you can apply same techniques to MSPhysics.
-
Thanks for this help, that makes sense now. I knew there was something missing in the parents/children hierarchy but didn't know what. I may bother you with another question if you don't mind.
Can the plugin keep the starting point (considered to be 0 and with a defined value as maximum sliding lenght) of a slider joint applied to 3 sliding doors at the same level? Let's say I would launch the simulation and move them at different lenghts. In the end, I would stop the simulation and keep them at these various positions. But when launching the simulation again, it would consider the initial starting point as a limit for the three of them, no matter how far from it they are.
I don't know if i'm very clear, that's quite hard to explain but I can provide pictures if that does not make sense.
To simplify my question : Once simulation is stopped with objects moved, is it obliged that the reference point of the slider joint is changed according to each new position of the objects ?
I swear, that's my last one
-
@traxxx said:
To simplify my question : Once simulation is stopped with objects moved, is it obliged that the reference point of the slider joint is changed according to each new position of the objects ?
Yes, reference point is changed. In MSPhysics, stop simulation option is only when your aim is to have a final view; otherwise, use reset.
-
That's what I thought but I just wanted to be sure I wasn't missing anything ! Thanks !
-
Hello
My model is a bit complex and the frame rate becomes to low, I'm down to 6 frames/sec.
My graphic card is a AMD Radeon HD 7870, OS Win 10-64 bit, Processor Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz, 3401 Mhz, 8 gig ram.What kind of hardware is recomended to speed things up?
I will appreciate your suggestions, thanks.
Advertisement