1 Reply Latest reply on Aug 11, 2014 10:36 AM by John Raffensperger

    how to make API's

    Kevin Currie

      Hi Guys,


      I am new to the website and the forum, How is everyone doing?


      I was wondering if anyone could help in regard with creating API's.


      Basically what I would like to know is, we have FICEP machines which cut all our angle steel here, and the machines run on a software called Fenice, for the machines to cut our angles we run a macro within solidworks to create a FNC File. This file is read by the FICEP machines which tells the machine where to cut and punch holes on the angles. Now we have a TIPO-D4 which we use for cutting and punching plates. What i would like to know is, is there anyway to create a Macro which can do the same thing and create a FNC file so that the TIPO knows where to cut and punch the holes. Instead of manually entering part by part into the machine.


      I hope have worded this correctly as I am fairly new to Solidworks and Macro's.


      Thanks in Advance,



        • Re: how to make API's
          John Raffensperger



          The short answer is "Yes", you can do this.  There are basically two flavors of Macros.  One uses VBA (Visual Basic for Applications), and the other uses .NET (VB or C#).  The VBA Macros can be a little easier to get started with, but the .NET can be more powerful.  This is a bit of a (or huge) oversimplification.  The API Documentation has a pretty good overview of this, along with some "getting started" samples.  From the SolidWorks Help menu, there may be a selection for "API Help".  If that is not there, you may need to download and install the SolidWorks API. Given that you have access to the .NET environment, just about anything is possible.


          In addressing your specific needs, what you're really doing is a "CAM" application (Computer Aided Manufacturing), and specifically, at least in an abstract way, creating a "Post Processor".  CAM software basically takes your geometry, and creates machine instructions for some type of NC/CNC machine.  In your case, the macro for your FICEP machine is outputting information that is very specific to those machines, at least as an end result.


          In fact, that software _MAY_, depending on who wrote it, and how they got the final output, have actually taken an intermediate step, and created a more generic type of code or list of steps, and then used a "Post Processor" to translate from that to FICEP specific code.  If this software/macro was written with only the FICEP in mind, this may not be the case.  If the macro was developed by someone who regularly worked with different types of NC/CNC machines, it is more likely that this path may have been taken.


          I am not sure of the specifics of these two families of machines, or how close their capabilities are to one another.  If the two families are either similar, or one is a clear subset of the other, it may make sense to have one program or macro that can be run to generate either sets of code, or one macro that generates a neutral code, and a prost processor that can generate machine specific code for the target machine at (or near) run time.


          Some good initial steps might be:


          • Generate code using your current FICEP Macro for a part that could be produced on either machine.  (Start with something simple.)
          • Generate the code by hand on your TIPO, and get a copy of the file onto your network/PC.
          • Compare the two files.  They may share a common syntax, and have similar data (or if you're lucky use the same G-Codes)!
          • Look at the code for the FICEP macro if you can.  It is possible that the macro was written as an add-in and you only have a DLL file, making this not possible.
          • From there, it becomes a matter of looking into the Manuals and Reference Materials for both Machine Families, and determining, for a given piece of Geometry, what should the output be.
          • If you have access to the code from the FICEP macro, that already has the code for finding, sorting, and processing the geometry.  If you don't have access to that code, those tasks can be non-trivial, depending on the nature of your parts.
          • Depending on how different the required output is, you may also be able to take the FICEP output, and "Post Process" that into code that the TIPO could use.