Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Jean

Pages: 1 ... 29 30 [31] 32 33 ... 41
451
Astrobasic / new command: popup
« on: December 16, 2020, 12:11:52 PM »
from the help:

[popup]
Syntax: popup(int x, int y, char options[$], label onclick, char default);
Action: present a popupmenu. If default >= 0 that entry will be selected.

Example:
Code: [Select]
window(666, 666);
char s[99];
int n;
button(0,0, "Test", test);
run;

:test;
  popup(99, 99, "one|two|three", test1);
  return;

:test1;
  strset(s, "%d %d", n, menunumber);
  setcaption(s);
  n += 1;
  return;

452
That is why planetdance is no open source, people could get hurt reading all my code haha.

Congrats Vivian, for me this is a gift, other people making scripts for themselves.

What error did you get when using :searchhouse ? Maybe 'nested if'?

I don't mind sharing the codes but it's messy inside hahaha which was why Jean had a difficult time figuring out what I was trying to do  ;D ;D ;D

453
General Astrology Topics / Re: The Chinese Sky
« on: December 12, 2020, 05:07:18 PM »
Sure, why not. Take it easy.

454
General Astrology Topics / Re: The Chinese Sky
« on: December 12, 2020, 08:55:06 AM »
Hi Kate,

Ed is right, we are programmers, we need numbers, the divisions in longitude. :)
And some names or something, maybe even glyphs or something?

455
General Astrology Topics / Re: The Chinese Sky
« on: December 08, 2020, 08:39:51 PM »
Welcome Kate,
Planetdance uses the swiss ephemeris for calculations, results are in longitudes from 0 to 360, mostly translated to 12 signs of 30 degrees.
There are no methods for other divisions. That would have to be programmed, and it would need the data how to divide the circle.
And i'm confused, you say the zodiac is 28 houses but then you talk about the housesystem. Do you want another zodiac or another housesystem?

456
Hi Vivian,

Finally found the time to have a decent look at your code. First i wasn't sure which planet you wanted the houseposition of but then it became clear finally. :)
I am very pleased to see your code, using switch() and things like if (P2[k] = map1[n] and P1[k] in map1 and (As[k]=3 or As[k]=1))
My compliments!

This may be what you want?

Code: [Select]
real jd, lon, lat, zone, jd0, jd1, jd2, v, houses[HOUSES], planet[PLANETS];
int i, w,  time[6], n, m, p, map[7] = { MOON, MARS, MERCURY, JUPITER, VENUS, SATURN, SUN }, map1[7] = { SATURN, JUPITER, MARS, SUN, VENUS, MERCURY, MOON };
char pos[PLANETS], place[99], s[256], wala[600]="", csv[600], csv2[600], ds[22], ts[22], timestr[22], center = 1, inifile[256] = "planhour.ini", textonly;
window(380, 600);
menu(0, "Close", close);
menu(0, "Go", go);
menu(0, "Place", place);
menu(0, "Help", NULL);
menu(0, "csv", csv);
menu(4, "English", help);
menu(4, "Nederlands", helpnl);
jd = getsystemtime(time);
getdefaultplace(place, lon, lat, 0); ` 0 returns code, needed for gettimezone
timetostring(time, timestr, ts, 0);
@load;
onclose(save);
edit(10, 0, 100, timestr, NULL);
checkbox(150, 0, "Center", center, go);
checkbox(250, 0, "Text only", textonly, go);
text(0, 50, width, height - 50, 0, 0, NULL);
texttab(0, 0, 20);
@putplace;
@go;
run;

:putplace;
  strcpy(s, place);
  strcmd(5, ',', s);
  putstring(5, 30, s);
  return;
 
:place;
  if (getplace(place, lon, lat, 1) = 1)
    {
    zone = gettimezone(place, jd, 1);
    @putplace;
    @go;
    }
  return;

:go;
  set(time, 0);
  timefromstring(timestr, time[0], time[1], time[2], 0);
  jd = timetojulian(time);                                  ` start search for sunrise at midnight
  n = @dayofweek(jd);                                       ` monday = 0

  zone = gettimezone(place, jd, 1);                         ` timezone for start of day
  jd -= zone;                                               ` convert to ut
  jd0 = getriseset(jd, SUN, 1, lon, lat, center, "");                ` sunrise in ut
  jd1 = getriseset(jd0, SUN, 0, lon, lat, center, "");               ` next sunset
  jd2 = getriseset(jd1, SUN, 1, lon, lat, center, "");              ` sunrise next day
  zone = gettimezone(place, jd0, 0);                                ` take zone at sunrise
  p = map[n];
  n = 0; for (n < 7)
    {
    if (p = map1[n]) break;
    }
  m = 1;
  textclear(0);

  int sign, n2, n3, hows;
  char rango[5];
  move(wala, csv, 599);
  move(wala, csv2, 599);
  strset(csv, "Day time%n%s",timestr);
 
  command(FUNCTION, 49, textonly, 0);
  v = (jd1 - jd0) / 12;                                  ` daytime
  i = 0; for (i < 12)
    {
    jd = jd0 + i * v;
    calculate(0, jd, lon, lat, -1);              ` calculate horoscope using jd
                 char t[99], u[99];
               n2=n;
          @hanapsign;                          `get sign of planet n; check if Ruler, Exalted, Detriment, Fall
               n3=n;
          @hanaphouse;                          `get house of planet n
          @hanapaspects;                          `get aspects of planet n
gethousepos(0, pos);
    juliantotime(jd + zone, time);                        ` report local time
    timetostring(time, ds, ts, 0);
    strset(s, "%2d,%t%s,%s,%p,%d,%i,%s, - %s", m, ds, ts, map1[n], pos[map1[n]] + 1, sign, rango, t);
    strset(csv,"%s%n%s,%2d,%p,%i,%s,h,-%s",csv,ts,m,map1[n],sign,rango,t);
    strset(t, "");
    textadd(0, s);
    strset(s, "");

    m += 1;
    n = (n + 1) % 7;
    }
  strset(csv2,"%nNight time");
  v = (jd2 - jd1) / 12;                                   ` nighttime
  i = 0; for (i < 12)
    {
    jd = jd1 + i * v;
    calculate(0, jd, lon, lat, -1);              ` calculate horoscope using jd
               n2=n;
          @hanapsign;                             `get sign of planet n
          @hanaphouse;                            `get house of planet n
               strset(t," ");
          @hanapaspects;                          `get aspects of planet n
                 
    juliantotime(jd + zone, time);                        ` report local time
    timetostring(time, ds, ts, 0);
    strset(s, "%2d,%t%s,%s,%p,%i,%s, - %s", m, ds, ts, map1[n], sign, rango, t);
    strset(csv2,"%s%n%s,%2d,%p,%i,%s,h,-%s",csv2,ts,m,map1[n],sign,rango,t);
    strset(t, "");
    textadd(0, s);
    strset(s, "");
   
    m += 1;
    n = (n + 1) % 7;
    }

  textshow(0);
  return;

#dayofweek(real jd)
{
return (((jd - 2433282 - 1.5) % 7) + 7) % 7;
}


:hanapsign;
  getplanets(0, planet);
  int sign2;
  switch(n2)
           {
           :0;
              sign=planet[6]/30;
                    if (sign=9 or sign=10) {strset(rango, "R");}
                    else {if (sign=3 or sign=4) {strset(rango, "D");}
                    else {if (sign=6) {strset(rango, "E");}
                    else {if (sign=0) {strset(rango, "F");}
                    else {strset(rango, " -");  }}}}
              break;
           :1;
              sign=planet[5]/30;
                    if (sign=11 or sign=0) {strset(rango, "R");}
                    else {if (sign=5 or sign=2) {strset(rango, "D");}
                    else {if (sign=3) {strset(rango, "E");}
                    else {if (sign=9) {strset(rango, "F");}
                    else {strset(rango, " -");  }}}}
              break;
           :2;
              sign=planet[4]/30;
                    if (sign=0 or sign=7) {strset(rango, "R");}
                    else {if (sign=6 or sign=1) {strset(rango, "D");}
                    else {if (sign=9) {strset(rango, "E");}
                    else {if (sign=3) {strset(rango, "F");}
                    else {strset(rango, " -");  }}}}
              break;
           :3;
              sign=planet[0]/30;
                    if (sign=4) {strset(rango, "R");}
                    else {if (sign=10) {strset(rango, "D");}
                    else {if (sign=0) {strset(rango, "E");}
                    else {if (sign=6) {strset(rango, "F");}
                    else {strset(rango, " -");  }}}}
              break;
           :4;
              sign=planet[3]/30;
                    if (sign=1 or sign=6) {strset(rango, "R");}
                    else {if (sign=7 or sign=0) {strset(rango, "D");}
                    else {if (sign=11) {strset(rango, "E");}
                    else {if (sign=5) {strset(rango, "F");}
                    else {strset(rango, " -");  }}}}
              break;
           :5;
              sign=planet[2]/30;
                    if (sign=2 or sign=5) {strset(rango, "R");}
                    else {if (sign=8 or sign=11) {strset(rango, "D");}
                    else {if (sign=5) {strset(rango, "E");}
                    else {if (sign=11) {strset(rango, "F");}
                    else {strset(rango, " -");  }}}}
              break;
           :6;
              sign=planet[1]/30;
              if (sign=3) {strset(rango, "R");}
                    else {if (sign=9) {strset(rango, "D");}
                    else {if (sign=1) {strset(rango, "E");}
                    else {if (sign=7) {strset(rango, "F");}
                    else {strset(rango, " -");  }}}}
              break;
           }
  return;

:hanaphouse;
$
  gethousepos(0, houses);
  char hows2[99];
  switch(n3)
           {
           :0;hows=houses[6]; break;              `ngek :(
           :1;hows=houses[5]; break;
           :2;hows=houses[4]; break;
           :3;hows=houses[0]; break;
           :4;hows=houses[3]; break;
           :5;hows=houses[2]; break;
           :6;hows=houses[1]; break;
           }
  strset(hows2, "%d", house);
$
  return;

:hanapaspects;
              char P1[256], P2[256], As[256];                   ` get aspects
                 int total = getaspects(0, P1, P2, As), k, p1, p2, as;
                 k = 0; for (k < total)
                 {
                     p1 = P1[k];   ` first planet
                     p2 = P2[k];   ` second planet
                     as = As[k];   ` aspect

                     if (P1[k] = map1[n] and P2[k] in map1 and (As[k]=3 or As[k]=1))
                        {
                        strset(u, ",%e,%p", as, p2);
                        strcat(u, t);
                        strcpy(t,u);
                        }
                     if (P1[k] = map1[n] and P2[k] in map1 and As[k]!=3 and As[k]!=1)
                        {
                        strset(u, ",%e,%p", as, p2);
                        strcat(t, u);
                        }
                     if (P2[k] = map1[n] and P1[k] in map1 and (As[k]=3 or As[k]=1))
                        {
                        strset(u, ",%e,%p", as, p1);
                        strcat(u, t);
                        strcpy(t,u);
                        }
                     if (P2[k] = map1[n] and P1[k] in map1 and As[k]!=3 and As[k]!=1)
                        {
                        strset(u, ",%e,%p", as, p1);
                        strcat(t, u);
                        }
                 }
  return;
 
:close;
  quit;

:load;
  fileopen(inifile, FILEREADAB);
  fileread(center);
  fileread(textonly);
  fileread(place);
  fileread(lon);
  fileread(lat);
  fileclose;
  return;

:save;
  fileopen(inifile, FILEWRITEAB);
  filewrite(center);
  filewrite(textonly);
  filewrite(place);
  filewrite(lon);
  filewrite(lat);
  fileclose;
  return;

:csv;
  fileopen("receptionist.csv", FILEWRITE);
  filewrite(csv);
  filewrite(csv2);
  fileclose;
  return;
 
:help;
  help("Help Planetary hours", "Lists Planetary hours, enter a date and press Go.
'Center' means rising or setting of disc center, else rising or setting of lower limb of disc.

Export to MsExcel:
1. Click on 'csv'.
2. File will be created - C:\planetdance\receptionist.csv.
3. Open file C:\planetdance\receptionist.csv using MsExcel.
4. (ctrl+A) change font to planetdance
   or
4. Select all (ctrl+A), copy(ctrl+c).
5. Open another file C:\planetdance\rsked.xltm
      (macro enabled template file for stored formats).
6. Paste special - values (paste values)
7. 'Save as' to save changes.
8. 'csv' will not export to file C:\planetdance\receptionist.csv while the file is currently open in MsExcel.
9. Close the file first, then click 'csv'.

To do list:
1. done - add sign
2. done - evaluate if ruler, exalted, detriment or fall
3. add house - ngek :(
4. done - add aspects
5. sort aspect trine, sextine, conjunct, square, opposition
6. done - export to csv (MsExcel)
7. done - create template rsked.xltm to store formatting.


"
);
  return;

:helpnl;
  help("NL Help Planetaire uren", "Geeft Planetaire uren weer, voer een datum in en druk op Start.
'Center' betekent stijgen of ondergaan van het midden van de schijf, anders stijgen of ondergaan van het onderste deel van de schijf.");
  return;

457
@Ed, Vivian already sent me some code.
@Vivian, I'll be happy to help too if you're stuck.

458
Hi Vivian

Here's a gethousepos() example, i added it to the help.

Code: [Select]
window(333, 333);
gettransit(0, -1);
char pos[PLANETS], s[99];
gethousepos(0, pos);
int i = 0; for (i < ASCENDANT)
  {
  strset(s, "%s is in house %d", planetname[i], pos[i] + 1);
  putstring(0, i * 20, s);
  }
run;

459
Planetdance for windows / Re: Ability to add user defined points
« on: December 03, 2020, 06:23:17 PM »
Are you gonna reply to this or did i write all that for nothing?

460
Classic, Medieval, Vedic / Re: Ed Greek Horoscope
« on: December 01, 2020, 09:27:22 PM »
Ik dacht dat je vroeg om een optie om de sect te veranderen. Maar je bedoelt eigenlijk pijltjes om de tijd te veranderen. Dat vind ik dan wel legitiem.

461
Classic, Medieval, Vedic / Re: Ed Greek Horoscope
« on: December 01, 2020, 06:32:47 PM »
my advice in the first place.
You can also duplicate a chart.

462
Planetdance for windows / Re: Ability to add user defined points
« on: December 01, 2020, 11:43:29 AM »
Yes and no, there are no additional points besides those in options - objects.
However if you have programming knowledge you can make your own module. See for instance time tools phaethon ephemeris.

Here is a list with all ephemeris data astrodienst has https://www.astro.com/ftp/swisseph/ephe/seasnam.txt
You have to download ephemeris files for the bodies you want.
I could make a general interface in the language to support such extra files, but you'd have to make your own scripts with it, it won't be integrated into the rest of planetdance.
In fact i just made such an interface:

From the help:
getbody

Syntax: real getbody(int n, real jd, real inf[2]);
Action: calculates body n, for julian day jd, returns longitude, and puts speed and declination into inf.
Example, this one calculates Nessus:
Code: [Select]
int time[6];
real jd, p, inf[2];
jd = getsystemtime(time);
p = getbody(17066, jd, inf);
run;


463
Classic, Medieval, Vedic / Re: Ed Greek Horoscope
« on: November 30, 2020, 08:42:21 PM »
For me this touches a important issue. It's the same as a planet in the first or last degree of a sign close to ingress. A minute later or earlier and the sign changes. I do admit the validity of the request but this is just the way it works. You would not ask me to give an option to make 29.59 aries into 00.01 taurus now would you? :)

Maybe Ed is willing to give such an option in your case but this is how it looks to me. Why don't you change the birthtime a bit if you feel someone is definitely night or day sect?

464
This is actually a bug, you are not supposed to be able to maximize those windows. I didn't understand that pic at all. I only just saw this myself.  ;D

- Removed incorrect Maximize option on some windows.

465
I made this change to put checkboxes for node / pars / parallax in the statusbar but completely forgot about the live transit.
I don't think there's room for both. If you want to keep the live transit, go to options - settings - general and uncheck Calculation 'show these in statusbar'.
There's just not enough room for both.

Pages: 1 ... 29 30 [31] 32 33 ... 41