Here is the latest about the function ang_dec in lsp and arx
(defun ang_dec (/ grad mnt seg uniang)
(if (not (getenv "ArcDrawAngleInput"))
(setenv "ArcDrawAngleInput" "1"))
(setq uniang (atoi (getenv "ArcDrawAngleInput")))
(if (null uniang)
(setq uniang 1))
(if (= uniang 1)
(progn (setq grad (getreal "\nDegrees: ")
mnt (getreal "\nMinutes: ")
seg (getreal "\nSeconds: " ))
(+ grad (/ mnt 60.0) (/ seg 3600.0)))
(setq grad (* (/ (getreal "\nDecimal degrees: ") 400) 360))))
static ads_real ang_dec()
{
ads_real delta;
char var[1024];
if (acedGetEnv("ArcDrawAngleInput",var) != RTNORM) {
acedSetEnv("ArcDrawAngleInput","1");
acedGetEnv("ArcDrawAngleInput",var);
}
switch (atoi(var)) {
case 1:
acutPrintf("\nAngle input format: DMS [sexagesimal]\n");
ads_real grad,mnt,seg;
acedInitGet(RSG_NONEG,"");
if (acedGetReal("\nDegrees: ",&grad)==RTNORM) {
acedInitGet(RSG_NONEG,"");
if (acedGetReal("\nMinutes: ",&mnt)==RTNORM) {
acedInitGet(RSG_NONEG,"");
if (acedGetReal("\nSeconds: ",&seg)==RTNORM) {
delta=grad+mnt/60.0+seg/3600.0;
return delta;
}//if seconds
}//if minutes
}//if degrees
else {return FALSE;}
break;
case 0:
acutPrintf("\nAngle input format: Decimal Degrees [centesimals]\n");
ads_real decDeg;
acedInitGet(RSG_NONEG,"");
if (acedGetReal("\nDecimal degrees: ",&decDeg)==RTNORM){
delta=decDeg/400*360;
return delta;
}//if decimal degrees
else {return FALSE;}
break;
}
}