Pages

Showing posts with label Simulation. Show all posts
Showing posts with label Simulation. Show all posts

Sunday, April 7, 2013

3D Boat Design Software

3d boat design software
I recently found a nice 3D boat design software to help you design anything that floats. If you have ever wanted to design a boat yourself then this is the program for you. 3DBoatDesign is a versatile CAD software package that is easy to use yet also powerful at the same time. Some feature of 3DBoatDesign include enhanced hydrostatic calculations, easy 3d scaling, rotating, and moving, hull sculptor, resistance calculations and more!

3DBoatDesign is to boats as NoLimits Simulator is to roller coasters - simply the best available software to everyday consumers and affordable too!
cad boat design

Download 3D Boat Design today and starting designing the watercraft of your dreams!

Monday, June 11, 2012

Kinect Hack Video: CATIA V5 Manipulation


KinectCAD for CATIA V5

I recently stumbled upon one of the coolest Kinect applications I’ve ever seen. The Kinect is Microsoft’s Xbox 360’s latest webcam style peripheral. This new high tech toy permits users to “be the controller” through natural user interface (NUI) by controlling the game with their voice and body movements. Microsoft took it a step further and released the Kinect software development kit (SDK) for Windows 7 allowing developers to write Kinect applications in C++, C#, or Visual Basic .NET. There are numerous “Kinect hacking” videos on YouTube. One such user has now manipulated the Kinect to provide a gesture based movement of CATIA part objects.




How to use Kinect with CATIA V5? Using this new application in development it is now possible to rotate and zoom in or out of your new Kinect 3D CAD model while standing in front of your monitor and using your arms. It gets even better: utilizing Kinect’s built in microphone there is a rudimentary speech recognition function you can use to change the rotation axes. Can you imagine creating every part in CATIA this way (or any other CAD system for that matter)?

Using the SDK V1 software for Kinect, KinectCAD has been created in Visual C# 2010. It may be a slow way to work (at first) but is a brilliant concept nonetheless. Pretty soon we’ll be seeing 3d Kinect models of all our CAD parts. It would be a great way for automakers to perform layout check in conference rooms (and funny to watch  too). Hats off to the creators and I can’t wait to see more. Checkout the Kinect video recording below:


Please note: this program is still in development.  To learn more please visit this site. So, what do you think of KinectCAD? What other applications could you see between Xbox Kinect and CATIA V5? Please leave a comment below!

Monday, March 19, 2012

How do you simulate rolling in CATIA?


This is anupdate of an older post. I've created a brand new tutorial with step-by-step instructions detailing how to use CATIA V5's DMU kinematics workbench to simulate a rolling object.

First, in assembly design, create a new product and insert two new parts, one name Wheel and the other Ramp. 


I've explained this before but as a real quick overview, to create my ramp I used three sketches (overhead, side profile, and rotation about itself sketch) and combined them with laws. The wheel is a simple sketch and pad command. On my ramp I have two parallel curves 5mm apart. On my wheel I also have two parallel curves offset from each other 5mm. I added a point to one of the edges of the wheels so you can see it spin around in a circle when we simulate it. 


Add a Fix constraint to the ramp to ensure it does not move. It's absolutely vital that the curves on the wheel and the curves on the ramp are tangent to each other. Even a 0.001 gap and it will not work. Use coincidence restraints to pair them together if you have to. Also make sure your ramp is nice and smooth and much bigger than your wheel.

Now it's time to go into the DMU Kinematics workbench. Create a new mechanism and set the ramp as the fixed part. I can constrain all degrees of freedom using only two joints. The first joint is a roll curve joint between curve 1 on the wheel and curve 1 on the ramp. This is a length driven joint meaning you will input the rolling distance over time from the start point. The second joint is a slide curve joint between curve 2 on the wheel and curve 2 on the ramp.


Once you get the hang of it you can simulate more complex systems, like a full-scale roller coaster! 

CATIA KINEMATICS ROLLING TUTORIAL VIDEO: 



View my Introduction to CATIACATScript Macros Video Tutorial.

Tuesday, February 21, 2012

Solid Edge Synchronous and Ordered Modeling Video Tutorial

Ally PLM released their latest Lunch Byte video tutorial, this time covering the topics of synchronous and ordered modeling. These videos are meant to showcase some of the feature of Solid Edge that you may not be aware of. Watch the embedded tutorial below to learn about how synchronous modeling accelerates the design process allowing for fast and flexible edits.

Saturday, January 28, 2012

Solid Edge simulation express video

Ally PLM returns with another video edition of Lunch Bytes, this time talking about Solid Edge simulation express. Watch the Solid Edge video tutorial below.
 

Saturday, October 22, 2011

Let's Go Design Episode #5: Chassis Design and Assemblies



In the last episode, we discussed weldment features and sketch techniques. This time, we move closer to the final overall CAD design of our Hot Rod Baby Buggy. We watch as Jeremy hot-wires the golf cart motors to show how the aluminum tracks perform flawlessly.

In this episode, Jeremy takes us through:

The Overall Design: Jeremy shares 80% of the CAD design, complete with a 3D model of a dad placed in the center. He shows us the fenders, talks about key components underneath the buggy, and creates a battery compartment using sheet metal.

Sustainability: We use SolidWorks® Sustainability to compare material selections for the fenders of our buggy - sheet metal vs. plastic.

The Assembly: Jeremy shows the basic build and sub-assemblies. He puts together the steel base weldment, aluminum floor, components from the golf cart’s electrical system and finally powers the tank treads.

Watch Episode #5 now at LetsGoDesign.tv

Monday, June 13, 2011

Robocoaster Model


I constructed a recreation of a Kuka robocoaster in CATIA. I used the car from my cantilevered roller coaster simulations to save time. The track is created using three sketches with laws (one overhead, one side profile, and one for banking). I made this in about a day so please excuse the lack of detail. The purpose was more to show proof of concept that this was possible to create with CATIA.



For the simulation, I used the DMU Kinematics workbench. There are four user input commands to (1) drive the robotic arm down the track (2) horizontal rotation about the z axis (3)vertical rotation of the upper arm (4) rotation of the seats about the upper arm axis. In fact, in one of the video clips there is a fifth command- the rotation of one of the domes on which video would be projected, similar to the Harry Potter ride at Universal Orlando.




Tuesday, May 17, 2011

Theo Jansen Mechanism Matlab Code


I shared my m-code for the Theo Jansen mechanism awhile ago (LINK) but one of our readers recently created his own version of the program and offered to share it with us. Truong Duc Binh says:


"I programed for two legs and now I am making a computer interface with it, user can input parameters for Jansen walking machine. I divide this window form to two modes, you can simulate with constant alpha, or variable alpha."

Here is the complete m-code:

clear all

%Init link's length
L1=286;
L2=100;
L3=400;
L4=275;
L5=400;
L6=295;
L7=285;
L8=275;
L9=400;
L10=290;
L11=400;
L12=280;
L13=80;

alphaMax = pi/36; % 5 degree
alphaStep = pi/36/2; % 5/2 degree
alpha = -alphaStep;
k=3;

%To get the video:
mov=avifile('CoCau4KhauBanLe.avi','COMPRESSION','Cinepak');% None
for (a =1:1:(k+1))
    if a <= (k+1-rem(k+1,2))/2
        alpha = alpha + alphaStep;
    else
        alpha = alpha - alphaStep;
    end
    if alpha > alphaMax
        alpha = alphaMax;
    end
    if alpha<(-alphaMax)
        alpha = (-alphaMax);
    end
    for theta=0:pi/20:2*pi
    %for theta=0:(-pi/20):(-2*pi) % Quay cung chieu kim dong ho

    % Calculate angles:
    theta2 = pi - theta;
    theta3 = pi - theta + alpha;
    ssquared=(L2)^2+(L1)^2-(2*L1*L2*cos(theta3));
    s=sqrt(ssquared);
    beta=asin((L2*sin(theta3))/s);
    psi=acos(((L3^2)+(s^2)-(L4^2))/(2*L3*s));
    BCO2 = acos(((L5)^2+(L6)^2 - (L4)^2)/(2*L5*L6));
    CBO2 = acos(((L5)^2+(L4)^2 - (L6)^2)/(2*L5*L4));
    lambda=acos(((L4)^2+s^2-(L3)^2)/(2*(L4)*s));
    gamma = lambda - (BCO2 + CBO2)+ alpha + beta;
    O2AD = acos(((L9)^2+ssquared-(L8)^2)/(2*(L9)*s));
    omega = O2AD + alpha + beta;
    AO2D = acos(((L8)^2+ssquared-(L9)^2)/(2*(L8)*s));
    CO2D = pi - gamma - AO2D;
    CDsquared = (L6)^2+(L8)^2-2*L6*L8*cos(CO2D);
    CD = sqrt(CDsquared);
    O2CD = asin(L8*sin(CO2D)/CD);
    tempE = gamma - O2CD;
    CDE = acos(((L10)^2+CDsquared-(L7)^2)/(2*(L10)*CD));
    angleE = tempE + CDE;
    DEF = acos(((L10)^2+(L11)^2 - (L12)^2)/(2*L10*L11));
    tempF = DEF - angleE;
    DFE = acos(((L12)^2+(L11)^2 - (L10)^2)/(2*L12*L11));
    angleF = pi - tempF - DFE;

    %Find the points:
    O1=[0,0];
    O2=[-L1*cos(alpha),-L1*sin(alpha)];
    A=[L2*cos(theta) L2*sin(theta)];
    B=[A(1)-L3*cos(psi-alpha-beta) A(2)+L3*sin(psi-alpha-beta)];
    C=[O2(1)-L6*cos(gamma) O2(2)-L6*sin(gamma)];
    D=[A(1)-L9*cos(omega) A(2)-L9*sin(omega)];
    E=[D(1)-L10*cos(angleE) D(2)-L10*sin(angleE)];
    F=[D(1)-L12*cos(angleF) D(2)-L12*sin(angleF)];
    G=[F(1)-L13*cos(angleF) F(2)-L13*sin(angleF)];

    %************************LEFT********************************
    plot ([O1(1),A(1)],[O1(2),A(2)],'g','linewidth',3)
    hold on
    plot ([O2(1),O1(1)],[O2(2),O1(2)],'black','linewidth',3)
    plot ([A(1),B(1)],[A(2),B(2)],'b','linewidth',3)
    plot ([O2(1),B(1)],[O2(2),B(2)],'r','linewidth',3)
    plot ([O2(1),C(1)],[O2(2),C(2)],'r','linewidth',3)
    plot ([B(1),C(1)],[B(2),C(2)],'r','linewidth',3)
    plot ([O2(1),D(1)],[O2(2),D(2)],'b','linewidth',3)
    plot ([A(1),D(1)],[A(2),D(2)],'b','linewidth',3)
    plot ([C(1),E(1)],[C(2),E(2)],'b','linewidth',3)
    plot ([D(1),E(1)],[D(2),E(2)],'r','linewidth',3)
    plot ([D(1),F(1)],[D(2),F(2)],'r','linewidth',3)
    plot ([E(1),F(1)],[E(2),F(2)],'r','linewidth',3)
    plot ([G(1),F(1)],[G(2),F(2)],'b','linewidth',3)
    Gx(a)=G(1);
    Gy(a)=G(2);

    %*************************RIGHT******************************
    theta4 = theta + alpha;
    s2squared=(L2)^2+(L1)^2-(2*L1*L2*cos(theta4));
    s2=sqrt(s2squared);
    beta2=asin((L2*sin(theta4))/s2);
    angle2=acos(((L3^2)+((s2)^2)-(L4^2))/(2*L3*(s2)));
    B1C1O3 = acos(((L5)^2+(L6)^2 - (L4)^2)/(2*L5*L6));
    C1B1O3 = acos(((L5)^2+(L4)^2 - (L6)^2)/(2*L5*L4));
    lambda2=acos(((L4)^2+(s2)^2-(L3)^2)/(2*(L4)*(s2)));
    gamma2 = lambda2 - (B1C1O3 + C1B1O3)+ alpha + beta2;
    O3A1D1 = acos(((L9)^2+s2squared-(L8)^2)/(2*(L9)*(s2)));
    omega2 = O3A1D1 + alpha + beta2;
    A1O3D1 = acos(((L8)^2+s2squared-(L9)^2)/(2*(L8)*(s2)));
    C1O3D1 = 2*pi - A1O3D1 - lambda2 - (pi - B1C1O3 - C1B1O3);
    C1D1squared = (L6)^2+(L8)^2-2*L6*L8*cos(C1O3D1);
    C1D1 = sqrt(C1D1squared);
    O3C1D1 = asin(L8*sin(C1O3D1)/(C1D1));
    tempE2 = gamma2 - O3C1D1;
    C1D1E1 = acos(((L10)^2+C1D1squared-(L7)^2)/(2*(L10)*(C1D1)));
    angleE2 = tempE2 + C1D1E1;
    D1E1F1 = acos(((L10)^2+(L11)^2 - (L12)^2)/(2*L10*L11));
    tempF2 = D1E1F1 - angleE2;
    D1F1E1 = acos(((L12)^2+(L11)^2 - (L10)^2)/(2*L12*L11));
    angleF2 = tempF2 + D1F1E1;

    %Find the points:
    O3=[L1*cos(alpha),-L1*sin(alpha)];%
    B1=[A(1)+L3*cos(angle2-alpha-beta2) A(2)+L3*sin(angle2-alpha-beta2)];%
    C1=[O3(1)+L6*cos(gamma2) O3(2)-L6*sin(gamma2)];
    D1=[A(1)+L9*cos(omega2) A(2)-L9*sin(omega2)];
    E1=[D1(1)+L10*cos(angleE2) D1(2)-L10*sin(angleE2)];
    F1=[D1(1)-L12*cos(angleF2) D1(2)-L12*sin(angleF2)];
    G1=[F1(1)-L13*cos(angleF2) F1(2)-L13*sin(angleF2)];

    plot ([O3(1),O1(1)],[O3(2),O1(2)],'black','linewidth',3)
    plot ([A(1),B1(1)],[A(2),B1(2)],'b','linewidth',3)
    plot ([O3(1),B1(1)],[O3(2),B1(2)],'r','linewidth',3)
    plot ([O3(1),C1(1)],[O3(2),C1(2)],'r','linewidth',3)
    plot ([B1(1),C1(1)],[B1(2),C1(2)],'r','linewidth',3)
    plot ([O3(1),D1(1)],[O3(2),D1(2)],'b','linewidth',3)
    plot ([A(1),D1(1)],[A(2),D1(2)],'b','linewidth',3)
    plot ([C1(1),E1(1)],[C1(2),E1(2)],'b','linewidth',3)
    plot ([D1(1),E1(1)],[D1(2),E1(2)],'r','linewidth',3)
    plot ([D1(1),F1(1)],[D1(2),F1(2)],'r','linewidth',3)
    plot ([E1(1),F1(1)],[E1(2),F1(2)],'r','linewidth',3)
    plot ([G1(1),F1(1)],[G1(2),F1(2)],'b','linewidth',3)
    G1x(a)=G1(1);
    G1y(a)=G1(2);
   
    plot(Gx,Gy)
    plot(G1x,G1y)
  
    %************************************************************
    axis([-800 800 -800 400])
    hold off
    a=a+1;
    pause(.01)
    M=getframe;
    mov=addframe(mov,M);
    end
end
mov=close(mov);


Thanks again to Truong Duc Binh!

Monday, February 28, 2011

CATIA NC Machining Reverse Motion Fix

I am machining some parts in CATIA V5 R18 and if I zoom in on the vectors in wire-frame mode I am noticing areas where the tool is reversing a fraction of a millimeter, which has become an issue. I need to eliminate all of these reverse motions. My two major concerns are:

1. What is the easiest way to detect these reverse motions? Currently, I have to zoom in really close on the vectors, the only way I know how to see them in CATIA, which is a pain.
2. How do you avoid this reverse motion? What's the best way to fix them?





The answer to question number one is unfortunately there is no other way in CATIA to detect these tiny reverse motions. If you have some sort of post-processor that will usually pinpoint problem areas but if you don't have access to a post then you're out of luck. As far as concern number two, my guess is the surfaces are crap (especially if they are not native CATIA data and imported from some other system). You can try to rebuild them to get better results. Often times, I will delete the two axial moves using the toolpath editor. Then, I will select the icon to connect the path, select one of the high-lit points, and enter .000 as the value. This way, you will get a direct connection in machine feed. It's kind of weird, but if I want a Rapid connection, I will enter .1 as the value.

Also, sometimes, as in the example, you would end up with a small zig-zag motion. In that case, I will often delete a point if available or move a point along the direction before "connecting" it. As always, toolpath editor is last resort but I'll use it rather than spend a bunch of time fighting surfaces and machining operations. I always note in my programming log, any locked toolpaths, why, when, and what type of edit was made. It's good to keep a log using Excel for whenever you have to make "manual" edits of any sort.

Saturday, December 11, 2010

Coaster Model Update

Quick update on the cantilevered roller coaster model. I used my VB catscript to quickly and easily create the cross-ties for the upper and lower rails. I also modeled all of the supports and cement footers. Pictured is one of the "side/head knocker" effects where it looks like you are about to run into a post before the cantilevered car serves out of the way in the nick of time. There is also an overview of the layout. Video coming soon!






Wednesday, August 4, 2010

CATIA Kinematics Simulation from Manikin's POV

I am modeling a new type of roller coaster in CATIA. In order to test this new coaster concept I need to run the simulation from the viewpoint of the manikin riding in the car. Whether you are modeling a roller coaster or a sports car, here is how it is done:

First, make sure this option under Tools > Options>Ergonomics is set:

For the line of sight, create a camera in View - Named View and  then position it close to your manikin head.

 Next, attach the camera to the head of the manikin with the "attach/detach" function and change the property to perspective.

You can open a camera view window while in DMU Nav by using the Window Menu, you can open the Camera window:
Use this Camera window for recording.

 The only downside is when I simulate in the camera view it automatically switches the geometry to "shading with edges" instead of what I want to see, which is "shading with material." Anyone know if there is an option somewhere to change this?