Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions website/scriptFactory.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
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',
'select{object "Orbit-test-spacecraft"}\n',
'center {time 5.0}\n',
'goto { time 5.0 }\n',
'follow{}\n',
'lock{}\n',
'}'
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if(beginDate==null)
{
beginDate=DateTime.Now.Year
}
script = [

  • 'select{object "Orbit-test-spacecraft"}\n', + '{\n',
  • 'center {time 5.0}\n', + 'time{'+beginDate+'}\n',
  • 'goto { time 5.0 }\n', + 'select{object "Orbit-test-spacecraft"}\n',
  • 'follow{}\n', + 'center {time 5.0}\n',
  • 'lock{}\n', + 'goto { time 5.0 }\n',
    -'}' + 'follow{}\n',
    -] + 'lock{}\n',
  •   +  '}'
    
    -#Generic for orbit.ssc file + ]

#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)
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',
'\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

#when end/begin default
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__':
print makeScript() #return default script
print makeSSCScript() #return default ssc script
#and some custom scripts
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")