script tube..arch

Forum per le domande e le discussioni in Italiano
Forum rules
regole del forum e le informazioni utili

Importante: PRIMA di chiedere aiuto leggete qui!
Post Reply
Luixx
Posts: 198
Joined: Thu Jan 25, 2018 9:12 am

script tube..arch

Post by Luixx »

Salve, nella mia libreria personale sto usando il modulo arch .. per creare il tubo.

Ora vorrei dargli uno spessore .. sapete come posso fare ?
ecco lo script della classe:

Code: Select all

import FreeCAD, FreeCADGui, Part
App = FreeCAD
Gui = FreeCADGui
import Arch, Draft

class Tube():
    def __init__(self, name):
        self.name = name
    def create(self, d, l):
        self.name = Arch.makePipe(diameter=d, length=l, name='' + self.name + '')
e poi si utilizza cosi:

Code: Select all

tube = Tube("tubo1")
tube.create(120,3000)
come posso fare per dargli spessore e all'interno svuotarlo ?
grazie mille e buona settimana.
Luixx
Posts: 198
Joined: Thu Jan 25, 2018 9:12 am

Re: script tube..arch

Post by Luixx »

e semplice ho trovato dalle proprietà del tubo questo nome:

Code: Select all

FreeCAD.getDocument('Senza_nome').getObject('tubo1').WallThickness = '8 mm'
vi allego immagine..
Immagine.jpg
Immagine.jpg (224.69 KiB) Viewed 1158 times
come faccio io via script ad fare che da una variabile imposto la misura ad quella proprietà lì.

grazie mille e buon fine settimana.
Luixx
Posts: 198
Joined: Thu Jan 25, 2018 9:12 am

Re: script tube..arch

Post by Luixx »

ok, riuscito ecco ad voi:

Code: Select all

import FreeCAD, FreeCADGui, Part
App = FreeCAD
Gui = FreeCADGui
import Arch, Draft

class Tube():
    def __init__(self, name):
        self.name = name
        self.obj = None

    def create(self, d, l, s, name):
        tube = Arch.makePipe(diameter=d, length=l,name=name)
        tube.WallThickness = s
        self.obj = tube

    def placement(self, placement=App.Placement(App.Vector(1,1,1),App.Rotation(0,0,0,1))):
        self.obj.Placement = placement
2.jpg
2.jpg (204.62 KiB) Viewed 1134 times
carlopav
Posts: 1959
Joined: Mon Dec 31, 2018 1:49 pm
Location: Venice, Italy

Re: script tube..arch

Post by carlopav »

Perché non semplicemente così?

Code: Select all

import FreeCAD, FreeCADGui, Part
App = FreeCAD
Gui = FreeCADGui
import Arch

def create_tube(d, l, s, name):
    tube = Arch.makePipe(diameter=d, length=l,name=name)
    tube.WallThickness = s
    tube.Placement(App.Vector(1,1,1),App.Rotation(0,0,0,)
Non mi sembra molto utile creare un oggetto (class) per una cosa così semplice :)
follow my experiments on BIM modelling for architecture design
Post Reply