Creating the SpaceClaim Wizard for Generating a BGA

The file SC_BGA_Extension.xml follows.

extension version="1" name="SC_BGA_Extension">
  <script src="main.py" />
  <guid shortid="SC_BGA_Extension">5107C33A-E123-4F55-8166-2ED2AA59B3B2</guid>
  <interface context="SpaceClaim">
    <images>images</images>

    <callbacks>
      <oninit>oninit</oninit>
    </callbacks>

    <toolbar name="SC_BGA_Extension" caption="SC_BGA Extension">
      <entry name="SC_BGA_Package"  icon="icepak_package">
        <callbacks>
          <onclick>createMyFeature</onclick>
        </callbacks>
      </entry>
    </toolbar>
  </interface>

	<wizard name="BGAWizard" version="1" context="SpaceClaim">
		<description>BGA Wizard</description>

		<step name="Die" caption="Die" version="1">
			<callbacks><onupdate>GenerateDie</onupdate></callbacks>
			<property name="Thickness" caption="Height" unit="Length" control="float" default="0.3[mm]"/>
			<property name="Width"     caption="Width"  unit="Length" control="float" default="5 [mm]"/>
		</step>

		<step name="SubstrateAndSolderMask" caption="Substrate and SolderMask" version="1">
			<callbacks><onupdate>GenerateSubstrateAndSolderMask</onupdate></callbacks>
			<propertygroup name="SubstrateDetails" caption="SubstrateDetails" display="caption">
				<property name="Thickness" caption="Thickness" unit="Length" control="float" default="0.4 [mm]" ></property>
				<property name="Length" caption="Length" unit="Length" control="float" default="13 [mm]" ></property>
			</propertygroup>
			<propertygroup name="SolderMaskDetails" caption="SolderMaskDetails" display="caption">
				<property name="Height" caption="Solder Mask Height"  unit="Length" control="float" default="0.05 [mm]"/>
			</propertygroup>
		</step>

		<step name="SolderBall" caption="Solder ball" version="1">
			<callbacks><onupdate>GenerateBalls</onupdate></callbacks>
			<property name="Face" caption="Face" control="scoping">
				<attributes selection_filter="face"/>
			</property>

			<propertygroup name="SolderBallDetails" caption="Solder Ball Details" display="caption">
				<propertygroup display="property" name="BallsPrimitive" caption="Balls primitive" control="select" default="sphere">
					<attributes options="sphere,cylinder,cone,cube,gear"/>
				</propertygroup>
				<property name="Pitch" caption="Pitch" unit="Length" control="float" default="0.8 [mm]"/>
				<property name="Radius" caption="Radius"  unit="Length" control="float" default="0.35 [mm]"/>
				<property name="Number of Solder Ball Columns" caption="No of Solder Ball Columns" control="integer" default="16"/>
				<property name="Number of Solder Ball Rows" caption="No of Solder Ball Rows" control="integer" default="16"/>
			</propertygroup>

		   <propertygroup name="Central Balls" caption="Central Thermal Balls">
				<propertygroup display="property" name="Central Thermal Balls" caption="Want to Supress Central Balls" control="select" default="No">
					<attributes options="Yes,No"/>
				<property name="Number of Solder Ball Columns" caption="No of Solder Ball Columns" control="integer" default="4" visible = "false" visibleon="Yes"/>
				<property name="Number of Solder Ball Rows" caption="No of Solder Ball Rows" control="integer" default="4" visible = "false" visibleon="Yes"/>
				</propertygroup>
			</propertygroup>
		</step>

	</wizard>

</extension>

Interface Definition

In the element <interface>, the child element <toolbar> defines a toolbar and toolbar button to display in SpaceClaim.

Step Definition

This wizard has three steps: Die, SubstrateAndSolderMask, and SolderBall.

  • For the step Die, the callback <onupdate> executes the function GenerateDie.

  • For the step SubstrateAndSolderMask, the callback <onupdate> executes the function GenerateSubstrateAndSolderMask.

  • For the step SolderBall, the callback <onupdate> executes the function GenerateBalls.