Archaeoastronomy and Sketchup II
-
Chris:
A very similar request:
http://forums.sketchucation.com/viewtopic.php?f=323&t=27477in which a "Face sun" plug-in I needed was kindly resolved by Thomasthomas:
http://forums.sketchucation.com/viewtopic.php?f=323&t=27499
Today he made a plug-in in which if a plane is selected, it would face directly to the current sun position. Can this plug-in be of any use to start a "Face star" script? Regards.
@chris fullmer said:
Yes, it can definnitely be done. It just might be a lot of work. And I'm still trying to comprehend what you need exactly. I think you had mentioned earlier that you wanted to rotate buildings to point at a certain celestial body. That's fine, if the angles can be determined from your data (which I know it can). So what star do things align to? Is it possible to generate the coordinates automatically or read them from somewhere? Or does it have to be entered by hand?
I think what my brain is unseure of is how does the data you have match up with the model? if you have a series of coordinates, how would you tell the model what pieces align to what coordinates? Any thoughts on how that would be achieved?
Chris
-
I will modify my plugin to accommodate your requirements if I have time this weekend, and you provide the following:
- Names of variable to be input (information regarding north is here, or assumed as yaxis from point of origin as below):
- Equations that calculate a point as x, y, z coordinates from the entire model's origin as 0,0,0 using the variables you identify above:
The plugin should work by 1. your selection of the component to be rotated along its zaxis, 2. inputing at a prompt your variables, and 3. the component will rotate and point to the coordinates you provide.
Btw, I don't understand the practical value of rotating a model of a astronomical device within the model's computer space. While what is displayed may be accurate, it may as well be arbitrary unless included with the model of the device, the model of the actual place of the device. I didn't read your entire post, as I am intellectually challenged when it comes to lengthy esoteric discussions (unless they are my own :-), but glad to help if possible.
-
Hi Honoluludesktop.
Thank you for willing to spend some time in the development of this plug-in. It is of no interest or use to place stars in the model. The interest is to rotate a plane located in a specific geographical place and make it face a specific star. Its functionality would be like the “Face Sun” plug-in that was created today:
http://forums.sketchucation.com/viewtopic.php?f=323&t=27499
but instead of “Face Sun” it would be “Face Star”.
Also as you state, there is no practical value on rotating the entire model of an astronomical device. What I want to do is rotate a single plane of this astronomical device (not all of it) towards a star.
I will provide with all you are requesting. But before I do and just to be sure, I want to know if you already read this part of the thread:
http://forums.sketchucation.com/viewtopic.php?f=180&t=27480#p238110
in which trough images the Azimuth and Altitude coordinates system is explained. If you have not let me know if you will still need the same things you are requesting or something different. Regards.@honoluludesktop said:
I will modify my plugin to accommodate your requirements if I have time this weekend, and you provide the following:
- Names of variable to be input (information regarding north is here, or assumed as yaxis from point of origin as below):
- Equations that calculate a point as x, y, z coordinates from the entire model's origin as 0,0,0 using the variables you identify above:
The plugin should work by 1. your selection of the component to be rotated along its zaxis, 2. inputing at a prompt your variables, and 3. the component will rotate and point to the coordinates you provide.
Btw, I don't understand the practical value of rotating a model of a astronomical device within the model's computer space. While what is displayed may be accurate, it may as well be arbitrary unless included with the model of the device, the model of the actual place of the device. I didn't read your entire post, as I am intellectually challenged when it comes to lengthy esoteric discussions (unless they are my own , but glad to help if possible.
-
construsol, I took a quick looked at your link, and as I said, it is more involved then my attention span:-). I am not one of the rugy / math wizards here, but have written a plugin that does as I posted above. I will try to help you, but you can't depend on me to understand the math, or spend too much time on your project. Incidentally, no trig, differentials, factoring, etc. as the extent of my experience with ruby math is limited to equations using basic arithmetic. Sorry, no guarantees, just an offer of free help.
-
Any help is greatly welcomed. As you posted above, I can settle for a plug-in that can point a SU component along its Zaxis to any point selected within the SU model space. That point would be determined, as also explained above, by the two coordinates Azimuth and Altitude that take the north and horizontal plane (both included in Sketchup space) as it's reference.
To make things simpler, the coordinates of the stars would be input by hand in a SU dialog box (or similar). No need for SU to calculate nothing more, I can get this coordinates with other software for now.
@honoluludesktop said:
construsol, I took a quick looked at your link, and as I said, it is more involved then my attention span:-). I am not one of the rugy / math wizards here, but have written a plugin that does as I posted above. I will try to help you, but you can't depend on me to understand the math, or spend too much time on your project. Incidentally, no trig, differentials, factoring, etc. as the extent of my experience with ruby math is limited to equations using basic arithmetic. Sorry, no guarantees, just an offer of free help.
-
OK, assuming the model's yaxis is north, and at the origin of the model space, I will send you a plugin the request the coordinates of a point on a line between the star and the origin of the model space.
-
just a small thing. The Azimuth angle starts at north, so, can the SU north be used as this starting point? (The orange line called "North angle" in the Location Tab of the Model Info window) instead of the Y axis of the model? Hope this can be done. If not, the Y axis of SU space is fine.
@honoluludesktop said:
OK, assuming the model's yaxis is north, and at the origin of the model space, I will send you a plugin the request the coordinates of a point on a line between the star and the origin of the model space.
-
Because the plugin I am modifying contains a lot of stuff I am working on, I will pm it to you for your use only. Its too hard to clean up, and embarrassing to post here as I just left everything in. Use "my_star_pointer" beta v 1.0 at your own risk. Seems to worked on my WinXP pc, good luck with your school work, hope this is of help.
Btw, because you supply the coordinates, north shouldn't matter to the plugin, I think:-)
-
Hi.
As posted in the images above, the star coordinates are two, and your Plug-in asks for three. Starting from the 0,0,0 origin of the SU space and the two star coordinates is enough to get the vector that points towards the star and thus make a plane point to that direction by aligning it's Zaxis to this vector. Thank you anyway for trying to help, I appreciate it.
@honoluludesktop said:
Because the plugin I am modifying contains a lot of stuff I am working on, I will pm it to you for your use only. Its too hard to clean up, and embarrassing to post here as I just left everything in. Use "my_star_pointer" beta v 1.0 at your own risk. Seems to worked on my WinXP pc, good luck with your school work, hope this is of help.
Btw, because you supply the coordinates, north shouldn't matter to the plugin, I think:-)
-
construsol, Guess I misunderstood, when you wrote this:
"To make things simpler, the coordinates of the stars would be input by hand in a SU dialog box (or similar). No need for SU to calculate nothing more, I can get this coordinates with other software for now."
I took that to mean you had software to calculate the star's coordinates as a point (in the form of x,y,z) in space. As said before, if you provide the equationsthat solve for the coordinate point using azimuth and altitude, then the plugin can be modified to work as you need it. Please read my previous post about the level of math, and get some math guy to help you.
Btw, the last picture in the set you posted seemed to be a list of coordinate points. What do those numbers refer to?
-
I might be able to help a bit with the math, although I'm definitely no mathmatician.
@honoluludesktop:
if I was able to get the Point3d, would your plugin be able to handle the rest? -
The plugin utilizes point3d. For his purpose, it requires equations in the form:
coordinate x for 3d point as x = equation as function of variables
coordinate y for 3d point as y = equation as function of variables
coordinate z for 3d point as z = equation as function of variablesSorry to be redundant, just trying to be sure that we communicate. As previously posted keep the math to algebra. Btw, you don't need the location of the star, only a point on the line to it.
-
Hi again.
There is no need to have a point in x,y,z space representing a star, just a vector that is directed to it. If this vector starts at 0,0,0 of the Sketchup space you only need two angle measures to direct it to the star.
Let's say that an astronomy software tells that a certain star of interest has an Azimuth of 51.8 degrees and a Altitude of 42.0 degrees, and I want a plane's Zaxis to point to it. So we have the coordinates, a plane and a North (orange line in Fig. 1). Please note that the north can be at a random angle from the green and red axis.
Then, starting from the north, a vector fixed in one of it's end to 0,0,0 starts to rotate around the blue axis counterclockwise (towards the east) until rotating 51.8 degrees. That is the Azimut of the star (Fig. 2). The vector is still in the horizontal plane.
Then, this vector still fixed to 0,0,0 rises 42.0 degrees from the horizontal. That is the Altitude of the star (Fig. 3). Now the vector is pointing towards the star of interest.
Now what is left is to align the Zaxis of the plane with the vector (Fig. 4).
That's it. Just make rotate a vector around two coordinates and align the Zaxis of a plane to it.
-
construsol, What you say is true, but the existing plugin is written to use 3d Cartesian coordinate information. Only with the equations to change your variables into coordinates values (x,y,z) can it be easily adapted. I am willing to adapt the existing plugin, but not incline to write a new plugin. Sorry.
It's best that I stop posting, and let someone more capable help you.
-
Looking at this last diagram of yours, it looks like you want a script that orients a face to be perpendicular to a vector that is pointing towards a star. Is that the correct idea?
The only tricky part is really figuring out how you have your data collected about what that vector is. If it requires math using old calendar dates, you'll need to find that info on how that math is accomplished (maybe you already postefd that?, I have not been following too closely). I think none of us want to learn how to calculate the position of the stars 8,000 years ago. You need to provide that expertise somehow. So if you had a link that explained it all out mathematically and simply (most of us are not serious mathematicians), that would be great.
And lastly, you must have a list of stars and dates you want to examine? Or you plan on entering that in manually? Or something. But you need to figure out how your data is organized and how you can get it into a useable list, that can be read by a computer.
Again, this is all very do-able (I've already written a script that orients a face perpendicular to any given vector called perpendicular faces, for example). Just help us with how to calculate the vectors better, and say how you want to input your data.
-
That is the correct idea when you say that what I want is a script that orients a face to be perpendicular to a vector that is pointing towards a star. On the other hand, you don’t have to learn how to calculate the position of the stars thousands of years ago. It would be unfair of me that besides having your invaluable help making a script to expect from you to learn astronomy. I have the list of stars and its coordinates, so I will provide them and I enter them manually in SU. So no complex math, no astronomy, no mathematical expertise from your part, nothing to calculate, even forget all the astronomy theme of the previous post. Just need a script that tells a vector to rotate around blue axis given an angular measure and then raise that vector with another angular measure as I explained with the pictures in my last post, and lastly align the Zaxis of a given plane to the vector.
@chris fullmer said:
Looking at this last diagram of yours, it looks like you want a script that orients a face to be perpendicular to a vector that is pointing towards a star. Is that the correct idea?
The only tricky part is really figuring out how you have your data collected about what that vector is. If it requires math using old calendar dates, you'll need to find that info on how that math is accomplished (maybe you already postefd that?, I have not been following too closely). I think none of us want to learn how to calculate the position of the stars 8,000 years ago. You need to provide that expertise somehow. So if you had a link that explained it all out mathematically and simply (most of us are not serious mathematicians), that would be great.
And lastly, you must have a list of stars and dates you want to examine? Or you plan on entering that in manually? Or something. But you need to figure out how your data is organized and how you can get it into a useable list, that can be read by a computer.
Again, this is all very do-able (I've already written a script that orients a face perpendicular to any given vector called perpendicular faces, for example). Just help us with how to calculate the vectors better, and say how you want to input your data.
-
Aha! That can be done, and rather easily (more or less). I won't be able to get to it tonight, but if no one else gets to it, I'll try to do it by early next week.
Chris
-
Great!
@chris fullmer said:
Aha! That can be done, and rather easily (more or less). I won't be able to get to it tonight, but if no one else gets to it, I'll try to do it by early next week.
Chris
-
@chris fullmer said:
I think none of us want to learn how to calculate the position of the stars 8,000 years ago.
Besides it cannot be done in Ruby. Standard Ruby (and Sketchup Embedded Ruby,) use the included class Time which has an initial date of January 1, 1970 CE(AD). I have tried to set Sketchup dates before this, and the app does not allow it. (In addition, the MAX year is 2037.)* The ShadowInfo['ShadowTime'] attribute takes and returns only Time class. (It actually does not not raise an Exception if you say give it an Integer, but the value will be unchanged.)
This post actually began over at GoogleGroups, and there I posted some info for the requester, that if he wanted to be historically accurate, the plugin would need to ignore Sketchup's built-in Sun positioning and Time keeping.
The plugin would need to keep it's own date and time (with a dialog to set them,) and the Moon (Luna) and Sun (Sol) would be treated as just stars (like all the rest.) In addition, the plugin would need to use the Ruby Extended class Date, which can go back 6723 years MAX, as the initial date is January 1, 4713 BCE (4712 BC, accounting for year 0).- I would think this implies that future versions of software utilizing Ruby should move to using the Date class (and it's DateTime subclass,) sometime in the next 27 years.
I did a bit of checking, I'm looking for calculation software that runs on remote web servers, so a plugin could query that server for a particuler star's RA and DEC, from a specific geolocation and date; rather than do it itself.
I did find some code, at an Italian University but it's written in IPL, and would need to be translated to C or Ruby. I don't know IPL.
-
Dan, no astronomy, no calculation, no ancient dates are needed, no RA and DEC anymore. I'm using another coordinate system that uses SU horizontal plane and north. Please read this post:
http://forums.sketchucation.com/viewtopic.php?f=180&t=27480&start=15#p238823
I will do all the astronomy, calendar calculations and math. Just need a script that tells a vector to rotate around blue axis given an angular measure and then raise that vector with another angular measure as I explained with the pictures in the post, and lastly align the Zaxis of a given plane to the vector. Thanks Dan and all you people that are investing their time to help.
@dan rathbun said:
@chris fullmer said:
I think none of us want to learn how to calculate the position of the stars 8,000 years ago.
Besides it cannot be done in Ruby. Standard Ruby (and Sketchup Embedded Ruby,) use the included class Time which has an initial date of January 1, 1970 CE(AD). I have tried to set Sketchup dates before this, and the app does not allow it. (In addition, the MAX year is 2037.)* The ShadowInfo['ShadowTime'] attribute takes and returns only Time class. (It actually does not not raise an Exception if you say give it an Integer, but the value will be unchanged.)
This post actually began over at GoogleGroups, and there I posted some info for the requester, that if he wanted to be historically accurate, the plugin would need to ignore Sketchup's built-in Sun positioning and Time keeping.
The plugin would need to keep it's own date and time (with a dialog to set them,) and the Moon (Luna) and Sun (Sol) would be treated as just stars (like all the rest.) In addition, the plugin would need to use the Ruby Extended class Date, which can go back 6723 years MAX, as the initial date is January 1, 4713 BCE (4712 BC, accounting for year 0).- I would think this implies that future versions of software utilizing Ruby should move to using the Date class (and it's DateTime subclass,) sometime in the next 27 years.
I did a bit of checking, I'm looking for calculation software that runs on remote web servers, so a plugin could query that server for a particuler star's RA and DEC, from a specific geolocation and date; rather than do it itself.
I did find some code, at an Italian University but it's written in IPL, and would need to be translated to C or Ruby. I don't know IPL.
Advertisement