示例#1
0
    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
示例#2
0
 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
示例#3
0
    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
示例#4
0
    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
示例#5
0
    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
示例#6
0
    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
示例#7
0
    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