Friday, December 17, 2010

Tips and Tricks: Keyboard Shortcuts for 3D VIA Virtools

Here are a few tips, tricks, and keyboard shortcuts to make your life easier if you are a 3D Via user. What is 3D Via used for? You can use 3DVIA Virtools to deliver graphically stunning, interactive real-time experiences for industry or game production.

Creation Tools Shortcuts:

1 - Create a camera

2 - Create a light

3 - Create a curve

4 - Create a 3D frame

5 - Create a grid

6 - Create a 2D frame

7 - Create a Material

8 - Create a Texture

9 - Create a Portal

Navigation Tools:

Z - Camera zoom

SHIFT+Z - Zoom on selection

O - Toggle Orbit camera / Orbit target around camera

P - Pan camera

F - Change camera FOV

D - Dolly camera

N - Next Camera in scene

SHIFT+N - Previous Camera in scene

A - Switch to selection mode

W - Zoom all

Y - Flycam

Mouse Middle Button - Pan

Alt + Mouse Middle Button - Orbit

Mouse Wheel - Zoom

Creation Tools:

P - Create a new Place and adds selected 3D Entities to the place.

R - Create a new Array.

C - Create a new Scene.

W - Create a new Workset.

S - Create a new Script on selected items.

G - Creates a group and adds selected items to the group.

Other tips, tricks, and shortcuts:

F2 - Renames entities.

DEL - Deletes selected entities.

SPACEBAR - Toggles selection lock in 3D view.

V - Show selected 2D/3D entities.

H - Hide selected 2D/3D entities.

A - Activate selected entities in their context scene.

D - Deactivate selected entities in their context scene.

M - Modify selected Parameter Operation


Monday, December 13, 2010

Tips and Tricks: How do you email large Solidworks part files?

Sometimes e-mailing a SolidWorks part or assembly file
can be problem because of their large file size. If you use Winzip it will reduce the file size, but not by much. In order to drastically reduce the size of a SolidWorks files before e-mailing try the following technique:

  • Enclose the entire part within a solid box. I usually name the feature something like 'Delete me'.
  • Change the display mode from Shaded to line mode (hidden lines removed).
  • Complete a Save As on the file.
  • Now you can e-mail the file with a note to remove the feature called 'Delete me'.

I use this method quite frequently and it generally reduces the file size by about fifty percent.

Also, here are a few keyboard shortcuts I discovered that may help you in viewing and orienting your SolidWorks parts models:

Crtl+1 - Front view
Crtl+2 - Rear view
Crtl+3 - Left view
Crtl+4 - Right view
Crtl+5 - Top view
Crtl+6 - Bottom view
Crtl+7 - Isometric view

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, December 1, 2010

How can you tell which version a Pro/E model was made in?

The easiest way to tell which version of Pro/Engineer a model was made in is to open up the part (.prt) file in a text editor (such as notepad) and look at the first line of text. This will show you the necessary information. As an example. #UGC:2 ASSEMBLY 1068 440 0 1 1 15 2100 2000050 0000b335 \ #- VERS 0 0 \ #- HOST in this listing, the 2100 signifies v21 or 2000i and 2000050 is the build number.

Here's another quick Pro/E tip:

How do you specify what folder Pro/E defaults to when opening new a model? Simply use the option: "file_open_default_folder"

Tuesday, November 23, 2010

CATIA V5 Tips: Keyboard Shortcuts

To change standard views of a CatPart or a CatProduct simply click on the standard view icon, then press ARROW UP, DOWN, RIGHT or LEFT as you wish. To rotate your model on the screen, click anywhere on except the toolbar area and press: SHIFT+ARROW UP or DOWN keys for vertical rotation. SHIFT+ARROW RIGHT or LEFT for horizontal rotation. Hold keys for a full rotation.

CATIA macro tips.

Thursday, November 18, 2010

CATIA V5 Time Saving Tip

Here is nice little time saving tip for you CATIA V5 users out there. Many times when you are starting a sketch, you will find that it is too small or too big, and as you add constraints and modify them, your sketch becomes misshaped. Therefore, you need to scale all lines, arcs and circles with the constraints already on the sketch. To do this, use the scale without the duplication turned on. The nice part of doing this is that all the constraints will scale up or down at the same time and in the same ratio. This timesaving trick prevents you from fiddling with the sketch to get it close to the size you need. This is especially helpful on sketches with a lot of arcs and circles with tangencies. It also prevents complex sketches from turning red (with an error), because geometry relations need to increase at the same ratio simultaneously to retain shape integrity. Hope this helps!

Tuesday, November 16, 2010

How do you make your Solid Works part and assembly models light weight?

How do you make your Solid Works part and assembly models light weight? There are a couple of things you can do before your save you Solidworks model in order to reduce the file size and keep it as small and as light weight as possible. First, turn off all of the "items." This includes "View Plane", "View Origins", "View Axes", etc. Do not just hide them. Turn them all off! Next, change the Display Style to Shaded (not Shaded with Edges). Yes, those shaded edges do make a bit of a difference, small, but these all add up. Finally, under View Settings, turn off RealView Graphics and Shadows in Shaded Mode. If you do adjust all of these settings before you save you part file or assembly you will save on space and keep the file size down, which is a real plus when dealing with a large assembly.

Monday, November 15, 2010

Automatically Create Cross-ties for a Roller Coaster Using VBA CATScript

Are you looking for a way to pattern an object multiple times in CATIA? How do you write catscripts in CATIA? Are you looking for a CAD model roller coaster? You've come to the write place.

If you been following this blog then you're probably aware of my work on the cantilevered roller coaster concept model. I recently created a new track to simulate the motion capability of the vehicle. I needed a quick and easy way to create all of the cross-ties which hold the two running rails together in order to create a CAD model which is as realistic as possible. At first, I was using patterns for each section of track: rectangular pattern for straight sections and circular patterns for turns and hills. This was a very time consuming process. My model contains two track that are currently around a thousand feet long. With a little bit of help from a CATIA forum, I was able to put together a CATScript which quickly and easily creates all of the cross-ties at once.

In order to get this work there are a few things that needed to be done. The rails had to be in their own separate part file. There had to be a geometrical set named "Rollercoaster." You have to select the guide curves for each rail before running the VBA code.

Here is the procedure used in the CATScript:

1. Place point1 on guidecurve1 and point2 on guidecurve2 each at equal distance from their start points.
2. Create plane normal to guidecurve1 through point1.
3. Find an intersection between normal plane and guidecurve2
4. Use near operation to select element from intersection that lie on guidecurve2 (in case if there are multiple intersections). Use point2 as reference element. Then redefine point2 to point found.
5. Place a tangent line to guidecurve1 at point1 using AddNewLineTangency method with length limits -1.5'' and 1.5'' (tangentline1)
6. Place a tangent line to guidecurve2 at point2 using AddNewLineTangency method with length limits -1.5'' and 1.5'' (tangentline2)
7. Look for points at ends of tangentline1 with AddNewPointOnCurveFromPercent method using 0% and 100% values.
8. Look for points at ends of tangentline2 with AddNewPointOnCurveFromPercent method using 0% and 100% values.
9. Connect points from 3 and 4 with lines using AddNewLinePtPt method.
10. Create new fill object using AddNewFill method and add tangent lines and lines from 5 to it using it's AddBound method.
11. Create a pad using AddNewPad method of ShapeFactory object of root part of active document.

Pictured is the track before and after the macro is ran. Here is the complete code:

Automatically Create Cross-ties for a Roller Coaster
Option Explicit

Private Const ONE_FOOT_MM = 30  ' define number of millimiteres in one foot

Private Const STEP_LENGTH = 48  ' length between cross-ties, in feet
Private Const PAD_SIDE = 3      ' length of single cross-tie side, in feet

Sub CATMain()

    ' accessing part object
    Dim RootPart As Part
    Set RootPart = CATIA.ActiveDocument.Part
    ' retrieving target geometrical set named "Rollercoaster"
    Dim TargetGeoSet As HybridBody
    Set TargetGeoSet = RootPart.HybridBodies.Item("Rollercoaster")
    ' define partbody as work object
    Dim PartBody As Body
    Set PartBody = RootPart.MainBody
    RootPart.InWorkObject = PartBody

    ' accessing selection object for current document
    Dim objSelection As Selection
    Set objSelection = CATIA.ActiveDocument.Selection
    ' retrieving reference for first curve
    Dim GuideCurve1 As AnyObject
    Set GuideCurve1 = objSelection.Item2(1).Value

    Dim refCurve1 As Reference
    If (TypeName(GuideCurve1) = "CATIAReference") Or (TypeName(GuideCurve1) = "MonoDimFeatEdge") Then
        Set refCurve1 = GuideCurve1
        Set refCurve1 = RootPart.CreateReferenceFromObject(GuideCurve1)
    End If
    ' retrieving reference for second curve
    Dim GuideCurve2 As Object
    Set GuideCurve2 = objSelection.Item2(2).Value

    Dim refCurve2 As Reference
    If (TypeName(GuideCurve2) = "CATIAReference") Or (TypeName(GuideCurve2) = "MonoDimFeatEdge") Then
        Set refCurve2 = GuideCurve2
        Set refCurve2 = RootPart.CreateReferenceFromObject(GuideCurve2)
    End If
    ' Retrieving guides' lengths
    Dim PartProd As Product
    Set PartProd = CATIA.ActiveDocument.Product
    Dim SPAWbench As SPAWorkbench
    Set SPAWbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
    Dim objMeasurable As Measurable
    Set objMeasurable = SPAWbench.GetMeasurable(refCurve1)
    Dim GuideLength1 As Double
    GuideLength1 = SPAWbench.GetMeasurable(refCurve1).Length
    Dim GuideLength2 As Double
    GuideLength2 = SPAWbench.GetMeasurable(refCurve2).Length
    ' Equidistance points
    Dim PointOnCurve1 As HybridShapePointOnCurve
    Dim PointOnCurve2 As HybridShapePointOnCurve
    Dim refPOC1 As Reference
    Dim refPOC2 As Reference
    ' Normal plane
    Dim NormalPlane As HybridShapePlaneNormal
    Dim refNPlane As Reference
    Dim objIntersection As HybridShapeIntersection
    Dim refIntersection As Reference
    Dim objNear As HybridShapeNear
    Dim refNear As Reference
    ' Tangent lines
    Dim TangentLine1 As HybridShapeLineTangency
    Dim TangentLine2 As HybridShapeLineTangency
    Dim refTLine1 As Reference
    Dim refTLine2 As Reference
    ' endpoints for tangetnt lines
    Dim TLine1EndPoint1 As HybridShapePointOnCurve
    Dim TLine1EndPoint2 As HybridShapePointOnCurve
    Dim TLine2EndPoint1 As HybridShapePointOnCurve
    Dim TLine2EndPoint2 As HybridShapePointOnCurve
    Dim refTL1EPoint1 As Reference
    Dim refTL1EPoint2 As Reference
    Dim refTL2EPoint1 As Reference
    Dim refTL2EPoint2 As Reference
    ' lines, that connect endpoints of tangent lines
    Dim BoundLine1 As HybridShapeLinePtPt
    Dim BoundLine2 As HybridShapeLinePtPt
    Dim refBLine1 As Reference
    Dim refBLine2 As Reference
    ' fill object
    Dim objFill As HybridShapeFill
    Dim refFill As Reference
    ' direction line
    Dim DirectionLine As Line
    Dim refDLine As Reference
    ' pad object
    Dim objPad As Pad
    Dim refPad As Pad
    ' construction parameters
    Dim StepLength As Double
    StepLength = STEP_LENGTH * ONE_FOOT_MM
    Dim PadSideLength As Double
    PadSideLength = PAD_SIDE * ONE_FOOT_MM
    Dim curDistance As Double
    curDistance = StepLength
    ' accessing factory for creating shape objects
    Dim objHSF As HybridShapeFactory
    Set objHSF = RootPart.HybridShapeFactory
    ' accessing factory for creating solid objects
    Dim objHF As ShapeFactory
    Set objHF = RootPart.ShapeFactory

    ' define correct direction for second curve
    Dim SecondCurveDirection As Boolean
    Dim NormalDirectionDistance As Double
    Dim InvertDirectionDistance As Double
    ' get distance for normal direction
    Set PointOnCurve1 = objHSF.AddNewPointOnCurveFromDistance(refCurve1, 0, True)
    Set PointOnCurve2 = objHSF.AddNewPointOnCurveFromDistance(refCurve2, 0, True)
    Set refPOC1 = RootPart.CreateReferenceFromObject(PointOnCurve1)
    Set refPOC2 = RootPart.CreateReferenceFromObject(PointOnCurve2)
    TargetGeoSet.AppendHybridShape PointOnCurve1
    TargetGeoSet.AppendHybridShape PointOnCurve2
    Set objMeasurable = SPAWbench.GetMeasurable(refPOC1)
    NormalDirectionDistance = objMeasurable.GetMinimumDistance(refPOC2)
    objSelection.Add PointOnCurve2
    ' get distance for invert direction
    Set PointOnCurve2 = objHSF.AddNewPointOnCurveFromDistance(refCurve2, 0, False)
    Set refPOC2 = RootPart.CreateReferenceFromObject(PointOnCurve2)
    TargetGeoSet.AppendHybridShape PointOnCurve2
    InvertDirectionDistance = objMeasurable.GetMinimumDistance(refPOC2)
    If (NormalDirectionDistance < InvertDirectionDistance) Then
        SecondCurveDirection = True
        SecondCurveDirection = False
    End If
    objSelection.Add PointOnCurve1
    objSelection.Add PointOnCurve2
    ' start constructing pads
    Do While (curDistance < GuideLength1)
        ' place point on first curve at specified distance
        Set PointOnCurve1 = objHSF.AddNewPointOnCurveFromDistance(refCurve1, curDistance, True)
        Set refPOC1 = RootPart.CreateReferenceFromObject(PointOnCurve1)
        ' create plane normal to first curve at initially created point
        Set NormalPlane = objHSF.AddNewPlaneNormal(refCurve1, refPOC1)
        Set refNPlane = RootPart.CreateReferenceFromObject(NormalPlane)
        ' define second point as intersection of normal plane and second curve
        Set objIntersection = objHSF.AddNewIntersection(refNPlane, refCurve2)
        Set refIntersection = RootPart.CreateReferenceFromObject(objIntersection)
        Set PointOnCurve2 = objHSF.AddNewPointOnCurveFromDistance(refCurve2, curDistance, SecondCurveDirection)
        Set refPOC2 = RootPart.CreateReferenceFromObject(PointOnCurve2)
        Set objNear = objHSF.AddNewNear(refIntersection, refPOC2)
        Set refNear = RootPart.CreateReferenceFromObject(objNear)
        Set refPOC2 = refNear
        'Set refPOC2 = RootPart.CreateReferenceFromObject(objIntersection)
        ' construct tangent lines
        Set TangentLine1 = objHSF.AddNewLineTangency(refCurve1, refPOC1, (-1) * PadSideLength / 2, PadSideLength / 2, True)
        Set TangentLine2 = objHSF.AddNewLineTangency(refCurve2, refPOC2, (-1) * PadSideLength / 2, PadSideLength / 2, True)
        TargetGeoSet.AppendHybridShape TangentLine1
        TargetGeoSet.AppendHybridShape TangentLine2
        ' get reference objects for tangent lines
        Set refTLine1 = RootPart.CreateReferenceFromObject(TangentLine1)
        Set refTLine2 = RootPart.CreateReferenceFromObject(TangentLine2)
        ' Get endpoints for tangent lines
        Set TLine1EndPoint1 = objHSF.AddNewPointOnCurveFromPercent(refTLine1, 0, True)
        Set TLine1EndPoint2 = objHSF.AddNewPointOnCurveFromPercent(refTLine1, 1, True)
        Set TLine2EndPoint1 = objHSF.AddNewPointOnCurveFromPercent(refTLine2, 0, SecondCurveDirection)
        Set TLine2EndPoint2 = objHSF.AddNewPointOnCurveFromPercent(refTLine2, 1, SecondCurveDirection)
        TargetGeoSet.AppendHybridShape TLine1EndPoint1
        TargetGeoSet.AppendHybridShape TLine1EndPoint2
        TargetGeoSet.AppendHybridShape TLine2EndPoint1
        TargetGeoSet.AppendHybridShape TLine2EndPoint2
        ' get reference objects for endpoints
        Set refTL1EPoint1 = RootPart.CreateReferenceFromObject(TLine1EndPoint1)
        Set refTL1EPoint2 = RootPart.CreateReferenceFromObject(TLine1EndPoint2)
        Set refTL2EPoint1 = RootPart.CreateReferenceFromObject(TLine2EndPoint1)
        Set refTL2EPoint2 = RootPart.CreateReferenceFromObject(TLine2EndPoint2)
        ' construct bound lines
        Set BoundLine1 = objHSF.AddNewLinePtPt(refTL1EPoint1, refTL2EPoint1)
        Set BoundLine2 = objHSF.AddNewLinePtPt(refTL1EPoint2, refTL2EPoint2)
        TargetGeoSet.AppendHybridShape BoundLine1
        TargetGeoSet.AppendHybridShape BoundLine2
        Set refBLine1 = RootPart.CreateReferenceFromObject(BoundLine1)
        Set refBLine2 = RootPart.CreateReferenceFromObject(BoundLine2)
        ' create fill with contour
        Set objFill = objHSF.AddNewFill()
        objFill.AddBound refTLine1
        objFill.AddBound refBLine1
        objFill.AddBound refTLine2
        objFill.AddBound refBLine2
        TargetGeoSet.AppendHybridShape objFill
        Set refFill = RootPart.CreateReferenceFromObject(objFill)
        ' create direction
        Set DirectionLine = objHSF.AddNewLineNormal(refFill, refTL1EPoint1, False, -5, 5)
        Set refDLine = RootPart.CreateReferenceFromObject(DirectionLine)
        TargetGeoSet.AppendHybridShape DirectionLine
        ' create pad
        Set objPad = objHF.AddNewPadFromRef(refFill, PadSideLength / 2)
        ' define pad limits
        objPad.FirstLimit.Dimension.Value = PadSideLength / 2
        objPad.SecondLimit.Dimension.Value = PadSideLength / 2
        ' set direction
        objPad.SetDirection refDLine
        ' move to construction of the next pad
        curDistance = curDistance + StepLength
    ' Update part to see added objects

End Sub

Wednesday, November 3, 2010

How to Shell a Sphere in CATIA V5

This may sound weird, but how do you shell a sphere in CATIA? First, you need a sphere. Model a sphere as a solid using the shaft command (sketch Semicircle D of __mm diameter) or use the shell command in GSD. Or you can make a sphere in CATIA using a CATScript macro. Then, to shell the sphere geometry:
  • Shell Command. Add a value in Default Inside Thickness eg: 2mm
  • Select the sphere surface in " Face To Remove".
  • Again Select the same surface in "Other Thickness Faces"
  • Click OK.
Only after selecting the shell command and then clicking on OK will the sphere be shelled. Most users tend to
select the surface for shell where the command doesn't work.

Wednesday, October 27, 2010

What are the benefits of using 3D Technical Publications?

Benefits of 3D

  • Better visualization – "Seeing is Understanding"
  • Leverage existing CAD data from engineering
  • Dynamic, Interactive Content – click through assembly steps
  • Graphical selections – select on a part to view its metadata, select on a BOM item to highlight the part
  • Less text needed – if "a picture is worth a thousand words", a picture you can move is worth many more.

Common Features of 3D Tech Pubs Software

  • Multi-CAD Import
  • Lightweight model creation
  • Rendering with texture mapping
  • Basic Kinematics
  • Annotation & Markup
  • Related BOM and Part Attributes
  • Animations
  • Output to PDF, html, xml, etc

Uses of Technical Publications

  • NC Documentation / Setup Sheets
  • Assembly Instructions
  • MRO Documentation
  • User Manuals
  • Training Materials
  • Product Data Sheets

Technical Publication Formats

  • Many options exist to output standard text and graphic formats – CGM has often been preferred for graphics since it is vector based
  • Many authoring tools can output html or other formats, but they may require proprietary viewers (usually free) for advanced 3D content
  • AVI files aren't as interactive as specialized 3D viewers and can lead to very large files
  • Many tools can now output 3D PDF data that can be viewed by anyone with the current Acrobat Reader – There are some limitation of using PDF w/ U3D
  • XML shows some promise as an intermediate format between systems, but requires adoption of standards


  • Many tools are now available to create 3D interactive technical publications and training materials
  • Most of these applications have their own viewer software
  • Using 3D PDF or html for final content makes a proprietary viewer less of an issue
  • Models for use in publications should ideally be generated as lightweight representations directly from the engineering data in the PLM system
  • There are detailed standards that may need to be adhered to – especially in Aero & Defense applications
  • The S1000D standards are not comprehensive. They still require each company to define their own business rules.




Tuesday, October 12, 2010

How do you open a Unigraphics NX part file in Pro/Engineer Wildfire?

I recently installed ProE 5.0 as well as Unigraphics 7.5. When trying to open NX files in ProE you may encounter the error message to "select the Unigraphics (*.prt) filter". Where do you find this Unigraphics part filter in ProE? Simply follow these steps:

Go to the tool bar
Tool->option-> type in the find box INTF3D_UG_INSTALL_DIR -> add/change-> select that directory where ProE was installed then click ->YES ->APPLY-> OK

Next, go to Open File
Filter in type GRAPHICS
Now select the UG PART
Click Open
Now the file should open!

Thursday, October 7, 2010

Surfacing in Solid Edge

Welcome to our second edition of the Ally PLM Lunch Bytes. Our topic we cover in this edition is surfacing. These videos show many good examples of how to use the surfacing tools in Solid Edge.

Wednesday, September 29, 2010

How do you find and use dynamic mirror in SolidWorks?

The Dynamic Mirror tool is a sketcher tool that allows you to dynamically mirror geometry as you're sketching it. To use dynamic mirror, you first have to find it as it probably won't be on your sketch toolbar to start out with. First, hit the 'S' key then right mouse click on the menu and select customize. Go to the 'Commands' tab and select 'Sketch'. There you'll see the Dynamic Mirror icon. It looks like the mirror icon but with a little lightning bolt symbol. Simply drag and drop the dynamic mirror icon to either the 'S' menu or to the sketch toolbar and you're all set!

Monday, September 20, 2010

How do you create a title block in ProEngineer?

There are two primary methods to bring a title block into a drawing in ProEngineer. To insert a title block into an existing drawing:

First, open the existing drawing: File/Open/directory/filename. The existing drawing appears. Now, clean a space for the title block by selection of a view (mouse left button click). The goal is to get enough space for the title block in the lower right corner. Next, use the new placement of the views and the space for the title block will be ready.

Using "Sketch" tools, select the "Line" tool and draw a title block. In this method, the form is fully defined by a drafter and should comply with the rules adopted by the company or client. To finish drafting, click the middle mouse button somewhere in the area of the drawing.


To fill in the title block simply hit the "Insert Note" option of the main menu. Next, select the type of notes in the Menu Manager (Default options: No Leader, Horizontal, Default justification – Make Note). In the actual title block, similar to regular notes, we can fill the lines with letters, numbers and symbol. Notes can be modified by a right mouse button click and select option "Properties" in the menu.

Note properties window appears. Bookmarks: Text & Text Style. Select the bookmark with the Text Style window. We can change here the font, letter height, line thickness, width factor between the letters.

Text parameters can also be modified, for example, height of the letters: from 0.156250 to 0.25". The note can also be moved in the drawing area into any other position (Left Button click & hold). This title block is used only once, in this particular drawing, and cannot be used anywhere else.

Monday, September 13, 2010

How do you render an image in Solid Edge?

Do you need to know how to render a 3D model into a marketable high-quality image? Well, check out the videos below for all you need to know about the rendering options in Solid Edge!

Tuesday, August 31, 2010

What does a CAD Technician do?

Are you thinking about getting into computer modeling or design work? CAD technicians are typical entry level positions throughout the industry. The CAD Technician works as a member of a team that is responsible for modeling and detailing activity associated with engineering services.


The following duties and responsibilities are illustrative of the primary functions of this position and are not intended to be all-inclusive.

CAD Technicians must have ability to:

  • Operate computer and effectively use various CAD software packages, including CATIA V5, Siemens' UG-NX, SolidWorks, Pro/E, AutoCAD, etc.
  • Generate 3D models of parts and assemblies
  • Perform meshing for analysis
  • Effectively communicate CAD model creation and conversion related issues or concerns. These would include model design, software issues or complex attribution.
  • Track own progress against bid hours using sources available to ensure project deadlines are met



  • Previous CAD experience a plus but not required
  • Good basic computer skills
  • Ability to pay close attention to detail and work accurately
  • Ability to work effectively as a team member
  • Be flexible to cross-train and work on various projects as needed
  • Be self-directed to pace own work and meet necessary project deadlines
  • Good verbal communication skills
  • Ability to establish and maintain effective working relationships with other CAD Technicians, manager, supervisor and other staff
  • Willingness to continuously learn different aspects of CAD-type applications
  • Understanding of engineering drawings and legacy CAD digital files a plus
  • Bachelor's degree in related field a plus

Monday, August 30, 2010

How do you create high quality model renderings in CATIA V5?

CATIA V5 users may be wondering how do you create a high resolution image of their CAD model? The quickest way to render an image of a model in CATIA is by going to Start>Infrastructure>Photo Studio--> quick rendering. Although this is drastically better than just taking a screen shot, it isn't really a high quality resolution image that you may want to use for a poster or marketing device. So how do you produce a really high resolution picture?

Go to Start>Infrastructure>Photo Studio. Next, click on the "Create Shooting" icon. A window will pop up and the first tab should be "frame." There should be an option that says "image size". Move the slider bar to a higher level on the right as this changes the pixels. Typical size for a poster is 1600 x 1200.

Also, you can go through the other tabs to refine what you want in your picture by setting many of the other options, including various lighting packages. There is even a "cartoon" view!

To obtain your final image click on the "Render Shooting" icon, located under the "Create Shooting" icon. It takes a little longer to render the image this way but it's worth it. Quality over quantity every time! This is also another way to render video simulations from the kinematics workbench. It even lets you chose a camera view to use (like if you are modeling a roller coaster and want to take a POV ride). I hope this helps you render high quality screen captures!

Monday, August 23, 2010

How to simulate rolling with CATIA DMU Kinematics?

Slide 1
A reader recently asked if I could put together a tutorial for the kinematics rolling simulation that I created. This may not be extremely detailed but should give you a pretty good idea of the steps to take when trying to simulate rolling in CATIA. This was one of the preliminary tests I ran before attempting to simulate my entire roller coaster model.

(Download the rolling in kinematocs tutorial here)

Every time you use kinematics something needs to be fixed, so the rest of the assembly moves in relation to the fixed part. In this case, the track will be fixed. Set the assembly up in assembly design then switch to the DMU Kinematics workbench when you are ready to begin simulating. You can see the constraints I used in the screen shot. It is very important to pay attention to the degrees of freedom of the system. When dealing with large assemblies, I often fully constrain the entire assembly and then go back in later and delete the constraints where I want a part to be able to move, in order to not be confused. 

Slide 2
Here are the joints I used to create the connected wheel rolling kinematics simulation.  To create these constraints, click “Assembly Constraints Conversion” wizard.  Create a new mechanism then click “Auto Create” and it will automatically create joints based on the constraints in the assembly. Next, you need to manually create the roll curve joints between the wheels and the track.
 Slide 3
In order to create a roll curve joint you must have two curves that are tangent to one another. Here, you can see the sketch on the wheels is tangent to the sketch on the corner of the track. Double click on one of the roll curve joints and toggle the “Length Driven” option. This is your input. After you click ok you should get a message that reads “The machanism can now be simulated” and the degrees of freedom of the system  (DOF) should be zero.
Slide 4
In order to apply gravity to your simulation you need to create a sketch  called a “trace law.” This is essentially a graph of distance which respect to time, with the horizontal axis being time and the vertical axis being distance. A straight line gives a linear relationship, or a constant speed. Change the graph to an exponential curve and you now have acceleration.

Now you should be able to simulate two connected wheels rolling down a hill with gravity. Any questions?

Thursday, August 19, 2010

Steel Roller Coaster Modeled in CATIA V5

As you can see from many of my previous posts, I spend quite a bit of time modeling roller coasters in CATIA. Well, it looks like I'm not the only one. Yunus Alapan, a student at Yildiz Technical University in Istanbul, Turkey, recently submitted a few pictures of a roller coaster he created with CATIA V5. I know from experience how hard and time consuming  it is to model a complete roller coaster by yourself, piece by piece. Hopefully, one day we will see some cars running around the track. Good job Yunus!

And since we are on the topic of CAD coasters, check out my latest simulation of the Cantilevered Roller Coaster. This time I show case the “side knocker” effect! More kinematics experimentation on the CRC model with a mismatch of new and old parts.

Tuesday, August 10, 2010

New 3D XML Model Uploaded to 3D Via

Today, I uploaded a new CAD model to 3D Via in 3D XML format. This is the current state of my next generation version of the cantilevered roller coaster. The main difference has been the change from a cantilevered I beam to a beefier truss configuration.

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?

Monday, July 19, 2010

Steam Train Piston Assembly Kinematics Simulation in CATIA

Check out the train simulation I did in CATIA V5 with the DMU Kinematics workbench! Your assembly literally has to be perfect before you can even begin to attempt kinematic simulations. Which is why I often times assemble a few pieces and then simulate a small portion of whatever it is I am building just to make sure it is working, then I add on a little more and repeat. It takes longer but is easier to diagnosis problems this way. I use an Excel spreadsheet to help me keep track of the number of degrees of freedom of each part that is not fully constrained during assembly. This seems to help me a lot. What are your strategies?

Wednesday, July 14, 2010

How do you write a CATIA CATScript Macro?

A question I often get asked is "how do you create vba macros in Catia?" One solution is to write a script. No, not a script for a movie, a CATScript file! To create a CATScript macro for CATIA open Notepad and write your code, then save the file with whatever name you want and type extension .CATScript instead of .txt. Here is a simple CATScript you can use as an example. This CATScript will tell you which version of Catia you are currently using, including the service pack number. Copy and paste the code into Notepad then save as CatiaVersion.CATScript.


Sub CATMain()

Set SystemConfiguration1 = CATIA.SystemConfiguration

Msgbox "CATIA V" & SystemConfiguration1.Version & " R " & SystemConfiguration1.Release & " sp " & SystemConfiguration1.ServicePack
End Sub

Now you are on your way to writing your own CATScript macros and automating simple and repetitive processes!

Learn how to write CATScript macros Lesson 1.


Tuesday, July 13, 2010

How do you write code for Catia’s Expert Check Editor?

I've been trying to use KBE (Knowledge Based Engineering) to try and automate a checking procedure on an NC machining process in CATIA V5. The customer requirement is for all cuts to be in the climb direction, not conventional. Using the expert check editor I can implement a checking system to easily make sure all machining operations are compliant with this requirement. Syntax is the trickiest part of the KWE language, so pay close attention to every key stroke you make when programming. Here are the steps:

Knowledgeware>Knowledge Expert Workbench>Expert Check Editor

Be sure to select the KWE Advanced Language from the pull down menu. Now enter the following code:

For All entry: FX:Mfg5AxisCurveMachining; CX:Mfg5AxisFlankContouring

Body entry: /* only interested in multi axis curve operations containing the word "Rough" */

if FX->Name()->Search("Rough")>=0


    if FX.MfgDirectionOfCut=="MfgClimb"


        ThisCheck->AddTupleSucceeded (FX)




        ThisCheck->AddTupleFailed (FX)




/* only interested in multi axis curve operations containing the word "Finish" */


if FX->Name()->Search("Finish")>=0


    if FX.MfgDirectionOfCut=="MfgClimb"


        ThisCheck->AddTupleSucceeded (FX)




        ThisCheck->AddTupleFailed (FX)




/* only interested in multi axis FLANK CONTOURING operations containing the word "Chamfer" */


if CX->Name()->Search("Chamfer")>=0


    if CX.MfgDirectionOfCut=="MfgClimb"


        ThisCheck->AddTupleSucceeded (CX)




        ThisCheck->AddTupleFailed (CX)



Monday, July 12, 2010

Catia NC Programming using Check Editor Knowledge Based Engineering

I use the check editor in Catia V5 to improve the quality of NC machining process files. All of my chamfer cuts on this particular part need to have a Tanto Fan axis. I use the code below:

`Far Side Chamfer 1\MfgParameter.5\Tool axis strategy` == "MfgTantoFan" AND
`Far Side Chamfer 2\MfgParameter.5\Tool axis strategy` == "MfgTantoFan" AND
`Near Side Chamfer 1\MfgParameter.5\Tool axis strategy`== "MfgTantoFan" AND
`Near Side Chamfer 2\MfgParameter.5\Tool axis strategy` == "MfgTantoFan" AND
`Near Side Chamfer 3\MfgParameter.5\Tool axis strategy` == "MfgTantoFan"

All of the machining operations in my part need to be climb cut. Therefore, I used this code in the Catia check editor to let me know if it somehow gets changed by accident.

`Rough Far Side.1\MfgParameter.5\Direction of cut` == "MfgClimb" AND
`Rough Far Side.2\MfgParameter.5\Direction of cut` == "MfgClimb"

Keep in mind you can't just use a plain old equals sign, you need to use the double equals. Also, it took me awhile to figure out the correct syntax for  "MfgClimb". I tried "Climb" and MfgClimb unsuccessfully before stumbling upon the successful solution.

I use a parameter to control the depth periphery (depth of cut) and the distance on the rough profile from the tool to the part. Here are the simple formulas for the check editor.

Depth_Periphery == -2mm AND RoughProfile == 1.5mm

/*Check created by Me 7/12/2010*/

Thursday, June 24, 2010

CAD Roller Coaster Model Car Concept

Working on a new concept model in part and assembly design. This is the lower chasis. modeled in Catia V5 and screenshot in 3D Via. More to come soon including the 3d xml files.

Wednesday, June 23, 2010

Best Practices for CATIA V5

There is a great thread for CATIA V5 Users:

I've compiled the complete list of suggests here:

1 Never make a plane from a solid face! Reason being is that if the solid changes, it can affect the plane which can snowball into a huge mess of errors.

2. (for managers) Never purchase Catia, and expect to implement it, and get full functionality, without TRAINING, and I mean professional training.

3. Never make geometry without knowing what the 'In Work' object is.

4. Never open a R18 file in R19, and accidently save it.

5. Never use File + save + Propagate directory, as a substitute for file and directory structure management.

6. Never alter the Customer model

7. Don't do fixed bid work for less than the going contract hourly rate. To do so is just plain self torture.

8. Never do fixed bid NC programming

9. If you ignore #8 .....Never do fixed bid NC programming, for an new customer, without a signed off preplan.

10. Never Mix hybrid and .........

11. Never trust that hotfix/SP will fix the problem you reported on first round without any additional problems...

12. Leave fillets out of sketches and make them as dress-up features operations except, curves that define major features of the design should be included in the sketch.

13. Never release a service pack, to the population, before a major test regiment

14. Never load a service pack, before a major deadline.

15. Never skip going to a COE annual Conference

16. Never do nothing but whine and complain about CATIA. Sure it's fun to poke at it, and have a good laugh at DS's expense. The reality is, as Roger says: ::CATIA keeps getting better all the time"

17. Never duplicate geometry within a sketch. Keep sketches simple, and only define a single profile. Use Pattern to duplicate the profile's feature

18. Never link to anything that isn't published
19. Never use Faces, Edges, or Vertices to create new geometry. You can use the, but always create an EXTRACT element first.

20. Never exit a sketch unless everything is fully constrained. (never exit if geometry is white - everything should be green or yellow)

21. Never exit a sketch without first doing a sketch analysis.

22. Avoid using Red. Catia uses Red to 'warn'. It can become confusing.

23. Don't use translate/rotate/scale in normal design. They are useful if you get data from other CAD, but other changes should happen with changes of part specification, not by adding these commands.

24. Don't try to do everything in one part like V4. Learn Products and do your work in your own CATPart.

25. Don't use the V4 method part modeling; don't make a body and pad of every solid feature and boolean Add or Remove the body to the part. V5 features are automatically added or removed, making boolean operations unnecessary for basic part design. Use boolean operations only for grouping and special situations.

26. Don't turn on the Datum mode when making surfaces, to create isolated surfaces like in V4. Keep the parent/child relationships to make it easy to modify surface models.

27. Don't blindly create all sketches as positioned just because you heard it was better. If you do create positioned sketches, make sure you position them properly. Positioned sketches are extremely useful but aren't required in a lot of situations. (Floating sketches have their own set of issues.)

28. Use "Positioned Sketch"

29. In general: The rule of one Physical Part = one CATIA Part. Body is not Part, it's Body. (Exceptions: e.g.: Over-molded parts.)

30. If you create Contextually linked part (part with contextual links) Position the part to common origin. Typical way of getting an assembly level update cycle is:
• Part is positioned with constraints that create a Positional link between geometry of this part & other parts
• Part has contextual links that affect to this very same geometry
èeasily there is a conflict of geometry position versus geometry shape... èUpdate cycle or impossible to update.
èIf you create contextually linked part, just freeze it to space with Fix or position it with constraints from Basic planes.

31. When creating external references or internal references be thoughtful of how they are affected by changes. Think; "how flexible is this reference?" It's not always easy and sometimes requires trial and error.

32. Profile sketches should be limited to lines and as few curves as necessary to describe the geometry.

33. Learn how to build a well named / organized tree and file system. It might seem trivial on small jobs, but on the big ones it becomes an absolute necessity.

34. When creating assemblies with several constraints, LABEL THEM so you know what you're looking at when one of them breaks or fails. Do it when you create the constraint.

35. Always comment actions/knowledgeware scripts/VB scripts so you know what you did.

36. Learn and understand Links

37. Learn and understand Parameters

38. Learn and understand PowerCopies

39. Learn When and Why to use Boolean Operations. They aren't always required, but they are OK to use when they are required. If you have to go out of your way to avoid them, then use them. KISS - Keep It Simple, S(illy)

40. Try to limit the number of items that you project or intersect into a sketch (use edges). If you do create use edges, make sure to select the item ONLY from the tree. If you select the item by picking the 3D geometry, the use edge will always use a BREP, which can be unstable on future updates.

41. Check and double check your CATSettings. Understand them.

Wednesday, June 16, 2010

How To: AutoCAD 2008 Tutorial

I found this video to be very helpful. AutoCAD 2008 Tutorial, the Autocad interface, toolbars, pull-down menus, command line, accessing commands.

Thursday, May 27, 2010

Pilgrims Plunge CAD Model Recreation

Pilgrims Plunge is the world's tallest water ride and can be found at Holiday World in Santa Claus, Indiana. This is my CAD model recreated in CATIA V5.The original ride is manufactured by Intamin. The layout is pretty accurate despite the fact that I haven't seen any real blueprints.For more thrill ride facts check out Amusement Authority.

Thursday, May 20, 2010

Solid Works Material Application and Catalogs

Have you been asking yourself these two questions:

How do you apply material in Solid Works?

How do you create a Solid Works Material Catalog?

Today, I will be sharing the solution with you. Here is how you apply material to a specific part in Solid Works:

  1. Open part to add material.
  2. Right Click – Material <not specified>
  3. Select – Edit material
  4. Select – SolidWorks Material dropdown
  5. Select – Material Library
  6. Select material that applies.
  7. Select – Green Check Mark

That's how you do it. Pretty simple, huh? But what if you don't have a Material Library or catalog to choose from? You need to create your own. Here's how:

  1. Right click- Material / Edit Material
  2. Select Material Library
  3. Select a similar material (2024-T3 Aluminum)
  4. Select – Create/Edit Material
  5. Fill in Material Name.
  6. Fill in Physical Properties.
  7. Select OK. The material will be added to the top of the list.

There you have it. Was that explanation sufficient?

Monday, May 10, 2010

Pro/Engineer CAD Tips and Tricks

I know I've gotten away from this lately, but I think it is time to get this blog back on track and provide you with CAD systems help. Here are a few best practices I've learned from using Pro/Engineer Wildfire in my engineering job experience over the years. If you're stuck or having difficulty with a project hopefully one of these pointers will help you out. I know Pro/Engineer can be a bit tricky sometimes, especially when you are going from one CAD software package to another interchangeably like I have.

General Notes

  • Make sure to use the "erase not displayed" to keep the memory cleared so that changes to parts are saved properly.
  • Make sure you are using proper environment files by running batch file from the Environment folder in the Pro Engineer main folder.
  • Since ProE keeps separate files for all versions of drawings, parts, and assemblies it is best to use the "open file" feature instead of dragging and dropping files into ProE. This ensures that you are always opening up the most recent file.
  • Create cross sections of parts and assemblies in the part and assembly work benches prior to drawing creation.
  • Create datum annotations at the part and assembly level prior to drawing creation.
  • Always keep in mind the final product, which is probably a drawing file, and all other stages will be easier.

Part Design

  • Unless otherwise specified, use internal sketches by selecting the operation then entering into sketcher mode.
  • Planes should be placed either at an edge, center of a part, or intersecting a main hole feature.
  • Create special planes as needed for part placement in assembly or to design special features.
  • When practical, use symmetry about axis in sketcher mode because this reduces the number of constraints needed to drive the part.
  • Strong dimensions equate to a fully constrained sketch in CATIA. All dimensions should be white instead of grey.
  • Best practice is to create separate chamfers/rounds for different sizes instead of using sets.
  • Best practice is to group holes, rounds, and chamfers together by feature at the end of the part tree.
  • For sheet metal parts, it is best to use the sheet metal workbench and create the parts using the sheet metal portion of it instead of creating an extrude then recognizing the part.
  • Sheet metal workbench is default inches, you may need to change units to mm (which I often forget. Seems obvious but is an easy mistake to make).

Assembly Design

  • ProE assembly is parent/child dependent or history based so it is best to build assemblies in a logical manner.
  • ProE allows the component assembling into the assembly to be opened in another window. Knowing how and when to use this feature can simplify assembly creation.
  • You can use existing patterns to place repeated components quicker.
  • ProE has lighter constraints so may use offsets when needed unlike in CATIA (where the offset constraint is heavy so when you are dealing with a large assembly it can get bogged down pretty quickly if you are using a ton of offset constraints. In CATIA, use coincidences instead).
  • May need to switch between mate and align to get component in proper position.
  • Using automatic constraints, it only takes two constraints for circular parts.
  • May add additional constraints to over ride automatic constraint mode as needed.


  • Best practice is to figure out the total number of sheets required then create all sheets prior to starting any view creation.
  • Best practice is to figure out sub sheet size for all components prior to creating drawings so that drawing creation is quicker and easier.
  • Best practice is to place all subsheets for an A0 sheet before adding notes or views.
  • Best practice is to add the notes prior to the views.
  • Best practice is to add model and set model versus having model open in the background.
  • Green text from first sheet is not copied to added sheets so you will have to copy/paste this information to other sheets.
  • If parts/ assemblies are set up correctly, then using show/erase allows for faster dimensioning of components.
  • For non-split balloons, use default balloon creation.
  • For split balloon creation, use palette split balloon.
  • For weldment symbols, use custom palette then browse to C:programfiles\proeWildfire4.0\symbols\library_syms\weldsymlib\iso_weld
  • For surface finish, insert surface finish, choose retrieve, generic or unmachined as required.

Monday, May 3, 2010

Engineering Textbooks reviews and deals

If you are currently an engineering student please join my Engineering Textbooks fanpage. Find great deals on textbooks as well as reviews. We believe that engineering is the field of the future! Engineers are needed to design and build everything from the latest energy efficiency electric car, to the next generation iPhone, but it all begins with a good education in the fundamentals of engineering and good textbooks are a prerequisite of a good education. If you are an engineer, or engineering student please join this group, and if you have a good engineering book please mention it on the wall. If you have any questions that relate to engineering please leave them on the wall as well and we will try to answer them!

Wednesday, April 21, 2010

Theo Jansen Mechanism Matlab Code

As promised, here is some of the Matlab code for the Theo Jansen Mechanism we posted a video of a little while back. We begin every Matlab program with the clear all command. Next are the lengths for all of the linkages.

clear all

%Link Lengths















%To get the video output:



for theta=0:pi/20:8*pi


%Relating all values to theta2 of 4-bar mechanism O2ABO1











%Finding the points relative to the motion of theta2



A=[L2*cos(theta) L2*sin(theta)];

B=[A(1)-L3*cos(psi-beta) A(2)+L3*sin(psi-beta)];


%Plotting the 4-bar mechanism

plot ([O1(1),A(1)],[O1(2),A(2)],'r','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)],'g','linewidth',3)

plot ([O2(1),B(1)],[O2(2),B(2)],'r','linewidth',3)

%Bottom triangle DEF

F=[E(1)-L12*cos(lambda+beta) E(2)-L12*sin(lambda+beta)];





%Link FG

G=[F(1)-L13*cos(lambda+beta) F(2)-L13*sin(lambda+beta)];


%Trajectory of point G






axis([-800 400 -800 400])

hold off








I left out a portion in the middle so you'll just have to figure that out by yourself!


Bookmark and Share