solidworks api demystified n.
Skip this Video
Download Presentation
SolidWorks API Demystified

Loading in 2 Seconds...

play fullscreen
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

Download Now 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.
thank you

Thank You!

Lenny’s SolidWorks Resources

has moved to