From e9757ad815fec1026c69554d7b299172a39e898e Mon Sep 17 00:00:00 2001 From: iskrich Date: Thu, 14 Apr 2016 18:24:24 +0300 Subject: [PATCH 1/3] Init module for generation scripts --- website/scriptFactory.py | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 website/scriptFactory.py diff --git a/website/scriptFactory.py b/website/scriptFactory.py new file mode 100644 index 0000000..424c8d1 --- /dev/null +++ b/website/scriptFactory.py @@ -0,0 +1,57 @@ +#Generic for script.cel file +script = [ +'{\n', + 'time{utc "2015-01-01T00:01:24.0000"}\n', + 'select{object "Orbit-test-spacecraft"}\n', + 'center {time 5.0}\n', + 'goto { time 5.0 }\n', + 'follow{}\n', + 'lock{}\n', +'}' +] + +#Generic for orbit.ssc file +scriptSSC = [ +'"Orbit-test-spacecraft" "Sol"\n', +'{\n', +'\tClass "spacecraft"\n', +'\tMesh "orbit.3ds"\n', +'\tRadius 0.011\n', +'\tOrientation [ 180 1 0 0 ]\n', +'\tTimeline [\n', +'\t# Phase 3: Solstice mission\n', +'\t{\n', +'\tBeginning "2015 01 01 00:00:00"\n', +'\tEnding "2020 9 15 17:02:00"\n', +'\tOrbitFrame { EclipticJ2000 { Center "Sol/Earth" } }\n', +'\tSampledTrajectory { Source "orbit.xyzv" }\n', +'\t}\n', +'\t]\n', +'}\n', +] + + +def makeScript(beginDate,shipName): + #set new begin date + script[1] = 'time{utc "' + str(beginDate) + '"}\n' + #set new ship object + script[2] = 'select{object "' + str(shipName) + '"}\n' + + f = open("script.cel","w") + for line in script: + f.write(line) + +def makeSSCScript(beginDate, endDate, shipName): + #set new ship name + scriptSSC[0] = '"'+str(shipName)+'" "Sol"\n' + #set new begin/end date + scriptSSC[9] = '\tBeginning "' +str(beginDate)+'"\n' + scriptSSC[10] = '\tEnding "' +str(endDate)+'"\n' + + f = open("orbit.ssc","w") + for line in scriptSSC: + f.write(line) + +if __name__ == '__main__': + makeScript("2015 01 01 00:00:00","ORBIT") + makeSSCScript("2015 01 01 00:00:00","2016 01 01 00:00:00","ORBIT") From 9cafd02cbe6b437f2795e6ba06b91a1363d37242 Mon Sep 17 00:00:00 2001 From: iskrich Date: Thu, 21 Apr 2016 19:45:35 +0300 Subject: [PATCH 2/3] [WEB] Refactoring script generation module Replace templates Add default values --- website/scriptFactory.py | 96 +++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 41 deletions(-) diff --git a/website/scriptFactory.py b/website/scriptFactory.py index 424c8d1..2165e72 100644 --- a/website/scriptFactory.py +++ b/website/scriptFactory.py @@ -1,57 +1,71 @@ -#Generic for script.cel file -script = [ -'{\n', - 'time{utc "2015-01-01T00:01:24.0000"}\n', - 'select{object "Orbit-test-spacecraft"}\n', - 'center {time 5.0}\n', - 'goto { time 5.0 }\n', - 'follow{}\n', - 'lock{}\n', -'}' -] - -#Generic for orbit.ssc file -scriptSSC = [ -'"Orbit-test-spacecraft" "Sol"\n', -'{\n', -'\tClass "spacecraft"\n', -'\tMesh "orbit.3ds"\n', -'\tRadius 0.011\n', -'\tOrientation [ 180 1 0 0 ]\n', -'\tTimeline [\n', -'\t# Phase 3: Solstice mission\n', -'\t{\n', -'\tBeginning "2015 01 01 00:00:00"\n', -'\tEnding "2020 9 15 17:02:00"\n', -'\tOrbitFrame { EclipticJ2000 { Center "Sol/Earth" } }\n', -'\tSampledTrajectory { Source "orbit.xyzv" }\n', -'\t}\n', -'\t]\n', -'}\n', -] - - -def makeScript(beginDate,shipName): +from datetime import date, datetime + +def makeScript(shipName="ORBIT", beginDate=date.today().year): + script = [ + '{\n', + 'time{utc "2015-01-01T00:01:24.0000"}\n', + 'select{object "Orbit-test-spacecraft"}\n', + 'center {time 5.0}\n', + 'goto { time 5.0 }\n', + 'follow{}\n', + 'lock{}\n', + '}' + ] #set new begin date - script[1] = 'time{utc "' + str(beginDate) + '"}\n' + if (beginDate==date.today().year): #case when begin param default + script[1] = 'time{utc "' + str(beginDate) +'-01-01T00:01:24.0000'+'"}\n' + else: + script[1] = 'time{utc "' + str(beginDate) + '"}\n' + #set new ship object script[2] = 'select{object "' + str(shipName) + '"}\n' - + f = open("script.cel","w") for line in script: f.write(line) + return script -def makeSSCScript(beginDate, endDate, shipName): +def makeSSCScript(shipName="ORBIT",beginDate=date.today().year, endDate=date.today().year+1): + scriptSSC = [ + '"Orbit-test-spacecraft" "Sol"\n', + '{\n', + '\tClass "spacecraft"\n', + '\tMesh "orbit.3ds"\n', + '\tRadius 0.011\n', + '\tOrientation [ 180 1 0 0 ]\n', + '\tTimeline [\n', + '\t# Phase 3: Solstice mission\n', + '\t{\n', + '\tBeginning "2015 01 01 00:00:00"\n', + '\tEnding "2020 9 15 17:02:00"\n', + '\tOrbitFrame { EclipticJ2000 { Center "Sol/Earth" } }\n', + '\tSampledTrajectory { Source "orbit.xyzv" }\n', + '\t}\n', + '\t]\n', + '}\n', + ] #set new ship name scriptSSC[0] = '"'+str(shipName)+'" "Sol"\n' #set new begin/end date - scriptSSC[9] = '\tBeginning "' +str(beginDate)+'"\n' - scriptSSC[10] = '\tEnding "' +str(endDate)+'"\n' + + #when end/begin default + if (beginDate == date.today().year and endDate == beginDate+1): + scriptSSC[9] = '\tBeginning "' +str(beginDate)+'-01-01T00:01:24.0000"\n' + scriptSSC[10] = '\tEnding "' +str(endDate)+'-01-01T00:01:24.0000"\n' + else: + scriptSSC[9] = '\tBeginning "' +str(beginDate)+'"\n' + scriptSSC[10] = '\tEnding "' +str(endDate)+'"\n' f = open("orbit.ssc","w") for line in scriptSSC: f.write(line) + return scriptSSC if __name__ == '__main__': - makeScript("2015 01 01 00:00:00","ORBIT") - makeSSCScript("2015 01 01 00:00:00","2016 01 01 00:00:00","ORBIT") + makeScript() #return default script + makeSSCScript() #return default ssc script + + #and some custom scripts + makeSSCScript(beginDate="2015 01 01 00:00:00",endDate="2016 01 01 00:00:00",shipName="ORBIT") + makeScript(beginDate="2023 02 03 00:00:00") + makeScript(shipName="Orbital battlestation Death Star I") \ No newline at end of file From 50b4e01a03ec3ca504f7619ad6359f44d3a65d82 Mon Sep 17 00:00:00 2001 From: iskrich Date: Sat, 23 Apr 2016 23:17:21 +0300 Subject: [PATCH 3/3] [Web] Refactoring related with default values --- website/scriptFactory.py | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/website/scriptFactory.py b/website/scriptFactory.py index 2165e72..6203805 100644 --- a/website/scriptFactory.py +++ b/website/scriptFactory.py @@ -1,6 +1,12 @@ from datetime import date, datetime +"""Generate custom script +https://en.wikibooks.org/wiki/Celestia/Scripting +""" def makeScript(shipName="ORBIT", beginDate=date.today().year): + if (beginDate==date.today().year): + beginDate = str(beginDate) +'-01-01T00:01:24.0000'+'"}\n' + script = [ '{\n', 'time{utc "2015-01-01T00:01:24.0000"}\n', @@ -12,10 +18,7 @@ def makeScript(shipName="ORBIT", beginDate=date.today().year): '}' ] #set new begin date - if (beginDate==date.today().year): #case when begin param default - script[1] = 'time{utc "' + str(beginDate) +'-01-01T00:01:24.0000'+'"}\n' - else: - script[1] = 'time{utc "' + str(beginDate) + '"}\n' + script[1] = 'time{utc "' + str(beginDate) + '"}\n' #set new ship object script[2] = 'select{object "' + str(shipName) + '"}\n' @@ -25,7 +28,14 @@ def makeScript(shipName="ORBIT", beginDate=date.today().year): f.write(line) return script +"""Generate ssc script +https://en.wikibooks.org/wiki/Celestia/SSC_File +""" def makeSSCScript(shipName="ORBIT",beginDate=date.today().year, endDate=date.today().year+1): + if (beginDate==date.today().year): + beginDate = str(beginDate) +'-01-01T00:01:24.0000'+'"}\n' + endDate = str(endDate)+ '-01-01T00:01:24.0000'+'"}\n' + scriptSSC = [ '"Orbit-test-spacecraft" "Sol"\n', '{\n', @@ -49,12 +59,8 @@ def makeSSCScript(shipName="ORBIT",beginDate=date.today().year, endDate=date.tod #set new begin/end date #when end/begin default - if (beginDate == date.today().year and endDate == beginDate+1): - scriptSSC[9] = '\tBeginning "' +str(beginDate)+'-01-01T00:01:24.0000"\n' - scriptSSC[10] = '\tEnding "' +str(endDate)+'-01-01T00:01:24.0000"\n' - else: - scriptSSC[9] = '\tBeginning "' +str(beginDate)+'"\n' - scriptSSC[10] = '\tEnding "' +str(endDate)+'"\n' + scriptSSC[9] = '\tBeginning "' +str(beginDate)+'"\n' + scriptSSC[10] = '\tEnding "' +str(endDate)+'"\n' f = open("orbit.ssc","w") for line in scriptSSC: @@ -62,10 +68,9 @@ def makeSSCScript(shipName="ORBIT",beginDate=date.today().year, endDate=date.tod return scriptSSC if __name__ == '__main__': - makeScript() #return default script - makeSSCScript() #return default ssc script - + print makeScript() #return default script + print makeSSCScript() #return default ssc script #and some custom scripts - makeSSCScript(beginDate="2015 01 01 00:00:00",endDate="2016 01 01 00:00:00",shipName="ORBIT") - makeScript(beginDate="2023 02 03 00:00:00") - makeScript(shipName="Orbital battlestation Death Star I") \ No newline at end of file + print makeSSCScript(beginDate="2015 01 01 00:00:00",endDate="2016 01 01 00:00:00",shipName="ORBIT") + print makeScript(beginDate="2023 02 03 00:00:00") + print makeScript(shipName="Orbital battlestation Death Star I") \ No newline at end of file