What’s New In The SolidWorks 2016 API

Blog 11.1.2015 2 Comments

SolidWorks 2016

Another year, another round of SolidWorks API enhancements. Let’s run through the most notable:

  • Get corresponding sketch contours, sketch segments, and annotations for a specific instance of a component in the context of an assembly.
  • Get or set the properties of paragraphs in note annotations.
  • Get or set cross break feature data in sheet metal parts.
  • Get or set indent feature data.
  • Get or set boundary feature data.
  • Get or set chain pattern feature data.
  • Insert a structural weldment feature using a configuration in a custom weldment profile.
  • Get or set the name of the configuration in a custom weldment profile for a structural member.
  • Get or set hole callout variables.
  • Get or set gaps between center marks and extension lines, add center marks to a center mark set, get whether center marks are detached, get whether entities have detached center marks in a center mark set, reattach center marks to a center mark set, and get the coordinates of center marks.
  • Get or set options for ray-trace rendering engines, including the option to include annotations and dimensions visible in the model in the final render.
  • Make the child components of a component virtual when the component is made virtual.
  • Get the name of the drawing zone for the specified x and y coordinates on the drawing sheet.
  • Reload the sheet format from the original sheet format template.
  • Support for these leader styles: Attach Leader Bottom, Attach Leader Center,
  • Attach Leader Nearest, and Attach Leader Top.
  • Set geometric tolerance values and datum references in gtol symbol frames.
  • Get or set whether to display hole sizes in hole tables using ANSI inch letters and drill numbers.
  • Get or set the message to display in the What’s Wrong dialog box when a non-embedded macro feature fails to rebuild due to missing files.
  • Get the actual mass properties of selected components in a model.
  • Get or set the “Same as sheet specified in Document Properties” check box in the Sheet Properties dialog box.
  • Specify whether to convert the inner loops of the selected faces to sketch entities on a sketch plane.
  • Get the name of a sketch segment.
  • Get or set curvature continuous for a variable radius fillet feature.
  • Fire an event when an assembly component is about to be renamed.
  • For SolidWorks MBD: 1) Publish to 3D PDF, 2) Create a general table annotation for 3D PDF, 3) Support for exporting decals and textures to 3D PDF. (New in SolidWorks 2015, SolidWorks MDB (Model Based Definition) is an integrated drawingless manufacturing solution for SolidWorks.)

Want to see the API interfaces and calls related to each of these topics? Check out the Release Notes article in the local or online API Help. You can find it in the local API Help by searching for “Release Notes” in the category tab. Note that the local API Help Release Notes will only be as up-to-date as the service pack you have downloaded. Also note that the online API Help is only updated for SP0, SP1, and SP5.

As always, if you discover an area where the API is lacking, don’t be afraid to submit it to the SolidWorks API support team.


Want to keep up with future CADSharp.com content, training events, and special offers? Sign up for our newsletter.

Leave Comment

API Programming Contest #2 Winners!

Blog 7.6.2015 No Comments

This year’s SolidWorks API programming contest, sponsored by CADSharp, brought in five fascinating submissions. This may seem like a low number, but I quite pleased considering the complexity of the contest. If you aren’t familiar with the contest rules, visit here.

My intention with the contest is that entrants would use geometry/topology traversal techniques to find the appropriate entities for mating. I did not, however, specify sufficient contest parameters to ensure this outcome, as I quickly discovered. Rather than penalizing the individuals who used alternative approaches that technically were within the boundaries of the contest, I have decided to awards prizes to all entrants.

Download submissions (.swp files)

Each .swp is named after the initials of the entrant. Let’s discuss each one, from shortest to longest:

1. rj.swp A very clever solution that utilizes the ability to put multiple statements on the same line as long as each statement can return a value. Even if you split up the conditional statements onto different lines, this macro still comes out to less than 30 lines. Rajat obtained the mating entities by hard-coding the feature names and considering the face order in the array returned by IFeature::GetFaces.

2. eq.swp Edgar’s 46 line solution locates and selects the exact edges necessary for mating by considering the order in which the edges were returned in certain arrays.

3. rb.swp Raghvendra’s macro, which comes out to 53 lines (discounting using a colon to place statements on the same line), traverses the feature tree while examining several criteria until the right faces for mating are found.

4. ik.swp At a mere 64 lines, Ivana’s macro represents a very efficient way to solve the problem without hard-coding feature names or the order in which desired entities appear in entity arrays.

5. cs.swp At 110 lines, Corey offers a straightforward use of geometry and topology traversal to solve the problem. This is similar to how I solved the problem, which you can see in kr.swp. Both of our solutions are largely unoptimized for minimal length but also have the advantage of being easier to read and understand.

Thanks again to everyone who took the time to enter our contest!

Did any of the techniques utilized stand out to you as particularly clever? Hopefully you can pick up some new programming tricks while looking over these submissions, just as I have.

Until next time,

Want to learn about future CADSharp.com contests and new content? Sign up for our newsletter.

Leave Comment

API Programming Contest #2: Win $100!

Blog 6.11.2015 2 Comments

I am pleased to announce the second CADSharp.com SolidWorks API programming contest! (See results of first contest here.) In this edition, we’re going to test your skills involving assemblies. Here’s how to win one of three Amazon.com gift cards or a 3-month premium membership to CADSharp.com.

How To Enter and Win
  1. Download the example file set here and open both assemblies.
  2. Write a VBA macro in as few lines as possible that meets the conditions stated below.
  3. Submit the macro to contest@cadsharp.combefore July 1, 12:00AM EST.
  4. The winners will be announced on our blog in July, along with everyone else who submitted a working macro, ranked from fewest lines to most lines.
Conditions for Success
  1. The only required precondition for running the macro is that “contest2_start.SLDASM” is active.
  2. After the macro runs, the resulting assembly has the same center of mass as “contest2_complete.SLDASM”.
  3. After the macro runs, the resulting assembly has the same degrees of freedom as “contest2_complete.SLDASM”. (The green cylinders can spin in place and no other components can move in any way.)
  4. The macro contains no hard coded physical property values: face areas, face normals, edge lengths, vertex coordinates, etc.
  5. The macro does not use IModelDocExtension::SelectByID2 to select entities for mating.
  6. The macro uses the Option Explicit statement.
Additional Comments
  • This problem is not intended to reflect any real life problem. It is simply a puzzle. As long as you achieve the result described above, you can use any tricks or shortcuts you can think of, regardless of whether they entail good programming practices.
  • The models were created in SolidWorks 2012 but any version of the SolidWorks API may be used.
  • Comments, blank lines, and lines resulting from a line continuation character (underscore) will not be counted in the final line count.
  • Multiple variable declarations on one line (and similar syntax tricks) will be counted as separate lines.
  • Any person may submit multiple solutions and I will only consider the submission with the fewest lines of code.

Three winners will be chosen based on the number of lines of code in their macro.

First prize: $100 gift card at Amazon.com.
Second prize: $50 gift card at Amazon.com.
Third prize: $50 gift card at Amazon.com.

Note: The Amazon gift cards can only be awarded to entrants who may purchase Amazon.com or one of its affiliates in Australia, Canada, United Kingdom, Germany, Italy, France, Spain, Netherlands, China, Brazil, India, Mexico, and Japan. Otherwise, a 2-month Power User membership (valued at $199) will be awarded instead. Optionally, a winner that is entitled to a gift card may choose to receive the 2-month CADSharp.com Power User membership instead.

The winners will be announced in July. May the best programmer win!

Want to learn about future CADSharp.com contests and new content? Sign up for our newsletter.

Leave Comment