Hüllfläche eines Gebäudes
Hüllfläche eines Gebäudes
Hi
Im Endeffekt möchte ich Freecad „Embed“ in QT verwenden, zunächst möchte ich den geplanten 3D-Modelierunsflow unter der FreeCAd-GUI ausprobieren und ersuche Euch um Feedback, ob ich auf dem richtigen Weg bin, bzw. einige Fragen:
Ich möchte ein Gebäude modellieren, allerdings interessiert nur die Außenhülle.
Und jeder Fläche der Außenhülle soll eine physikalische Eigenschaft (U-Wert) zugeordnet werden.
Das Gebäude soll aus Grundelementen wie Quader modelliert werden.
Würde zwar gut mit „Part“ und Bool-Union funktionieren, aber soweit ich es verstanden habe, ist es nicht möglich, den einzelnen Flächen Eigenschaften zuzuordnen.
Also „ARCH“, weil da kann man den einzelnen Flächen (Wänden) unterschiedliche Eigenschaften zuordnen.
Das heißt: z.B. Ein Quader besteht aus 4 Wänden, Boden und Dach.
Vom Handling her möchte ich es jedoch nur mit einem Quader zu tun haben (Eingabe von Länge, Breite, Höhe):
??? Ich nehme an, dass ich dazu ein Makro machen muss. (Oder gibt es eine Möglichkeit, per Befehl einen Part-Quader in einen Wall-Quader mit 4 Seitenwänden und oben/unten-Wand umzuwandeln?)
Weitere Gebäudeteile: Indem weitere Wand-Quader an die bereits bestehende Geometrie angedockt werden:
Ich brauche im Endeffekt die Wände, die die Hüllfläche des Gebäudes bilden
(Und nicht die Flächen, an der sich 2 Quader berühren, die also Innen sind)
???Wie erzeuge ich diese Hüllwände?
LG
Chri
Im Endeffekt möchte ich Freecad „Embed“ in QT verwenden, zunächst möchte ich den geplanten 3D-Modelierunsflow unter der FreeCAd-GUI ausprobieren und ersuche Euch um Feedback, ob ich auf dem richtigen Weg bin, bzw. einige Fragen:
Ich möchte ein Gebäude modellieren, allerdings interessiert nur die Außenhülle.
Und jeder Fläche der Außenhülle soll eine physikalische Eigenschaft (U-Wert) zugeordnet werden.
Das Gebäude soll aus Grundelementen wie Quader modelliert werden.
Würde zwar gut mit „Part“ und Bool-Union funktionieren, aber soweit ich es verstanden habe, ist es nicht möglich, den einzelnen Flächen Eigenschaften zuzuordnen.
Also „ARCH“, weil da kann man den einzelnen Flächen (Wänden) unterschiedliche Eigenschaften zuordnen.
Das heißt: z.B. Ein Quader besteht aus 4 Wänden, Boden und Dach.
Vom Handling her möchte ich es jedoch nur mit einem Quader zu tun haben (Eingabe von Länge, Breite, Höhe):
??? Ich nehme an, dass ich dazu ein Makro machen muss. (Oder gibt es eine Möglichkeit, per Befehl einen Part-Quader in einen Wall-Quader mit 4 Seitenwänden und oben/unten-Wand umzuwandeln?)
Weitere Gebäudeteile: Indem weitere Wand-Quader an die bereits bestehende Geometrie angedockt werden:
Ich brauche im Endeffekt die Wände, die die Hüllfläche des Gebäudes bilden
(Und nicht die Flächen, an der sich 2 Quader berühren, die also Innen sind)
???Wie erzeuge ich diese Hüllwände?
LG
Chri
Re: Hüllfläche eines Gebäudes
Es müsste sich schon programmiertechnisch umsetzen lassen, dass jede fläche eines Körpers eigene Eigenschaften hat. Das problem ist aber bekannt unter Topological Naming. Eine boolsche operation und die Flächen werden anders indexiert und schon ist alles wieder durcheinander. Genau aus dem grund kann ein sketch von linien auch nur eine Wanddicke haben, wenn daraus wände erstellt werden.
- mit Part Module eine Box erstellen
- in Arch workbench die Box selektieren und auf Wandicon klicken und schon ist die box eine Wand
- Natürlich bewirken dann die Wandparameter Höhe, Dicke, Breite nichts mehr, da ja die Wand die Geometrie von der Box übernimmt.
bernd
Re: Hüllfläche eines Gebäudes
Was hast Du vor, eine gui für eine energiesimulation schreiben?
Re: Hüllfläche eines Gebäudes
Genau. Habe mit QT ein Energieausweisprogramm gemacht, jetzt brauch ich ein CAD, um das Energieausweisprogramm "zu beliefern":
FreeCad ins QT einbinden.
Im Endeffekt brauche ich eine Liste mit allen Flächen, die die Hüllfläche bilden (m²).
Die Eingabe der Geometrie soll ein "Ich bau mir ein Gebäude aus Bauklötzen" sein.
Hab es prinzipiell schon getestet (Mit AutoCAD, reduziert auf einen Werkzeugkasten): Auch ohne CAD-Kenntnisse und Anleitungen kommen die Leute damit zurecht.
Man klickt z.B. auf den Button Quader, wird nach Länge, Breite Höhe gefragt, der Quader ist dann sichtbar und es wird gleich weiter geschalten zu
"Ausrichtung", um den Quader an die bestehende Geometrie anzuschließen ("Ausrichtung" möchte ich auch noch umbauen oder Ersetzen: Eingabe von 3 Linien, die Start und Zielpunkte verbinden, und dann wird es ausgeführt)
In der Geometrie kann man dann auf eine Fläche klicken und angeben, welcher Bauteil es ist. (Die Bauteile werden im Kernprogramm erstellt)
Hab mich gerade ein bisschen mit Python beschäftigt, da müsste es doch möglich sein, überhaupt einen eigenen Quadertyp zu definieren, in dem man den Flächen die Bauteile zuordnen kann.
Im Moment scheitere ich gerad daran, den Quader zu erstellen:
Und jetzt weiß ich momentan nicht weiter.
Irgendwie muss dann glaub ich obj.shape kommen
Und wie ich die Baustoffeigenschaft den Flächen zuordnen kann, damit hab ich mich auch noch nicht beschäftigt.
Falls mir jemand weiterhelfen könnte ...
LG
Chri
FreeCad ins QT einbinden.
Im Endeffekt brauche ich eine Liste mit allen Flächen, die die Hüllfläche bilden (m²).
Die Eingabe der Geometrie soll ein "Ich bau mir ein Gebäude aus Bauklötzen" sein.
Hab es prinzipiell schon getestet (Mit AutoCAD, reduziert auf einen Werkzeugkasten): Auch ohne CAD-Kenntnisse und Anleitungen kommen die Leute damit zurecht.
Man klickt z.B. auf den Button Quader, wird nach Länge, Breite Höhe gefragt, der Quader ist dann sichtbar und es wird gleich weiter geschalten zu
"Ausrichtung", um den Quader an die bestehende Geometrie anzuschließen ("Ausrichtung" möchte ich auch noch umbauen oder Ersetzen: Eingabe von 3 Linien, die Start und Zielpunkte verbinden, und dann wird es ausgeführt)
In der Geometrie kann man dann auf eine Fläche klicken und angeben, welcher Bauteil es ist. (Die Bauteile werden im Kernprogramm erstellt)
Hab mich gerade ein bisschen mit Python beschäftigt, da müsste es doch möglich sein, überhaupt einen eigenen Quadertyp zu definieren, in dem man den Flächen die Bauteile zuordnen kann.
Im Moment scheitere ich gerad daran, den Quader zu erstellen:
Code: Select all
class Quader:
def __init__(self,obj):
obj.Proxy = self
obj.addProperty("App::PropertyFloat","Length")
obj.addProperty("App::PropertyFloat","Width")
obj.addProperty("App::PropertyFloat","Hight")
def execute(self,obj):
if (obj.Length == 0) or (obj.Width == 0) or (obj.Hight == 0):
return
# Eckpunkte
e1 = FreeCAD.Vector(0,0,0)
e2 = FreeCAD.Vector(obj.Length,0,0)
.... e3 bis e8
# Kanten
k1 = Part.Line(v1,v2).toShape()
.... k2 bis k8
# Flächen
f1 = Part.Wire([e1,e2,e3,e4])
...f2 bis f6
# Volumen
# v1 = Part....([f1,f2,f3,f4,f5,f6])
Irgendwie muss dann glaub ich obj.shape kommen
Und wie ich die Baustoffeigenschaft den Flächen zuordnen kann, damit hab ich mich auch noch nicht beschäftigt.
Falls mir jemand weiterhelfen könnte ...
LG
Chri
Re: Hüllfläche eines Gebäudes
So, hab es etwas geändert -> Erzeugt auch ein Objekt, allerdings werden nur die 8 Eckpunkte dargestellt.
Zunächst mal: Warum sieht man nur die Eckpunkte?
LG
Chri
LG Chri
Code: Select all
class Prisma:
def __init__(self,obj):
obj.Proxy = self
obj.addProperty("App::PropertyFloat","Length").Length = 10
obj.addProperty("App::PropertyFloat","Width").Width = 5
obj.addProperty("App::PropertyFloat","Hight").Hight = 3
......
def execute(self,obj):
if (obj.Length == 0) or (obj.Width == 0) or (obj.Hight == 0):
return
# Eckpunkte
e1 = FreeCAD.Vector(0,0,0)
....
# Kanten
k1 = Part.Line(e1,e2).toShape()
.....
# Flächen
f= Part.makePolygon([e1,e2,e3,e4])
f1 = Part.Face(f)
f = Part.makePolygon([e1,e2,e6,e5])
f2 = Part.Face(f)
.....
shell = Part.makeShell([f1,f2,f3,f4,f5,f6])
solid = Part.makeSolid(shell)
obj.Shape = shell
myObj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Prisma")
Prisma(myObj)
myObj.ViewObject.Proxy = 0
FreeCAD.ActiveDocument.recompute()
LG
Chri
LG Chri
Re: Hüllfläche eines Gebäudes
warum so kompliziert, oder ist das ein eigenes programmierbeispiel für eine eigene klasse box?
Kennst Du das Scripted_objects ? Weitere interessante links hier: https://forum.freecadweb.org/viewtopic.php?f=22&t=4887
Code: Select all
App.ActiveDocument.addObject("Part::Box","Box")
App.ActiveDocument.recompute()
Re: Hüllfläche eines Gebäudes
Chri,
schau dir mal das Thema an: https://forum.freecadweb.org/viewtopic.php?f=13&t=30289 Dort gibt es für dich schöne Beispiele.
Gruß
Benjamin
schau dir mal das Thema an: https://forum.freecadweb.org/viewtopic.php?f=13&t=30289 Dort gibt es für dich schöne Beispiele.
Gruß
Benjamin
Re: Hüllfläche eines Gebäudes
Warum so kompliziert? In der Hoffnung, dass es in weiterer Folge gelingt, jeder Fläche Eigenschaften zuzuordnen.
Und noch eine Idee ist mir gekommen: Zusätzliche Eigenschaften für 4 Seitenflächenwinkel und 4 Winkel für die Seiten, ergibt ein Allgemein-Element von dem Prisma nur ein Spezialfall ist.
Den Fehler von zuvor habe ich übrigens gerade gefunden:
Die makePolygon waren offen -> f= Part.makePolygon([e1,e2,e3,e4,e1]) -> Jetzt wird das Prisma dargestellt.
Scripted Objects kenn ich, ich versuche, es nach und nach zu verstehen, die anderen wird ich mir auch anschauen.
LG
Chri
Und noch eine Idee ist mir gekommen: Zusätzliche Eigenschaften für 4 Seitenflächenwinkel und 4 Winkel für die Seiten, ergibt ein Allgemein-Element von dem Prisma nur ein Spezialfall ist.
Den Fehler von zuvor habe ich übrigens gerade gefunden:
Die makePolygon waren offen -> f= Part.makePolygon([e1,e2,e3,e4,e1]) -> Jetzt wird das Prisma dargestellt.
Scripted Objects kenn ich, ich versuche, es nach und nach zu verstehen, die anderen wird ich mir auch anschauen.
LG
Chri
Re: Hüllfläche eines Gebäudes
Eigenschaften: Ich möchte jeder Fläche eine (Bauteil)-ID zuordnen können.
(Fläche anklicken und eine ID eingeben)
Warum Proxy auf Null: Ehrlich gesagt, ganz pragmatisch: Ich weiß es nicht, weil es in https://yorikvanhavre.gitbooks.io/a-fre ... jects.html so steht und das Prisma erst dadurch angezeigt wird.
LG
Chri
(Fläche anklicken und eine ID eingeben)
Warum Proxy auf Null: Ehrlich gesagt, ganz pragmatisch: Ich weiß es nicht, weil es in https://yorikvanhavre.gitbooks.io/a-fre ... jects.html so steht und das Prisma erst dadurch angezeigt wird.
LG
Chri