Solidworks api demystified
1 / 37

SolidWorks API Demystified - PowerPoint PPT Presentation

  • Uploaded on

SolidWorks API Demystified. Leonard Kikstra Designer / CAD Administrator RITE-HITE Products Corporation Milwaukee, WI Lenny’s SolidWorks Resources Who am I?. SMART User Group Active member since group started in 1999.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'SolidWorks API Demystified' - Rita

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Solidworks api demystified

SolidWorks API Demystified

Leonard Kikstra

Designer / CAD Administrator

RITE-HITE Products Corporation

Milwaukee, WI

Lenny’s SolidWorks Resources

Who am i
Who am I?

  • SMART User Group

    • Active member since group started in 1999.

  • Lenny’s SolidWorks Resources website.

    • Online Sept. 2003.

    • New home Sept. 2006.

  • Programmed over 30 macros for use in SolidWorks

    • Most of these are available for free on the Internet.

  • Product Designer

    • Engineering since 1982.

    • Cad user since 1991.

    • SolidWorks user since 1998.

  • CAD Administrator

    • 20+ people on site.

    • Advise other sites.

  • Interested in simplifying my job.

    • Make my computer do some of my work for me.

What is covered here
What is covered here.

  • General Information

    • What is the SolidWorks API?

    • Benefits of learning/using the API.

  • Getting Started.

    • Create and modify macros.

    • Finding your way.

    • When and Why.

  • Program examples

    • Justification

  • Where to get help.

What is the solidworks api
What is the SolidWorks API?

  • Application Programming Interface.

    • Allows other programs to access SolidWorks data and/or control SolidWorks.

    • Examples: SolidWorks Add-Ins

      • Cosmos, Toolbox, PhotoWorks, PDM Works, PDM Works Enterprise

  • Why?

    • Allow third party vendors to build applications that access SolidWorks and SolidWorks data.

    • Lets SolidWorks focus on their core products.

  • SolidWorks Add-Ins have API’s.

    eDrawings SolidWorks ToolBox

    FeatureWorks SolidWorks Utilities

    PDMWorks SolidWorks Routing


How can the api benefit you
How can the API benefit you?

  • Automate common and repetitive tasks.

    • Increase productivity.

    • Save time and money.

    • Standardize procedures.

  • Consistently retrieve or export data that already exists in the SolidWorks documents.

  • Develop useful tools to meet your specific needs.

  • Customize SolidWorks.

    • Add commands, change settings, etc…

Access the solidworks api
Access the SolidWorks API

  • Stand alone application Executable

    • Visual C++ .Net Visual Basic .Net. Visual C++ Visual Basic

      Visual C

      • Programming environment outside of SolidWorks.

      • Must be compiled to use outside of programming environment.

    • Can start SolidWorks.

    • Required for creating Add-Ins/DLL’s.

  • SolidWorks Macro .swp file

    • Microsoft Visual Basic for Applications.

      • SolidWorks Program (.swp) is a single file.

      • Must be launched from within SolidWorks.

      • Installed with SolidWorks.

      • No compiling

      • Some limitations.

Solidworks macros
SolidWorks Macros

  • The macro recorder.

    • Start recorder.

    • Complete tasks.

    • Some settings in dialog boxes are not recorded.

    • Pause if needed.

    • Stop recorder and save new macro.

  • Running a macro

    • Run Macro

    • Select macro

    • Macro will automatically run

Stop Record / Pause


Solidworks macros1
SolidWorks Macros

  • Edit macro.

    • Select macro.

    • Visual Basic Editor automatically launched.

    • Make changes.

    • Test Macro

    • F5 to run macro

    • F8 to step thru the macro line by line

    • Save macro.

    • Exit Visual Basic editor.

  • New Macro

    • Create a new macro without using macro recorder.

    • Enter macro name

    • Visual Basic Editor automatically launched.

Edit Macro

New Macro

Visual basic editor environment
Visual Basic Editor: Environment

  • Project:

    • SolidWorks Objects.

    • Definitions of SolidWorks Objects.

  • Forms.

    • Object based interface for user interaction.

    • Custom code programmed for each object in form.

  • Modules.

    • Modules that only contain code for the macro.

    • Common modules used in many macros.

Visual basic editor references
Visual Basic Editor: References

  • Access via “Tools | References” menu selections in the VB Editor.

  • Attach objects from another application to your project.

    • Standard descriptions of object types, properties and methods.

  • Selections are specific to each macro.

  • SolidWorks Type Libraries are version specific.

Writing a macro variables
Writing a macro: Variables

  • Local

    • Value retained only while in module or procedure where defined.

    • Value can change

    • Same variable name can be defined locally in multiple modules.

  • Global

    • Value retained through out all modules and procedures.

    • Value can change

    • Can be used set fixed values for common reference later.

      Pi = 4 * Atn(1) ' The infamous pi value

  • Constants

    • Assign a specific value to variable name.

    • Set once

    • CAN NOT be changed

    • CAN NOT use formula to define

Writing a macro variable types
Writing a macro: Variable Types

  • Boolean - True or False

  • Integer - Whole numbers only

  • Long - Any numerical value

  • String - Any text based value

  • Variant - Can be any type

  • Array() - Spreadsheet of data

  • VariantArray() - Spreadsheet of data of any type.

Writing a macro objects
Writing a macro: Objects

  • Must name an object to access it’s properties

    • Meta-data - Info about object

    • Features - Sub-objects

  • Multiple tiers

    • Parent – Child relationships

  • Methods

    • Command and syntax that provides access to object’s properties

  • Accessors

    • Roadmap that shows how to get to object.

    • Command and syntax how to get to object from parent.

  • Writing a macro routines
    Writing a macro:Routines

    • Sub (Procedures)

      • Private - Can only access from module it resides in

      • Public - Can be accesses from any module

      • Run from top-down until completed

      • Can be access many times.

      • Can launch other routines.

      • Can pass variables between routines.

    • Function – Special Procedure

      • Must pass a variable to Function

      • Returns a value to variable in the calling procedure.

    Writing a macro testing and running
    Writing a macro:Testing and Running

    • Testing macro or procedure

      • F5 Run macro

      • F8 Step thru code


      • Start in current procedure.

    • Automatic starting point

      • Last procedure, in last inserted module

      • Not module name specific.

      • Not procedure name specific.

    Writing a macro typical steps launch
    Writing a macro:Typical Steps - Launch

    • Launch Macro

      • Load type libraries

      • Set global variables and constants

      • Attach to SolidWorks

    • Is a document open in SolidWorks?

      • No, warn user that you need one, then end.

    • Get document type.

      • Wrong type, warn user and end

    • Proceed……………

    Writing a macro typical steps user form
    Writing a macro:Typical Steps - User Form

    • User form

      • Preprocessing.

        • Set program defaults.

        • Read data from document.

      • Display user form to user.

    • Wait for input

      • React to user input.

        • Read more data from document.

        • Update user form.

        • Update document.

      • Action buttons

        • OK / Process

        • Cancel

        • Help

        • Other

    Writing a macro typical steps processing
    Writing a macro:Typical Steps - Processing

    • Process user requests based on form values.

    • Inform user of status during processing.

    • Inform user of errors encountered.

    • Inform user of status upon completion.

      • Wait for user OK.

    Writing a macro typical steps completion
    Writing a macro:Typical Steps - Completion

    • Close forms

    • Clear out objects and variables.

    • Close macro

    Macro feature
    Macro Feature:

    • Embed macro as a feature in the model.

    • Overview of Macro Feature

      • See SolidWorks API Help File

    Assigning a macro to a toolbar button
    Assigning a macro to a Toolbar Button.

    • Must have document open in SolidWorks

    • How To:

      • Rt. Click toolbar, Customize

      • Commands tab, Category: Macro

      • Drag icon and drop on toolbar.

      • Select an image to use on toolbar.

      • Fill out fields in dialog box:

        • Tooltip - Balloon tip at arrow.

        • Prompt - Help info in status bar.

        • Macro - Name and full path.

        • Method - Module and procedure.

        • Shortcut - Key combo to launch macro.

      • Click OK to complete

    When should i write my own macro
    When should I write my own macro?

    • Consistent retrieval & exporting of data.

      • Remove manual tasks and retyping errors.

      • Consistent results with consistent formatting.

      • Examples:

        • Retrieve and export a BOM from the assembly

          • No drawing required.

        • Create a list of all components in a directory.

    • Automating common or repetitive tasks.

      • Save valuable time and money.

      • Examples:

        • Exports SolidWorks documents to different file types.

        • Print all drawings in the current directory.

        • Print all drawings for all components in a current assembly.

        • Retrieve and export a BOM for multiple configurations.

    When should i write my own macro1
    When should I write my own macro?

    • Enforce compliance with standard procedures.

      • Provide an automated method to follow standards.

      • Consistent document appearance.

      • Examples:

        • Preset SolidWorks settings to your company standards.

        • Set annotations in document to use document defaults.

        • Copy document settings from “master” document to current document.

        • Simplifies adding standardized notes to drawings.

    • Need a special tool to automate a specific task.

    Justification to write a macro
    Justification to write a macro:

    • Define your needs.

      • What is the purpose of macro?

      • How often will you use it?

        • The more you use it, the more time you will save

    • Does it already exist?

      • Is there something available that’s close to what I need?

      • Can I modify something I already have?

      • Examples files:

        • Help file

        • SolidWorks Website

        • Lenny’s SolidWorks Resources

    Justification to write a macro1
    Justification to write a macro:

    • Example #1 - New Macro - Document Export

      • Scope: * Export documents to different file types.

        * Drawings, Models, Configurations

        * 20 models to create 300 exported files

      • Problems via manual way - Manual process, Repetitive, Time consuming, user input required at all steps!

        • Did I export all configurations?

        • Selecting file type by hand every time.

        • Consistent configuration naming.

        • Estimate time to complete: 12-14 Hours

      • Time comparison:

        • Time to write: 8 Hours

        • Automated: 1.5 Hours

        • Saved first use: 10-12 Hours

      • Macro can be reused many, many times.

    Justification to write a macro2
    Justification to write a macro:

    • Example #1 – Modify Macro – Change custom property value.

      • Scope: * All documents require change, addition or

        removal of a custom property.

        * 1000’s of files.

        * Found macro on internet, can modify for use.

      • Problems via manual way - Manual process, Repetitive, Time consuming, user input required at all steps!

        • Did I change all documents?

        • Did I make the right changes?

        • Estimate time to complete: 20+ Hours

      • Time comparison:

        • Time to modify macro: 15 Minutes

        • Automated: 2.5 Hours

        • Saved first use: 17+ Hours

      • Macro can be customized and reused many, many times.

    Tips learning
    Tips: Learning

    • Learn by example.

      • Find a good macro, and study how it works.

      • Use [F8] in VB Editor to step thru code line-by-line.

    • Experiment

      • Write “do nothing” macros for Visual Basic or SolidWorks API

        • Learn functions you haven’t used before.

        • Develop your own functions or common routines.

        • Test “What If” scenarios.

      • Save your code for later use.

    • Start small and work your way up.

      • Write and test small portions of code before continuing to larger portions.

      • Start with a “basic” program, then add more functionality and flexibility later.

    Tips sample code
    Tips: Sample Code

    • Add comments to your code

      • Helps you and others understand what you did, and why.

      • Helps you remember what you did.

      • Identify what routines are doing.

    • Use existing code

      • Don’t re-invent the wheel.

      • Saves time and your effort.

      • Keep sample code on hand for later use.

    • Know that there are multiple ways to complete tasks.

      • Conditional statements

        • If … Then, Else, End If - True/False

        • Select Case …., End Case - Response based on value.

        • For …. Next - Set number of times to do.

        • Do While …. End Loop - Don’t know how many times.

    Tips distribution
    Tips: Distribution

    • Think about other people who may be using your macros.

    • Used for other needs than initially intended.

    • User customization of existing macro.

      • Not ever user will know how to modify your macro.

      • External settings file for modifiable default settings.

        • Macro defaults if settings file is not found.

    • Different companies have standards, procedures and needs.

    • Capable of running on different versions of SolidWorks

      • API can check what version of SolidWorks is in use.

    Tips getting help
    Tips: Getting Help

    • SolidWorks API Help File

    • Help forums.

    • SolidWorks API Support.

      • SolidWorks API functionality only.

    • Be specific!

      • Repeatable problem.

        • Steps leading up to problem

      • Specific conditions lead to problem

        • Identify specific conditions.

      • Identify specific problem you are experiencing.

      • Don’t send complete macro. Provide simple code to demonstrate.

    • Don’t expect help with programming techniques.

    Resources for learning more
    Resources for learning more:

    • Installed with SolidWorks

      • SolidWorks API

        • Application Programming Interface

      • SolidWorks API and Add-Ins help file

        • Explains object structure and command syntax.

        • Many ready to use examples.

        • Best help file I have seen for writing macros.

      • Visual Basic for Applications version 6

        • SolidWorks 2001Plus and later

        • Visual Basic for Applications Help File.

      • Online Tutorial - SolidWorks API

        • Record, Save, Edit a macro.

    Resources for learning more1
    Resources for learning more?

    • SolidWorks web site:

      • API programming tips and updated help files.

      • SolidWorks Express Newsletter - API Examples

      • Download projects, sample programs and macros.

      • SolidWorks Developer Kit.

        • Not required

        • Contains working sample programs.

      • Presentations

    • Local VAR / SolidWorks Reseller

      • SolidWorks API Training classes

    Resources for learning more other websites api
    Resources for learning more?Other Websites - API

    • Lenny’s SolidWorks Resources Macros & Tips


    • Mike Wilson’s SolidWorks Modeling Techniques Macro Feature


    • Matt Lombard Macros


    • Joe Jones at New Hampshire CAD Tutorials


    • Stefan Berlitz’s SolidWorks Tools Macros

      • website.

    • SolidWorks Tips & Things API Tips


    Resources for learning more visual basic
    Resources for learning more?Visual Basic

    • Websites

      • “Tutorial” and “Lessons”

      • May be Visual Basic Specific.

      • Do not provide help with specific applications.

    • Forums

      • May be Visual Basic Specific.

      • Do not be able to provide help with specific applications.

    • Too many to list.

    • Some provide better explanation and examples.

    Solidworks api demystified1

    SolidWorks API Demystified

    Thank you

    Thank You!

    Lenny’s SolidWorks Resources

    has moved to