Auto-genererade anpassade växthusgaser (3 / 7 steg)
Steg 3: Python skript - del 1
I detta steg ska vi skriva en python skript som drar värden från onlinedatabasen och bestämmer rätt väggtjocklek baserat på dessa värden. I nästa steg ska vi utöka detta skript för att bygga en 3D-modell av växthuset. (manus bifogas i detta steg).
Först öppna Fusion 360 och klicka på "skript och tillägg" i verktygsfältet. Se till att du skript på fliken, sedan klicka på skapa. En ny dialogruta dyker upp. Välj script och sedan python, och sedan ge ditt manus namn, beskrivning och författare. Klicka på skapa om du vill stänga dialogrutan. Välj ditt nya manus och klicka på Redigera, detta uppmanas Spyder att öppna. Spyder är en python redigering gränssnitt som är inbyggd i Fusion, så du ska göra alla programmering här.
Lägg till dessa rader kod överst i filen:
importera adsk.core, adsk.fusion import urllib.request #from html.parser import HTMLParser import xml.etree.ElementTree som ET
Nästa steg är att göra några varierande definitioner. Här ska vi definiera storleken på växthuset och hur varmt vi vill insidan för att vara. I framtiden kommer skriptet kunde fråga användaren vad de vill växa i växthuset och sedan det kunde dra i rätt temperatur från en annan databas. För nu blir temperaturen egna dock. Här har vi det satt till 100 grader F.
### VARIERANDE DEFINITIONER
### Föredrog inne temperatur [F]
insideTemp = 100
### Storleken på växthuset [ft]
wallHeight = 6
roofHeight = 9
bredd = 10
Längd = 10
### standard isoleringstjocklek, i cm
isolering = 10
### Solar flux effektivitet
verkningsgrad = 0,1
Dessa nästa linjer gör XML-parsning. I slutet av detta kodblock har variabler outsideTemp och flux de värden som angetts i XML-databasen.
### PULL INGÅNGAR FRÅN XML DATABASE
svar = urllib.request.urlopen ("din XML-URL")
pageContentsBytes = response.read()
pageContents = pageContentsBytes.decode("utf-8")
# konvertera byte objekt till sträng
träd = ET.fromstring(pageContents)
outsideTemp = int(tree.find('temp').text)
Flux = int(tree.find('flux').text)
# Några bra print uttalanden för felsökning
skriva ut ("Outside Temp:", outsideTemp, "F")
skriva ut ("sol värme Flux: ', flux, ' Btu/hr/ft ^ 2')
När vi har värdet temperatur och flux, är nästa steg att koppla in dem i ekvation 8 och lösa väggtjocklek. För att göra det, vi behöver veta några olika områden (som och på) så ska vi beräkna de första. Observera också att alla variabler som längd omvandlas så småningom till cm, det är därför vi kommer att använda Fusion API i nästa steg, och det använder cm som standardenhet.
### BERÄKNA VÄGGTJOCKLEK
# beräkna områdena, i ft ^ 2
Golvyta = (bredd * längd)
sideArea = 2*(length*wallHeight)
frontBackArea = 2*(width*wallHeight) + ((roofHeight-wallHeight) * bredd) roofArea = 2 * (((roofHeight-wallHeight) ** 2 + (bredd/2) ** 2) ** 0,5) * längd
totalArea = golvyta + sideArea + frontBackArea + roofArea
sunArea = roofArea ### område i solen approximeras för att taket området!
# Några bra print uttalanden för felsökning
skriva ut ("golvyta: ', golvyta, ' ft ^ 2')
skriva ut ("totalyta: ', totalArea, ' ft ^ 2')
skriva ut ("Sun-området:", sunArea, ' ft ^ 2')
# konvertera ft till cm
wallHeight = wallHeight * 30.48
roofHeight = roofHeight * 30.48
bredd = bredd * 30.48
längd = längd * 30.48
# flux mäts i Btu/hr/ft ^ 2
isolering = (totalArea * (insideTemp - outsideTemp)) / (sunArea * effektiviteten * flöde * 6.5)
skriva ut ("isoleringstjocklek: ', isolering,"inches")
# konvertera tum till cm
isolering = isolering * 2,54
Genom denna punkt, alla växthusgaser dimensionerna bör definieras, och nästa steg är att faktiskt generera växthus modell.