pythonCascade Sample Problems

def VisualizeStructure(self):
# initial
visualization
if self.visualized:
return
self.Initialize()
self.interactive_context.EraseAll(0,1)
self.myDeviation = 0.0008
self.thread = 4
self.myAngle = 0
B = BRep_Builder()
flag1,self.CrankArm =
BRepTools().Read("d:\\awork\\demo\\Data\\CrankArm.rle",B)
flag2,self.CylinderHead =
BRepTools().Read("d:\\awork\\demo\\Data\\CylinderHead.rle",B)
flag3,self.Propeller =
BRepTools().Read("d:\\awork\\demo\\Data\\Propeller.rle",B)
flag4,self.Piston =
BRepTools().Read("d:\\awork\\demo\\Data\\Piston.rle",B)
flag5,self.EngineBlock =
BRepTools().Read("d:\\awork\\demo\\Data\\EngineBlock.rle",B)
if flag1 == 0 or flag2 == 0 or flag3 == 0 or flag4 == 0 or
flag5 == 0:
print "Shape(s) not found.\nCheck the Data
directory path!"
self.interactive_context.SetDeviationCoefficient(self.myDeviation)
self.myAisCrankArm
= AIS_Shape (self.CrankArm)
self.interactive_context.SetColor(self.myAisCrankArm,Quantity_NOC_HOTPINK,0)
self.interactive_context.SetMaterial(self.myAisCrankArm,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(self.myAisCrankArm,1,-1,0,0)
self.myAisCylinderHead
= AIS_Shape (self.CylinderHead)
self.interactive_context.SetColor(self.myAisCylinderHead,Quantity_NOC_WHITE,0)
self.interactive_context.SetMaterial(self.myAisCylinderHead,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(self.myAisCylinderHead,1,-1,0,0)
self.myAisPropeller
= AIS_Shape (self.Propeller)
self.interactive_context.SetColor(self.myAisPropeller,Quantity_NOC_RED,0)
self.interactive_context.SetMaterial(self.myAisPropeller,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(self.myAisPropeller,1,-1,0,0)
self.myAisPiston
= AIS_Shape (self.Piston)
self.interactive_context.SetColor(self.myAisPiston,Quantity_NOC_WHITE,0)
self.interactive_context.SetMaterial(self.myAisPiston,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(self.myAisPiston,1,-1,0,0)
self.myAisEngineBlock
= AIS_Shape (self.EngineBlock)
self.interactive_context.SetColor(self.myAisEngineBlock,Quantity_NOC_WHITE,0)
self.interactive_context.SetMaterial(self.myAisEngineBlock,Graphic3d_NOM_PLASTIC,0)
self.interactive_context.Display(self.myAisEngineBlock,1,-1,0,0)
self.visualized = 1
self.view.FitAll(0.01,0)
self.view.ZFitAll(0.01)
self.view.Redraw()
def AnimationOnRestart(self,event):
self.timer.Start(1)
def AnimationOnStop(self,event):
self.timer.Stop()
def AnimationOnThread(self,event):
windial = wxDialog(self.parent,-1,"Change the
animation thread",wxPoint(30,50),wxSize(340,230))
wxButton(windial,wxID_OK," OK
",wxPoint(50,120),wxDefaultSize)
wxButton(windial,wxID_CANCEL," Cancel
",wxPoint(200,120),wxDefaultSize)
wxStaticText(windial,-1,"Angle
increment",wxPoint(50,25))
sc =
wxSpinCtrl(windial,-1,`self.thread`,wxPoint(50,50),wxSize(80,-1))
sc.SetRange(1,100)
val = windial.ShowModal()
if val == wxID_OK:
self.thread = sc.GetValue()
def AnimationOnDeviation(self,event):
windial = wxDialog(self.parent,-1,"Deviation
coefficient",wxPoint(30,50),wxSize(340,230))
wxButton(windial,wxID_OK," OK
",wxPoint(50,120),wxDefaultSize)
wxButton(windial,wxID_CANCEL," Cancel
",wxPoint(200,120),wxDefaultSize)
wxStaticText(windial,-1,"Fine Default
Unpolished",wxPoint(50,25))
dev = int( (self.myDeviation-0.00003)/0.00003)
sc =
wxSlider(windial,100,dev,1,100,wxPoint(40,50),wxSize(260,-1),wxSL_HORIZONTAL |
wxSL_AUTOTICKS)
sc.SetTickFreq(5,1)
val = windial.ShowModal()
if val == wxID_OK:
self.myDeviation = 0.00003 + 0.00003 * sc.GetValue()
self.interactive_context.SetDeviationCoefficient(self.myDeviation)
Propeller = self.myAisPropeller.Shape()
BRepTools().Clean(Propeller)
self.myAisPropeller.Set(Propeller)
self.interactive_context.Deactivate(self.myAisPropeller)
self.interactive_context.Redisplay(self.myAisPropeller)