  The CAD design process includes a number of repetitive steps when creating
assemblies. This issue is compounded when engineering whole product lines or
design families, as steps like inserting parts common to all variations, such
as fasteners and product-integral base parts, get repeated numerous times. This
makes creating designs time-, and as a result, cost-intensive. While many CAD
software packages have APIs, the effort of creating use-case specific plugins
to automate creation of assemblies usually outweighs the benefit.
  We developed a plugin for the CAD software package "Fusion 360" which tackles
this issue. The plugin adds several graphical interfaces to Fusion 360 that
allow parts to be annotated with types, subtype hierarchies to be managed, and
requests to synthesize assembly programs for assemblies to be posed. The plugin
is use-case agnostic and is able to generate arbitrary open kinematic chain
structures. We envision engineers working with CAD software being able to make
designed parts reusable and automate the generation of different design
alternatives as well as whole product lines.
