# ca = existing Assembly
ca = CurrentAssembly()
print 'CurrentAssembly:',ca
# New SubAssembly (suba)
subassy = Assembly('BoltSet')
print 'NewSubAssembly:',subassy
# Add bolt to subassambly
bolt = subassy.AddNewPart("Bolt",0,0,0) # Assign the new part to the variable Bolt
print 'NewPart in Subassembly:',bolt
boltsketch = bolt.AddSketch('boltsketch',subassy.XYPlane)
print 'Sketchname:',boltsketch.Name
circle = boltsketch.AddCircle(0,0,10,False)
print 'added Circle:',circle
circlebody = bolt.AddExtrudeBoss('CircleBody',bolt.GetSketch('boltsketch'),40,False)
print 'created Body:',circlebody
headsketch = bolt.AddSketch('headsketch',subassy.XYPlane)
circleH = headsketch.AddCircle(0,0,15,False)
headbody = bolt.AddExtrudeBoss('HeadBody',bolt.GetSketch('headsketch'),10,True)
#bolt.AnchorPart() HOW DO I DO THIS??
# Add washer to subassambly
washer = subassy.AddNewPart("Washer",0,0,0) # Assign the new part to the variable Bolt
print 'NewPart in Subassembly:',washer
washersketch = washer.AddSketch('washersketch',subassy.XYPlane)
print 'Sketchname:',washersketch.Name
circle1 = washersketch.AddCircle(0,0,11,False)
circle2 = washersketch.AddCircle(0,0,16,False)
print 'added Circle:',circle
circlebody = washer.AddExtrudeBoss('WasherBody',washer.GetSketch('washersketch'),3,False)
print 'created Body:',circlebody
# Add second washer
subassy.DuplicatePart(washer,0,0,27)
# Add nut to subassambly
nut = subassy.AddNewPart("Nut",0,0,30)
nutsketch = nut.AddSketch('nutsketch',nut.XYPlane)
hex = nutsketch.AddPolygon(0.0, 0.0, 16, 6, False)
hole = nutsketch.AddCircle(0,0,10,False)
nutbody = nut.AddExtrudeBoss('NutBody',nut.GetSketch('nutsketch'),6,False)
# You have to insert your save location instead of *******
subassy.Save(r"C:/Users/......")
loadedassy = Assembly(r"C:/Users/....../","BoltSet.ad_asm")
print loadedassy
sub_assy = ca.AddSubAssembly(loadedassy,0,0,0)
print sub_assy
win = Windows()
win.InfoDialog('Wait for save operation to be fullfilled...','Wait')
win.InfoDialog('...only to be sure before trying to close subassy and part window','Wait')
print 'close sub:',subassy
subassy.Close()