dev.nlited.com

>>

Geomagic Design

<<<< prev

2015-12-26 17:55:43 chip Page 1496 📢 PUBLIC

My personal notes regarding Geomagic Design. Everything should be taken with a health dose of skepticism, as I am not a mechanical engineer and I am figuring out just enough to accomplish very basic projects like test fixtures for small electronics. I am probably doing everything wrong.

Links
Marcus Wolschon: Personal blog with some notes on Geomagic
Alibre forum: Still alive, and has more useful information than the Geomagic site.

I have limited experience with both Geomagic Design (starting when it was Alibre) and SolidWorks. SolidWorks and AutoCAD are the acknowledged kings of the CAD market, and this is reinforced every time I try to search for information on how to do something in Geomagic. The number of people using CAD is small, the number who actually know what they are doing smaller, the number who post useful, correct, and up-to-date information is smaller yet, and the subset of those using Geomagic is too small to be found. Along with most of the world, I have come to depend on quick web searches to answer any question I have about anything. Most times, I can find the answer within a few minutes. That is not the case with Geomagic. I very much feel as though I am on my own trying to figure out a very complex program.

SolidWorks and AutoCAD are simply too expensive for my budget. The $400 annual "maintenance" fee for Geomagic is as much as I can allocate to something I will use only a few times a year. I used SolidWorks for a while, made affordable by purchasing it through my local community college under the educational license. I eventually gave up on SolidWorks due to the price and hassle of trying to renew the educational license while not actually enrolled. Alibre was priced right at $100, so I made the switch. The price jumped from $100 to $400 when Alibre was purchased by Geomagic, offset by a significant improvement in capability and stability. Alibre crashed a lot, GD was much more stable.

It has been a while, over a year, since I had any need to use Geomagic, and I am essentially starting over from zero in learning how to use Geomagic.

Geomagic UI

I intensely dislike the ribbon-based UI, especially when the ribbon changes based on the current mode. This makes it much more difficult to find functions, it was so easy before to explore drop-down menus. Now I am constantly hunting through piles of cryptic icons that are always moving around. The ribbon UI is a complete disaster.

I just discovered that the traditional menu UI is still there, just press Alt. This exposed the Tools > Options function where I could finally disable the "Maximize all workspaces" option, disable the ribbon, and always show the menu. Woot! How do I deactivate 2D sketch? Press "Activate 2D sketch" again. The only indication of the mode is the location of the "regenerate to" cursor in the Design Explorer list.

Running GD in a VM

My primary development environment is VS12, Windows81 running inside VMWare Workstation on a Surface Pro 3 (Pogo). The nuisance factor of running Windows inside Windows is more than offset by the convenience of having my entire development environment, including all the installed software, my own configurations and custom tools, and all my source code contained inside a single 200GB virtual drive that I can use on any computer. I have at least 5 different computers that I use regularly: Pogo (Surface Pro 3), ChipPro2 (Surface Pro 2), Hopi (home desktop system), Kofi (office desktop), and Lab1 (workbench). Buying 5 licenses is obviously out of the question, but I see absolutely no reason why any software vendor should be able to restrict me to using a single computer; I am buying the software, not my computer. Using a VM has solved this problem for me, I install everything once in VS12 and use VS12 on whatever computer is convenient.

Unfortunately, GD has some real problems running inside a VM. The graphics performance is poor but still usable. The biggest problem is the cursor. GD will trigger some mode where every few seconds the cursor jumps to the upper left corner of the VM window. This seems to be triggered by child windows with carets, though it is inconsistent. When it happens, it renders GD unusable. I installed GD directly onto Pogo and have not seen this problem, but this puts me back in the position of having to juggle licenses whenever I use a different computer.

I need to install the latest version in VS12.

Multiple Monitors

GD does not handle multiple monitors well. GD is organized in a way that involves frequently launching new instances of the program. Every time, the windows pops up maximized on the primary display. I don't want the window filling that display, which on Pogo is the 10" touchscreen with the microscopic pixels. I want the window to be overlapped on the secondary display, which is my 28" 4K monitor with plenty of room for multiple windows. This results in my repeating the procedure of "new part", wait for the maximized window to appear, find and click the tiny "restore" button, drag the window to the other monitor, resize the window. This becomes very tedious.

Placing Things

geomagic

The initial placement of objects has long-term effects that can make everything easier or harder (not impossible). I don't know why, but the Geomagic 3D view icons don't seem to be based on the standard XY, extrude into Z orientation. This is confusing later when I am trying to orient assemblies. I can match the 3D icons if, before placing anything, I change the 2D view to ZX-Plane so the X axis is to the left and the Z axis is down. Place the shapes in the lower right quadrant (+X,+Z). Now the 3D view icons will more intuitively relate to the part. However, 3D "UP" is now along the Y axis (not Z) and the Z axis now points out of the front.


Centering Things

My first attempts to place parts in the center of other parts used dimensions to set offsets from the edge. I then recalled the concept of "centerlines" from my Solidworks days. I place a line from one edge of the first part to the opposite edge, then use a "midpoint" constraint to center the endpoints of the line. I learned two things to make this work: use "reference lines" not "lines", and don't place the line directly -- use the constraints. GD will not complain if I use lines instead of reference line, until I place another feature that intersects it or apply a boss/hole that cuts it. Placing the endpoints of the reference line directly onto what I think is the midpoint can be misleading. It is better to let the constraint move the point dramatically and let GD tell me where the midpoint actually is. The procedure to place a centerline is:

  1. Select the "reference line" mode, which is the dashed line icon.
  2. Click anywhere on the part to place the start point, do not try to place it on the edge.
  3. Click anywhere on the part to place the end point, just far enough from the start point to make it easy to select the start point again.
  4. Hit ESC to exit the reference line mode.
  5. Select the "midpoint constraint" mode.
  6. Select the start point.
  7. Select anywhere on the first edge of the part. This will move the start point onto the midpoint of the edge.
  8. Select the "midpoint constraint" mode again, otherwise GD will try to add another constraint to the current object (the start point), will which always result in an over-constrained error.
  9. Select the end point.
  10. Select anywhere on the opposite edge of the part. This will move the end point onto the midpoint of the edge.
  11. The reference line is now a centerline for the part.

Now I have a centerline that I can use for coincident constraints to center other shapes. No dimensions or formulas needed.

Bosses and Holes

Bosses and extruded holes are formed from 2D sketch shapes, extended into a third dimension. This is quick and easy. The trick is to exit the 2D sketch mode before applying the extrusion. The extrusion can be applied while still in the 2D sketch, but I have found this can lead to confusing results.

The extrusion seems to be applied to all shapes in the sketch, so I need to create a new 2D sketch for each type of boss or hole. Don't stuff too many shapes into the same sketch, as it can lead to confusion when trying to apply constraints to features in assemblies.

Positioning Parts in Assemblies

Parts are positioned into assemblies using constraints. The "Quick Constraint" mode makes it fast and easy to set constraints, making it easy to create too many constraints and resulting in over-constrained errors or parts that don't move as expected. The standard constraint mode makes it a bit more obvious what is actually being used to create the constraint.

Parts are frequently inverted when constraints are created. Just click the "flip" button to turn it around.

After the constraints are created, take a minute to review them. Click on each one to highlight the faces or edges used, and delete constraints that are redundant. I want just enough to make the design work, extra constraints will cause frustration later.

Organizing Parts in Assemblies

Constraints are applied to parts within assemblies to position the parts relative to each other. When I create a new assembly, there is always a foundation piece such as a base plate that I place first. I try to position this on the XY plane with a corner on the origin, then anchor the part.

Constraints will move parts around within the assembly, but they can't move features or subparts within the part. This means that if I need a component to move around based on constraints, it needs to be a distinct part in the assembly.

For example, my first project had a base plate with two pivot blocks, a second plate with two pivot blocks, and two screws used as hinges. My first instinct was to organize the parts like this:
Final assembly Base assembly Base plate part Pivot block part Pivot block part Swinging assembly Second plate part Pivot block part Pivot block part Hinge screw part Hinge screw part

This made sense because the pivot blocks were logically part of the base plate assembly. This caused problems when I needed to change the width of the second plate, because the constraints of the Final Assembly could not move the pivot blocks that were embedded in the Base Assembly. I had to manually change the position of the pivot blocks in the Base Assembly whenever the width of the second plate changed.

A better organization was:
Final Assembly Base Assembly Base plate part Base Pivot Block part Base Pivot Block part Swinging Assembly Second plate part Pivot Block part Pivot Block part Hinge screw part Hinge screw part This allowed me to build a constraint chain that automatically positioned the base pivot blocks based on the width of the second plate.

  1. Constrain the swinging pivot blocks to the corners of the second plate.
  2. Constrain the base pivot blocks to mate to the surface of the base plate.
  3. Constrain the screw shafts to the base pivot block holes.
  4. Constrain the underside of the screw heads to the outer faces of the base pivot blocks.
  5. Constrain the swinging pivot block holes to the screw shafts.
  6. Constrain the restraining nut holes to the screw shafts.
  7. Constrain the outer faces of the nuts to the inner faces of the swinging pivot block.

This allows the second plate to pivot around the screws and the base pivot blocks will move with the second plate.

Open Loops

What is meant by an "open loop"? An open loop is a 2D shape that does not enclose a finite area. This is usually, but not always, an error. Most 2D-to-3D transforms take the 2D shape and extrude it into the third dimension, filling the enclosed area with either matter (boss) or anti-matter (cut or hole). If the shape is not closed, this operation would flood the universe -- not a good thing. The exception to this rule is the creation of thin-wall features, which expand from the 2D feature (point, line, or shape) by a finite amount, then extrude.

Sweeps

I am struggling with sweeps. The concept is not difficult, but creating them has been a struggle. A sweep is a type of extrusion that follows a complex path rather than a straight line. The 2D cross-section of the sweep is defined on one plane and the path is defined on a second plane. The trick is that the path must either start in the 2D plane or intersect it, AND it must be enclosed by the 2D shape. The cross-section must be a closed loop while the path can be an open loop, such as a line or spline.

This is a typical user guide simple-case example.

geomagic design spline sweep

  1. Create a new part
  2. Select the XY plane and activate 2D sketch.
  3. Draw a square around the origin. We will use the origin as the starting point for the path later, and it needs to be enclosed by the shape.
  4. Exit 2D sketch.
  5. Select the YZ plane and activate 2D sketch.
  6. Select the spline tool and sketch a random wave, beginning at the origin. Double-click or ESC to complete the spline.
    geomagic design sweep spline
  7. Deactivate sketch. This will generate a "Sketch Problems Detected" warning if the "open loops" is enabled because the spline does not enclose an area. This is OK, because the spline is only used to follow a path through space so it does not need to enclose anything.
    geomagic design sweep spline sketch problems open loop geomagic design sweep spline open loop
  8. If I rotate the view a bit I can now see that my spline path rises out of the center of my shape.
    geomagic design sweep spline
  9. I select the shape I want to use for the cross-section, the square, then click the sweep tool (Part Modeling, Boss). This brings up the Sweep Boss dialog. I still need to provide at least one path object, so I click the spline curve. It is sometimes easier to select the path from the Design Explorer list than to click on the 2D object. Click OK.
    geomagic design sweep spline
  10. And nothing happens. There is a red X on my sweep object in the Design Explorer list. I right-click it and select Status: "SWEEP_SELF_INT: The sweep results in self-intersecting surface." This is because I made my path too tight and small compared to the size of cross-section. As the square is swept down the path it pitches up and down to remain normal to the path. In this example, this results in the edges of the square intruding back into the solid area it created earlier in the path. This is illegal.
  11. The fix is to either stretch the path waaaay out, or make the outline much smaller. It is easier to make the square smaller.
    geomagic design sweep spline

Really strange stuff happens if the path is outside the shape.

geomagic design sweep spline

I'm not sure why this crimping is being created. I expected the cross section normal to the path to always be the same. This makes me think the cross section is always in the original plane.

geomagic design sweep spline

Make Flexible

I finally found the "Make Flexible" option.

I have an assembly that includes a part on a hinge that can rotate. I want to connect a ribbon cable of fixed length between a stationary part and the rotating part, then rotate it to check that cable is not over-stretched. I am hoping that I can model the cable with a spline curve and have it compress or stretch (like a spring) as the two endpoints move in relation to each other. I saw mention of a "Make Flexible" option in the user guide, but there was no explanation of where it could be found or what it did.

The "Make Flexible" toggle is found in the context menu for parts and features in the Design Explorer listing. It is usually disabled. From this posting I am assuming that it enables unconstrained motion within sub-assemblies, which is normally disabled as sub-assemblies are usually considered to be rigid bodies.

Unfortunately, this has nothing to do with contorting spline curves. I suspect this requires some intense under-the-hood custom scripting.

Auto-Extending Cables

This article described a trick to create auto-sizing cables.

First create a plug for each end of the cable. This example is a simple cylinder on a block. The square makes it easy to find the midpoints of each edge and the circle makes it easy to align them. The critical trick here is to center the plug on the 3-axis origin. The cable will be drawn as a line/spline anchored at the origin. It is critical that a plane bisect the anchor point, as the spline must be drawn on that plane. It should be possible to create a reference plane in the proper place and orientation if needed, but I am having difficulty placing the planes properly.

geomagic design auto-extending cable

Create a new assembly with 2 copies of the plug. Make sure to position the first copy on the origin. Before doing anything, anchor the first part (on the origin). Now constrain the plugs on the same axis by aligning the sides of the cylinders and the top faces of the squares. This holds them in line while allowing them to be moved closer and further apart. I may need to create a temporary mate of the cylinder faces to flip them around to face each other.

geomagic design auto-extend cable

Now the tricky part: I want to create the cable connecting the two plugs using references into the two plug parts. From the assembly edit mode, click "New Part". Select the YZ-Plane and click 2D Sketch to begin the sketch with a profile view of the two plugs. Select "Project to Sketch" to pull parts of the assembly into the sketch, and select the front and back faces of the two cylinders (four entities). In the "Project to Sketch" dialog, select "create reference figure" and "Maintain association to source entity". This will copy the entities as references, not actual shapes, and they will automatically update when the source object is moved.

geomagic design auto-extend cable geomagic design auto-extend cable geomagic design auto-extend cable. geomagic design auto-extend cable

I draw the path of the cable as a "spline by reference points" on the YZ plane from one plug to the other, anchoring each end on the center point of the cylinders. Deactivate the 2D sketch, then activate 2D sketch on the face of one of the cylinders. Draw a small concentric circle to serve as the profile for the sweep and deactivate 2D sketch.

geomagic design auto-extending cable geomagic design auto-extending cable. geomagic design auto-extending cable.

With the circle still selected, click "sweep" (Part modeling, Boss, Sweep) and select the spline as the path. Click OK to create the sweep.

geomagic design auto-extending cable. geomagic design auto-extending cable.

Right-click the assembly, edit assembly to return to the assembly view. Zoom out a bit to give room in the view. I can now slide the plugs around and after a few seconds the cable will be redrawn with a new spline.

geomagic design auto-extending cable. geomagic design auto-extending cable

This is not a physics model, the spline points are fixed in space. Funky things happen when the plugs are pulled too close to a spline point, and the cable will not render at all if the plug runs over a spline point. But it is a cosmetic approximation of a flexible cable.


Flexible Cable

I want to place a pseudo-flexible cable into an existing design, using the technique above. The cable will run from the connector on the rotating Caspa plate, through a hole in the plate, to the connector on the Tobi board. The section from the Caspa through the hole will be a fixed spline, with the "flexible" section being from the end of the spline to the Tobi connector.

gumstix overo tobi flexible cable

The trick is to create the reference plane for the spline path. It needs to bisect the two connectors, normal to the top surface of the Tobi board. This sounds simple, but I am having trouble because of the way 2D and 3D entities are handled. Drawing the line describing the midpoint of the connector is easy in 2D sketch, but I can't define a 3D reference plane in 2D sketch and the centerline becomes inaccessible when I return to 3D design. In addition, the methods available to define a plane are frustrating me, it seems the most practical choice of "normal to a plane, containing a line" is missing. The closest is "two coplanar axes" which requires me to define first a reference centerline, then lay a reference axis onto it.

The problem is that I can define a reference centerline in 2D sketch, but I can't define an axis. Aha, yes I can! I create the reference centerline (reference > line, midpoint constraint on each endpoint), select the centerline, and the Reference > Insert Axis from sketch option becomes enabled. This lets me create one of the two axes required for the plane.

gumstix overo tobi caspa fixture

The second axis should be normal to the top of the Tobi and on first axis. Sounds easy, but I need a 3D reference point. I go back into 2D sketch on the top of the Tobi, create a node (2D > Sketch Figures > Node), apply a midpoint constraint using the edge, select the node, and create a reference point (Reference > Insert Point from sketch). This doesn't help, a point on the axis does provide any more information.

There is an option to create a plane by rotating a surface about a line/axis. This should do it, rotate the top surface 90 degrees using the centerline as the pivot. This creates "Plane<3>"

Now I need to create the cable part. The newly created Plane3 is not available within the context of the new part. I guess I need to create the reference plane while editing the part, using surfaces and edges projected from the assembly into the part. First I need to project the two connector surfaces into the new part, create the reference centerline, then create the new reference plane.

geomagic

It is very difficult to select feature faces from the full assembly view. I need to rename the face to make it easy to select from the Design Explorer list. The faces are much easier to identify when editing the part directly. There is no way to name faces (because they are generated features?), I need to remember that it is "Face4". The connector for the Caspa is Face12.

geomagic geomagic

I am able to select Tobi/Face4, but not Caspa/Face12. I am guessing this is because Caspa/Face12 is not a "planar face" -- it is rotated on the pivot hinge. (I think this means "planar to the current 2D view". I can activate 2D sketch on the Caspa connector face and it becomes selectable for project into sketch.) Let's see if I can use the four edges that form the face: Edge22, Edge25, Edge15, and Edge19. This should work, I can create a reference plane from two edges.

I need to create the reference plane for the path. This needs to be normal to the connector face through the centerline. I create the reference centerline first (select the Tobi connector face, 2D sketch, reference line, apply midpoint constraints, select the centerline, Reference > insert axis from sketch) and deactivate 2D. I create the reference plane using the "Rotation of a face about a coplanar axis" method, with the connector face, the centerline reference axis, and rotated 90 degrees. This creates Plane2, which will be used for the path of the cable.

The cable is built by placing a rectangle 3x10mm wide over the Tobi connector and extruding it by 0.1mm. This provides the solid part for the cable to mate to the Tobi connector.

The connector for the Caspa end is a bit trickier. The Caspa connector rotates around the hinge, so I need to figure out how to pull the references for the Caspa connector into the cable part. I was able to select the Caspa connector face if I first activated 2D sketch on the top face of the Caspa connector.

Now I need the profile for the cable. The shape needs to be normal to the start of the path, so I need to create a profile shape on the thin face of the cable extrusion and deactivate 2D.

The path for the cable is created by selecting the reference plane, activate 2D sketch, and sketch a spline from the Caspa connector, through the hole, and to the Tobi connector. Deactivate 2D.

Then I can click Sweep and use the profile shape and the spline sketch to form the cable.

geomagic

The cable looks good. The gap on the Caspa end is my fault, I didn't place the end of the spline correctly.

However, all my constraints are now screwed up. I believe this is because the cable endpoint is not moving the way it should and is over-constraining everything. The inability to name constraints and faces makes it very difficult to understand what all the constraints are doing, since it can be difficult to find the entities when they are highlighted. I need to go back and recreate the assembly using a slightly different constraint strategy...

I now realize that the colinear and distance relationship between the Tobi and Caspa connectors needs to be much earlier in the constrain chain; this is actually the fundamental constraint of the entire assembly (in addition to the dimensions of the two boards). I think I can put both base risers into the base plate assembly, allow both to slide along the base width-wise. (Is it possible to create a constraint of "faces left"?) The base plate assembly would be marked as "Make Flexible" in the Fixture assembly. The Caspa constraint chain begins with the location of the connector, the hinge pins, the restraining nuts. Adding a constraint between the nut face and end of the screw would conflict with the connector constraint, which might be what was causing problems before.

It may have been a mistake to put the mounting holes in the base plate part. Is it possible to create a second part that consists of only the holes to be drilled into the plate?

Rebuilding the Caspa Fixture

I started over from just the parts. It helps a lot later if I take the time to rename the constraints as I create them.

The base assembly Start with the base plate and anchor it. Add the Tobi plate Mate the bottom face of a support to the upper face of the plate. Orient (not mate or align) the back face of the Tobi board to the back face of the plate. Repeat for the right faces. Align a support post with a base plate hole. This is a temporary constraint to fix the Tobi board on the plate. Add the two base risers. Mate the bottom faces to the upper faces of the plate. Orient the left and front faces of the left riser to the faces of the plate. Orient the right and front faces of the right riser to the faces of the plate. Align the holes of the two risers.

This allows the risers to slide around on the face of the plate. The width of the gap between the risers is free while the holes are aligned. This allows the width to adjust to the width of the Caspa Mount, and the position to adjust with the length of the cable.

Caspa Mount

Start with the Caspa plate.

  1. Add the Caspa board
  2. Mate the bottom face of a board support to the upper face of the plate.
  3. Align two of the support posts with the mounting holes in the plate.
  4. Add two copies of the Caspa Riser
  5. Mate the bottom faces to the top faces of the plate
  6. Left riser: orient the left and front faces with the plate.
  7. Right riser: orient the right and front faces with the plate.

There may be a missing orientation that might allow the Caspa board to flip?

Fixture

Start with the base-tobi-risers assembly and anchor it.

  1. Add the Caspa plate/board/riser assembly.
  2. Add two copies of the screw and nut.
  3. Align the screws with the base riser holes
  4. Align a Caspa riser hole with a screw.
  5. Align the nut holes with the screws.
  6. Mate the undersides of the screw heads to the face of the base risers.
  7. Mate the face of each nut to its matching Caspa riser.
  8. Align the outer face of each nut to the face of the end of the screw, with a 1/32" offset.

Position the Caspa assembly

The Caspa can now pivot around the screws while being captured by the base risers. The base risers are still free to slide around on the base plate. The location of the Caspa assembly will be set by the length of the video cable and aligning the two connectors.

To align the Caspa Mount with the Tobi board, I want to create a plane that extends from the centerline of the Tobi connector and align the Caspa connector's centerline on the plane. Then I can set a fixed distance between the Tobi board and the base risers (based on the length of the video cable) to anchor everything in place. The plane will also be used to sketch the spline for the cable sweep.

  1. Constraint: Front face of the Tobi connector and the back face of the right base riser, Mate, 50mm offset. This is a temporary constraint to set the distance between the Caspa and Tobi boards. The 50mm offset is an estimation of the portion of the video cable that extends from the hole in the Caspa plate to the Tobi connector.
  2. Create the reference plane through the connector centerline.
    1. Activate 2D sketch on the connector top face
    2. Create a centerline across the face toward the other connector
    3. Click "Activate 2D sketch" to deactivate the 2D sketch.
    4. Right-click the face and select "Show reference figures"
    5. Menu > Insert > Plane
    6. Select creation method of "Rotation of a face about an axis"
    7. Select the Tobi connector top face and the centerline axis.
    8. Set the angle to 90 degrees.
    9. Label: "Connector Cable"
    10. Apply and Close. The plane includes only the centerline, so I will need to zoom in real close to the connector to see the tiny plane.
  3. Create a centerline on the Caspa connector top face.
  4. Geomagic won't let me select the centerline to create an axis, so I create a centerpoint along the edge instead. Insert > Point > Along edge: Ratio=0.5 (midpoint), Label="Caspa Connector alignment point"
  5. Constraint: "Connector cable" (plane) and "Caspa Connector alignment point" align with 0 offset. Rename this to "Align Connectors"

The base risers are now fully constrained in relation to the Tobi board, and the Caspa can now only pivot around the screws.



WebV7 (C)2018 nlited | Rendered by tikope in 146.193ms | 18.188.211.246