SolidWorks Spell Checker (or Spelling Check)

SolidWorks’ Spelling Check can be fairly useful when proofreading a drawing.  It’s not extremely powerful, but it is as functional as one might expect from a manually initiated spell checker.  For those who didn’t even know that SolidWorks has a spell checker, it’s available under Tools pulldown>Spelling….  (I don’t know the SW version where it was introduced.)  To improve its usefulness, it may be a good idea to add more words to your Spelling Check dictionary file(s).  There’s several main ways to add words to the Spelling Check.

Method 1

The most obvious method is to add your new word to an annotation note in a drawing, then run Spelling Check.  When it identifies your new word as a misspelling, simply click the Add button (this isn’t the most efficient way to add multiple words).  This method will add words to your swdictionary.dic file located in the SolidWorks folder under C:\…\lang\english.

Method 2

If you wish to update the Spelling Check with a bit more control (adding and deleting words), start the Spelling Check and choose the More Options… button.  On the Spelling Options window, choose Dictionaries button.  Stay with me, there’s more.  Highlight “swengineering” then choose the Edit button.  Finally!  OK, now that you’ve made it here, add and delete words one at a time as you please.  This method will edit your swengineering.dic file (same location as the swdictionary.dic file).  Funny thing is that even though you are editing the swengineering.dic file with hundreds of words, you cannot delete any already existing words.  You can only delete the words you add to it.  It is also funny that this method edits the swengineering.dic file, while the main screen of the Spelling Check edits the swdictionary.dic file.

Hmmm…hey SolidWorks Corp, why are there two different dictionary files?

Method 3

In my opinion, the easiest way to add words to Spelling Check in bulk is by editing your swdictionary.dic file directly with Notepad.  With the file open, add one new word per line.  Use all capital letters.  Capital letters are not a requirement.  It will simply keep the dictionary listings consistent within the file, especially if other words are added later by using the Spelling Check.

Networking

As with other similar types of SolidWorks resource files, the swdictinoary.dic and swengineering.dic files can be located on a network drive for standardization across an enterprize.  Presumably, these files should be in the same folder.  To set the file location, goto Tools pulldown>Options…>File Locations and select Spelling Folder.  New dictionary files can also be added within Spelling Check’s Dictionary window.

Enhancement Request

One function I would like to see added to the Spelling Check is the ability to add to automatic replacements for common misspellings of user words that are added to the dictionary files.  For example, if I add the word Loctite and someone spells it as Locktite, SolidWorks currently doesn’t know to suggest Loctite as the correct spelling.

Model Based Definition (MBD)

As we move further into the realm of 3D CAD software, something that is still catching on is the idea of driving all specifications directly from the model file, instead of having a separate drawing.  There are various terms for this, but I’ve seen Model Based Definition (MBD) most recently.  I personally am not critical of this idea.  I am critical of moving 100% to this form of documentation without better support from our 3D CAD packages and ASME/ISO standards.

Models are generally considered basic.  All this means is that the tolerance is derived from some “other” specification.  This is normally in the form of associated Geometric Tolerances. To fully define a part in MBD, you’ll need a GD&T scheme, often supplemented by traditionally dimensioning and tolerancing where needed.  The difference is that if drawings are not used, this has to be done within the model itself and then is somehow communicated to the manufacturer.  The task to communicate this information to the manufacturer via the model is harder than it might seem as first glance.  This is due to the myriad of 3D CAD formats and versions now available.  GD&T information may not translate to other formats, such as STEP and IGES. 

Additionally, any information that would’ve appeared on the drawings now has to appear within the model itself.  So, shortcutting the drawing step doesn’t mean one gets to ignore the information that would’ve been included on a drawing. It just means all of that now needs to appear in the model.

With that said, ASME Y14.41 supposedly standardizes this effort.  In my opinion (and yes I’ve read it and “own” a copy), it is lacking right now.

If considering a MBD program, just make sure everyone understands that the model is now the drawing; and that means it will need to be as accurately detailed as the drawing would’ve been; and since this information is now in the model, a method of communication will have to be established with the manufacturer if they don’t have the ability to use the format where the GD&T information resides. 

An alternative is to use the drawing in conjuction with the model, which together provide the complete specification.  In this case, the drawing will still be the primary specification (usually for critical-to-function specifications), but it makes use model to complete the specificaiton.  The model can either be basic, or used with some traditional tolerance.  Where the model is basic, I’ve seen companies place a generic profile feature control frame in the general notes.  This FCF is applied to the model for any dimensions that are unspecified on the drawing.  If such as system is employed, it is important to clearly state this on the drawing to prevent ambiguities.

Getting Errors when using downloaded Macros?

Errors when running downloaded SolidWorks macros (Visual Basic 6) can be caused by many different issues, depending on the macro and which version of SolidWorks being used.  Here are some general points that may help.

Reference Libraries
Check reference libraries associated with the macro. These can be accessed by opening the macro through SolidWorks API editor (edit macro function), then going to pulldown Tools>Reference Libraries. If any of the listed libraries have the word MISSING in front of them, remove their check mark. You may need to replace it with a similarly named reference library that is included on your system. For example, if “SolidWorks 2008 Object Library” is missing and you are running SolidWorks 2007, then look for and activate the library named something like “SolidWorks 2007 Object Library”. SolidWorks may be able to do this automatically, but on many computer systems, you will need to manually make this edit, particularly if using a macro made on a version of SolidWorks newer than you are using.

Conversely, errors can be caused by having conflicting libraries loaded at the same time (i.e., having too many libraries).  No errors will appear in the reference library list.  If you are certain the correct library is loaded already, trying removing other SolidWorks related libraries one by one until the issue is resolved.

Also, the correct reference library may not be loaded at all. Research the line of code causing the error to make sure the correct reference library is loaded to support those instructions.

Additionally, if a macro was made on a newer version of SolidWorks than what you are currently using, its instructions may not be supported at all on the system running the older version of SolidWorks. In this case, you will need to find an equivalent API method for the older SolidWorks version, if one exists.

If the macro does not use Forms, a quick way to make sure you are using current reference libraries is to simply cut and paste the complete code from the existing macro file to a new one created fresh on your system. Often, this will fix any mismatched reference libraries, but it might still require research to make sure all the necessary reference libraries are loaded for that macro.

Sub-Modules
When executing the macro, make sure you specify the “Main” sub-module as the starting point. This is the section of code following the line “Sub Main ()”. Most macros are set up with Main as their starting sub-module. This is usually a fix if you are having issues associating your macro with an icon on a Toolbar, assigning a shortcut key, or trying to execute the macro from within another macro.

If the macro does not have a Main sub-module, then you may need to study the macro to discover which sub-module is meant as the starting point.

Copying code from online or plain text source
Sometimes when code appears in plain text, such as in a .txt file or from a forum online, it may not be formatted properly. Some of the lines may be too long for the plain text source, so they are line broken. This will disrupt the code, as SolidWorks API will misunderstand the instructions. When copy and pasting code from a plain text source, make sure to go over the code to insure all the lines are properly reconstructed by removing erroneous line breaks.

Sources for help
If issues are still occuring, contact the author(s), if available. Also, make sure to read over the material and examples provided in the SolidWorks API Help file included with SolidWorks. If those do not completely solve the issue, then search over various online forums dedicated to SolidWorks and SolidWorks API support. Many of these forums are listed under Forum Links.  If the search doesn’t resolve the issue, then post a question on those forums detailing the issue and requesting help from other SolidWorks users. You may also contact your VAR, as the issue you are having may actually be a bug or known issue in the SolidWorks API system itself.

SWW09: Focus Groups (Drawings and Sheet Metal)

As previously mentioned, I attended two focus groups (also called roundtable discussions) this year.  These are generally held on Sunday before all the major SolidWorks World activities begin on Monday.

Sheet Metal

The first group I attended was for sheet metal functionality.  Though attendence was very light, the number of different methodologies and opinions was high.  My own interest in the topic is the problem with being forced to use assemblies to fully document sheet metail parts with inserts.  This is an issue because if you start a drawing of a part, you cannot later replace that part with an assembly.  So, if you create a sheet metal part with no inserts and then you need to add inserts on some later revision, you are forced to recreate the drawing practically from scratch.  This is a horid time and resource sink.

Others in the group talked about using K-factors to determine the material used by the sheet metal part (for flat patterning), while others disregarded K-factors in favor of bend reduction techniques.

One request that seemed to get common acceptance is the idea of creating a table of all the bends of a part with their full characteristics, with the ability to highlight each bend by clicking on it within the table.  When this table is on a drawing, it was suggested that details be added to a specific layer.

The session  also revealed that some used work arounds to use the SolidWorks model to instruct sheet metal tooling to perform certain actions (either via direct or translated input).  Some use alternative features which do not match the final design in order to instruct a tool to produce the feature desired in the final design.

One work around solution did come out of this session.  Right now, the material mass number changes from bent state to flattened state.  Although this difference is minor, over a large quality of parts, the error multiples and can create issues in part handling.  Use a non-configuration custom property to link to the the material property (of a specific configuration?).  Use this custom property as the source for the mass regardless of the configuration or part state.

Drawings

A large portion of the drawings discussion revolved around printing and saving issues with Drawings.  It seems many people are experiencing similar problems.  When saving as a PDF, views randomly disappear.  When printing as a PDF, text locations get shifted.  Also, changes to parts at lower levels of an assembly may cause errors and view changes in higher level assembly drawings; meaning the the company has to open up all levels of a product’s assemblies to make sure that any change did not affect the drawings in unexpected ways.  It seems more people are having these kind of issues that I originally thought.  Many of the problems are magnified by use of PDM’s.

The meeting also focused on DimXpert and how to handle its dimensions.  One comment is that it should place dimensions per current standards within the model.  Another comment noted that datums and feature frames should drive the model.

I voiced my other major concern as well.  Symbols from the Gtol.sym library file should be stored within a drawing.  Right now, I cannot give native drawings to others outside of my organization because they will not be able to see symbols that we employ.  When a symbol is used within a drawing, it should be included in that drawing’s file and not require editing of any other user’s Gtol.sym file.

Threading Options (Methods to make threads in SolidWorks)

Reposted with permission of Dan J. Riffell

This topic comes up over and over again, so I thought that I’d put together some of the more popular ways to create a thread in a part environment along with some statistics and reasoning as to why one method would be preferred over another. It should be noted that this may not be a complete list of threading methods, since in this case there is more than one way to thread a cat.

Before you decide to cut threads into your part, a design decision must be made which determines the relative value of modeling the threads. Thread features are often very resource intensive at the part level, and that issue only magnifies when multiple parts are inserted into an assembly. The best policy, depending upon design intent, is to avoid modeling threads in SolidWorks if at all possible. Having said that, below is a list of six ways to model threads (same process for both internal and external threads) in order of increasing complexity of operations:

I. No threads. This is the baseline from which the other numbers have been extracted. Imagine a simple socket-head cap screw shape without threads. # of features = 4. Rebuild time = 0.00-0.02 sec.

II. Cosmetic Threads. Go to Insert/Annotations/ Cosmetic Threads. This paints a visual representation of threads onto your feature. It also imports a thread callout into your drawing. This method does not add any features to your model, and it does not increase rebuild time. It is somewhat parametric as it will partially update with design changes. The disadvantages are that it doesn’t look very realistic, behaves quirky sometimes, and doesn’t show up in model rendering. # of features = 4. Rebuild time = 0.00-0.02 sec.

III. Simple Swept Profile. Draw a line following the temporary axis of your feature. Draw your thread profile. Do a Swept Cut, and choose Twist Along Path. Input the number of turns required. This is a very quick and easy way to cut threads into your feature. It is partially dynamic depending upon your sketch relations. # of features = 7. Rebuild time = 0.06-0.09 sec.

IV. Circular Threads. Draw your thread profile. Do a Revolved Cut around your temporary axis. Do a linear pattern of your cuts. Again, this is a quick and easy way to model threads. The disadvantage is that it is not an actual thread since the cut is revolved and not swept. This method serves to get the point across without being too resource intensive. # of features = 7. Rebuild time = 0.09 sec.

V. Helix Method. Draw a helix that wraps around your feature. Draw your thread profile. Do a Swept Cut of your profile following your helix. This is a very realistic method for creating threads, as you can control the pitch, height, starting angle, etc. of your helix in a simple property manager. The major disadvantage is that helixes are notoriously resource intensive, and it is not dynamic. The amount of resource that swept cuts following a helix command depends upon many factors including the pitch and how/where the cut starts. # of features = 8. As far as rebuild time goes, I got significantly variable results in the range of 0.20 to 45.34 sec depending on how I constructed the cut. With the cut starting 180° from the helix start point, I was able to reproducibly get 0.20 sec rebuilds.

VI. Swept Surface. Draw a line following your temporary axis. Draw a line perpendicular with that line (in a separate sketch) that is collinear with the top or bottom of your feature (or wherever you want your cut to start). Pick Swept Surface and sweep the second line around the first with a Twist Along Path option. Match the parameters to your thread pitch. Convert the edge of this surface into a 3D sketch. This should essentially be the same as a helix. Draw your thread profile. Do a Swept Cut that follows the 3D sketch. Although this method seems like it is overly complicated at first, it has the benefit of being completely parametrically driven depending upon your sketch relations. It will update your cuts to your model changes. The major disadvantage is that it is a resource hog. # of features = 10. Rebuild time = 18.33-19.86 sec.

If threading is something that you have to do very often then I would suggest creating Design Features and reusing them. If you use standard threads you can even create “Taps” and “Dies” that you can position in your parts and use the Combine Feature to remove the material where your threads should go. All of these design methods depend on the environment that you work in and what the intent of the project is.

If this is something that you run into often I would suggest that you submit an enhancement request to SolidWorks and talk to your VAR about the necessity of a thread-creation utility that works similar to the Hole-Wizard. Then wait…patiently…

Hopefully this helps. ————————-
Dan Riffell, CSWP
Projects Coordinator
Eltron Research & Development
Originally posted on the SolidWorks Forums in this post thread.

Foreshortened Linear Dimensions (Clipped Dimensions)

As mentioned in another article in this series, SolidWorks does not support the foreshortening of linear dimensions, except in views where both ends are visible in the view, such as break views.  Also mentioned was that foreshortening of linear dimensions doesn’t make much sense in most circumstances because both ends of dimension must be in view for a drawing’s reader to understand the callout.  As such, they are not supported by the ASME standard.  Even still, there may be some cases where it is necessary or desired to clip a dimension within detail or partial section views.

There is one potential workaround to allow this in SolidWorks, using a series of double arrow symbols created by Jeff Hamilton.  Jeff’s creation requires a modification to your gtol.sym file.  Unfortunately, to implement this change, you’ll either need to be a one man show or a CAD Administrator who has time to update everyone’s computers with the edited gtol.sym file.  This is because any symbols within a drawing reside in the gtol.sym file, and that file is specific to each and every install of SolidWorks.  Another drawback is that the user must visually and manually align the double arrows into the appropriate position.

Selection of double arrows

Barring these drawbacks, this is a pretty good solution for those who really need this function.  The file can be downloaded at this location:  Geometric Tolerancing Symbols Library Foreshorten Arrows Add-on.  Instructions on how to edit the gtol.sym file and use the new symbols are included in the download.  Have fun!