def create(self, partNumber, outputType): row = self.table.findPart(partNumber) if row is None: print("Part not found") return dims = Dimensions() dims.G = parseQuantity(row["G"]) dims.H = parseQuantity(row["H"]) dims.M = parseQuantity(row["M"]) dims.POD = parseQuantity(row["POD"]) dims.PThk = self.getPThk(row) if outputType == Piping.OUTPUT_TYPE_PARTS or outputType == Piping.OUTPUT_TYPE_SOLID: corner = Corner(self.document) corner.dims = dims part = corner.create(outputType == Piping.OUTPUT_TYPE_SOLID) part.Label = "OSE-Corner" return part elif outputType == Piping.OUTPUT_TYPE_DODO_OR_FLAMINGO: feature = self.document.addObject( "Part::FeaturePython", "OSE-Corner") import OsePiping.FlCorner as FlCorner builder = FlCorner.CornerBuilder(self.document) builder.dims = dims part = builder.create(feature) feature.PRating = Piping.GetPressureRatingString(row) feature.PSize = self.getPSize(row) feature.ViewObject.Proxy = 0 feature.PartNumber = partNumber return part
def create(self, partName, length, outputType): row = self.table.findPart(partName) if row is None: print("Part not found") return if outputType == Piping.OUTPUT_TYPE_PARTS or outputType == Piping.OUTPUT_TYPE_SOLID: pipe = Pipe(self.document) pipe.OD = parseQuantity(row["OD"]) pipe.Thk = parseQuantity(row["Thk"]) pipe.H = length part = pipe.create(outputType == Piping.OUTPUT_TYPE_SOLID) return part elif outputType == Piping.OUTPUT_TYPE_DODO_OR_FLAMINGO: # See Code in pipeCmd.makePipe in the Flamingo workbench. feature = self.document.addObject("Part::FeaturePython", "OSE-Pipe") DN = Piping.GetDnString(row) OD = parseQuantity(row["OD"]) Thk = parseQuantity(row["Thk"]) part = getDFPipe(feature, DN=DN, OD=OD, thk=Thk, H=length) feature.PRating = Piping.GetPressureRatingString(row) # Currently I do not know how to interprite table data as a profile. feature.Profile = "" if "PSize" in row.keys(): feature.PSize = row["PSize"] # Workaround. Add ports before return. Otherwise the positioning is not working. feature.Ports = [ FreeCAD.Vector(0, 0, 0), FreeCAD.Vector(0, 0, length) ] feature.ViewObject.Proxy = 0 return part
def create(self, partNumber, outputType): row = self.table.findPart(partNumber) if row is None: print("Part not found") return dims = Dimensions() dims.BendAngle = parseQuantity(row["BendAngle"]) dims.H = parseQuantity(row["H"]) dims.J = parseQuantity(row["J"]) dims.M = parseQuantity(row["M"]) dims.POD = parseQuantity(row["POD"]) dims.PThk = self.getPThk(row) if outputType == Piping.OUTPUT_TYPE_PARTS or outputType == Piping.OUTPUT_TYPE_SOLID: elbow = Elbow(self.document) elbow.dims = dims part = elbow.create(outputType == Piping.OUTPUT_TYPE_SOLID) part.Label = "OSE-Elbow" return part elif outputType == Piping.OUTPUT_TYPE_DODO_OR_FLAMINGO: # See Code in pipeCmd.makePipe in the Flamingo workbench. feature = self.document.addObject("Part::FeaturePython", "OSE-Elbow") import OsePiping.FlElbow as FlElbow builder = FlElbow.ElbowBuilder(self.document) builder.dims = dims part = builder.create(feature) feature.PRating = Piping.GetPressureRatingString(row) feature.PSize = self.getPSize(row) feature.ViewObject.Proxy = 0 feature.PartNumber = partNumber return part
def create(self, partNumber, outputType): row = self.table.findPart(partNumber) if row is None: print("Part not found") return dims = Dimensions() dims.N = parseQuantity(row["N"]) dims.L = parseQuantity(row["L"]) dims.POD = parseQuantity(row["POD"]) dims.POD1 = parseQuantity(row["POD1"]) dims.PThk1 = self.getPThk1(row) if outputType == Piping.OUTPUT_TYPE_PARTS or outputType == Piping.OUTPUT_TYPE_SOLID: bushing = Bushing(self.document) bushing.dims = dims part = bushing.create(outputType == Piping.OUTPUT_TYPE_SOLID) part.Label = "OSE-Bushing" return part elif outputType == Piping.OUTPUT_TYPE_DODO_OR_FLAMINGO: # See Code in pipeCmd.makePipe in the Flamingo workbench. feature = self.document.addObject("Part::FeaturePython", "OSE-Bushing") import OsePiping.FlBushing as FlBushing builder = FlBushing.BushingBuilder(self.document) builder.dims = dims part = builder.create(feature) feature.PRating = Piping.GetPressureRatingString(row) feature.PSize = row["PSize"] # What to do for multiple sizes? feature.ViewObject.Proxy = 0 # feature.Label = partName # Part name must be unique, that is qhy use partNumber instead. feature.PartNumber = partNumber return part
def create(self, partNumber, outputType): tee = Tee(self.document) row = self.table.findPart(partNumber) if row is None: print("Part not found {}".format(partNumber)) return dims = Dimensions() dims.G = parseQuantity(row["G"]) dims.G1 = parseQuantity(row["G1"]) dims.G2 = parseQuantity(row["G2"]) dims.H = parseQuantity(row["H"]) dims.H1 = parseQuantity(row["H1"]) dims.H2 = parseQuantity(row["H2"]) dims.M = parseQuantity(row["M"]) dims.M1 = parseQuantity(row["M1"]) dims.M2 = parseQuantity(row["M2"]) dims.POD = parseQuantity(row["POD"]) dims.POD1 = parseQuantity(row["POD1"]) dims.POD2 = parseQuantity(row["POD2"]) dims.PThk = self.getPThk(row) dims.PThk1 = self.getPThk1(row) dims.PThk2 = self.getPThk2(row) if outputType == Piping.OUTPUT_TYPE_PARTS or outputType == Piping.OUTPUT_TYPE_SOLID: tee = Tee(self.document) tee.dims = dims part = tee.create(outputType == Piping.OUTPUT_TYPE_SOLID) part.Label = "OSE-Tee" return part elif outputType == Piping.OUTPUT_TYPE_DODO_OR_FLAMINGO: feature = self.document.addObject("Part::FeaturePython", "OSE-Tee") import OsePiping.FlTee as FlTee builder = FlTee.TeeBuilder(self.document) builder.dims = dims part = builder.create(feature) feature.PRating = Piping.GetPressureRatingString(row) feature.PSize = row["PSize"] # What to do for multiple sizes? feature.ViewObject.Proxy = 0 feature.PartNumber = partNumber return part
def create(self, partNumber, outputType): row = self.table.findPart(partNumber) if row is None: print("Part not found") return dims = Dimensions() dims.G = parseQuantity(row["G"]) dims.G1 = parseQuantity(row["G1"]) dims.H = parseQuantity(row["H"]) dims.H1 = parseQuantity(row["H1"]) dims.L = parseQuantity(row["L"]) dims.L1 = parseQuantity(row["L1"]) dims.M = parseQuantity(row["M"]) dims.M1 = parseQuantity(row["M1"]) dims.POD = parseQuantity(row["POD"]) dims.POD1 = parseQuantity(row["POD1"]) dims.PThk = CrossFromTable.getPThk(row) dims.PThk1 = CrossFromTable.getPThk1(row) if outputType == Piping.OUTPUT_TYPE_PARTS or outputType == Piping.OUTPUT_TYPE_SOLID: cross = Cross(self.document) cross.dims = dims part = cross.create(outputType == Piping.OUTPUT_TYPE_SOLID) part.Label = "OSE-Cross" return part elif outputType == Piping.OUTPUT_TYPE_FLAMINGO: # See Code in pipeCmd.makePipe in the Flamingo workbench. feature = self.document.addObject("Part::FeaturePython", "OSE-Cross") import OsePiping.FlCross as FlCross builder = FlCross.CrossBuilder(self.document) builder.dims = dims part = builder.create(feature) feature.PRating = Piping.GetPressureRatingString(row) feature.PSize = row["PSize"] # What to do for multiple sizes? feature.ViewObject.Proxy = 0 # feature.Label = partName # Part name must be unique, that is qhy use partNumber instead. feature.PartNumber = partNumber return part
def create(self, partNumber, outputType): coupling = Coupling(self.document) row = self.table.findPart(partNumber) if row is None: print("Part not found") return dims = Dimensions() dims.L = parseQuantity(row["L"]) dims.M = parseQuantity(row["M"]) dims.M1 = parseQuantity(row["M1"]) dims.N = parseQuantity(row["N"]) dims.POD = parseQuantity(row["POD"]) dims.POD1 = parseQuantity(row["POD1"]) dims.PThk = self.getPThk(row) dims.PThk1 = self.getPThk1(row) if outputType == Piping.OUTPUT_TYPE_PARTS or outputType == Piping.OUTPUT_TYPE_SOLID: coupling = Coupling(self.document) coupling.dims = dims part = coupling.create(outputType == Piping.OUTPUT_TYPE_SOLID) part.Label = "OSE-Coupling" return part elif outputType == Piping.OUTPUT_TYPE_FLAMINGO: # See Code in pipeCmd.makePipe in the Flamingo workbench. feature = self.document.addObject("Part::FeaturePython", "OSE-Coupling") import OsePiping.FlCoupling as FlCoupling builder = FlCoupling.CouplingBuilder(self.document) builder.dims = dims part = builder.create(feature) feature.PRating = Piping.GetPressureRatingString(row) feature.PSize = self.getPSize(row) # What to do for multiple sizes? feature.ViewObject.Proxy = 0 feature.PartNumber = partNumber return part