Author Topic: Convert minute to radian  (Read 4237 times)

0 Members and 1 Guest are viewing this topic.

Adesu

  • Guest
Convert minute to radian
« on: August 21, 2007, 05:07:58 AM »
Hi Alls,
here my code to get minute
Code: [Select]
(setq time (rtos (getvar "cdate") 2 6))
(setq minute (atoi (substr time 12 2)))
I got problem to convert, if variable minute = 45 it should display = pi, any one have a code to convert it, I hope don't use cond function, because too long syntax.

VVA

  • Newt
  • Posts: 166
Re: Convert minute to radian
« Reply #1 on: August 22, 2007, 06:01:17 AM »
Can be so
Code: [Select]
(atoi(menucmd "M=$(edtime,$(getvar,date),MM)"))

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Convert minute to radian
« Reply #2 on: August 22, 2007, 08:37:22 AM »
Not sure what you are looking for here.

Code: [Select]
(defun c:test()
  (defun dtor (d) (/ (* d pi) 180.0))
  ;;  get base 0 - 59
  (setq minu (atoi (substr (rtos (getvar "CDATE") 2 4) 7 2)))
  (setq minu (1+ minu)) ; 1 - 60
  (setq rad (dtor (* 6 minu)))
)
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

DEVITG

  • Bull Frog
  • Posts: 480
Re: Convert minute to radian
« Reply #3 on: August 22, 2007, 02:18:59 PM »
Hi Alls,
here my code to get minute
Code: [Select]
(setq time (rtos (getvar "cdate") 2 6))
(setq minute (atoi (substr time 12 2)))
I got problem to convert, if variable minute = 45 it should display = pi, any one have a code to convert it, I hope don't use cond function, because too long syntax.

Hi Ade , why do you mix time´s minutes with angle´s minute,?
And  furthermore , why 45 shall be PI?  If angle 180 Deg is PI.
Just for curiosity.

Gabo
   
Any way , could it be so??

Code: [Select]
(setq minute 45)

(if ( = minute 45 )
  (setq minute "pi")
  )

;; OR

(setq minute 45)

(if ( = minute 45 )
  (setq minute pi)
  )
Quote
;;;It ret
;;;
;;;45
;;;"pi"
;;;45
;;;3.14159
;;;; 4 forms loaded from #<editor "<Untitled-4> loading...">
;;;_$

Location @ Córdoba Argentina Using ACAD 2019  at Window 10

DEVITG

  • Bull Frog
  • Posts: 480
Re: Convert minute to radian
« Reply #4 on: August 22, 2007, 07:44:21 PM »
Hi,  there solution can be .



Code: [Select]
(defun min2rad (minu)
  (Setq rad-minute ( / (* pi 2 minu) 60)
  )

(defun sec2rad (second)
  (Setq rad-second ( / (* pi 2 second) 60)
  )


As I think , Adesu want to translate it to a analogic clock.





Location @ Córdoba Argentina Using ACAD 2019  at Window 10

Adesu

  • Guest
Re: Convert minute to radian
« Reply #5 on: August 23, 2007, 01:27:24 AM »
Hi devitg,CAB and VVA,
here my code with complite, it still got problem
Code: [Select]
(defun min2rad (minu)
  (Setq rad-minute ( / (* pi 2 minu) 60))
  )

(defun sec2rad (second)
  (Setq rad-second ( / (* pi 2 second) 60))
  )


 (defun dtor (d)
   (/ (* d pi) 180.0)
   )

(defun massoc (key alist / x nlist)                  ; Jaysen Long
  (foreach x alist
    (if
      (eq key (car x))
      (setq nlist (cons (cdr x) nlist))
      ) ; if
    )   ; foreach
  (reverse nlist)
  )
 
(defun create_clock ()
  (setq nlay "Minute Mark")                           ; 4).
  (setq lay (getvar "clayer"))
  (if
    (/= lay nlay)
    (command "_layer" "m" nlay "c" 1 "" "")
    )  ; if
  (setq loc '(0 0 0))
  (if (= loc nil)(setq loc '(0 0 0)))
  (setq p1 (polar loc 0 4.5))
  (setq p2 (polar p1 0 0.5))
  (command "_line" p1 p2 "")                           ; create line for minute mark
  (setq el1 (entlast))
  (command "_array"  el1 "" "p" loc 60 "" "")          ; array minute mark
  (setq nlay "Hour Mark")                              ; 4).
  (setq lay (getvar "clayer"))
  (if
    (/= lay nlay)
    (command "_layer" "m" nlay "c" 2 "" "")
    )  ; if
  (setq p3 (polar loc 0 4))
  (command "_line" p3 p2 "")                           ; create line for hour mark
  (setq el2 (entlast))
  (command "_array"  el2 "" "p" loc 12 "" "")          ; array hour mark
  (setq nlay "Second Arm")                             ; 4).
  (setq lay (getvar "clayer"))
  (if
    (/= lay nlay)
    (command "_layer" "m" nlay "c" 3 "" "")
    ) ; if
  (setq p4 (polar loc (* pi 0.5) 0))
  (setq p5 (polar loc (* pi 0.5) 5))
  (setvar "clayer" "Second Arm")
  (command "_pline" p4 "w" 0.05 0.05 p5 "")            ; create second arm
  (command "_redraw")                                  ; 4).
  (setq els (entlast))
  (setq nlay "Minute Arm")                             ; 4).
  (setq lay (getvar "clayer"))
  (if
    (/= lay nlay)
    (command "_layer" "m" nlay "c" 4 "" "")
    ) ; if
  (setq p6 (polar loc (* pi 0.5) 0))
  (setq p7 (polar loc (* pi 0.5) 4))
  ;(setvar "clayer" "Minute Arm")
  ;(command "_pline" p6 "w" 0.1 0.1 p7 "")        ; create minute arm
  ;(command "_redraw")                              ; 4).
  (setq elm (entlast))
  (setq nlay "Hour Arm")                               ; 4).
  (setq lay (getvar "clayer"))
  (if
    (/= lay nlay)
    (command "_layer" "m" nlay "c" 5 "" "")
    ) ; if
  (setq p8 (polar loc (* pi 0.5) 0))
  (setq p9 (polar loc (* pi 0.5) 3))
  (setvar "clayer" "Hour Arm")
  ;(command "_pline" p8 "w" 0.2 0.2 p9 "")        ; create hour arm
  ;(command "_redraw")                              ; 4).
  ;(setq elh (entlast))
  (command "_zoom" "e")
  (princ)
  )  ; defun

(defun c:dac (/ )
  (create_clock)
  (setq i 1000)
  (setq ad (getvar "angdir"))
  (if
    (= ad 0)
    (setvar "angdir" 1)
    )  ; if
  (repeat                                               ; 3).
    i
    (setq time (rtos (getvar "cdate") 2 6))
    (setq second (atoi (substr time 14 2)))
    (setq sang (sec2rad second))
   
    (setq sses (entget els))
    (setq mass (massoc 10 sses))
    (setq pt1s (car mass))
    (setq pt2s (cadr mass))
    (setq angs (angle pt1s pt2s))
    (command "_rotate" els "" loc "r" angs sang "")
    (setq els (entlast))   

    ;(setq minu (atoi (substr (rtos (getvar "CDATE") 2 4) 7 2)))
    ;(setq minu (1+ minu)) ; 1 - 60
    ;(setq rad (dtor (* 6 minu)))
   
    ;(setq minute (atoi (substr time 12 2)))   
    ;(setq mang (valtoang minute))   
    ;(setq ssem (entget elm))
    ;(setq masm (massoc 10 ssem))
    ;(setq pt1m (car masm))
    ;(setq pt2m (cadr masm))
    ;(setq angm (angle pt1m pt2m))
    ;(command "_rotate" elm "" loc "r" angm rad "")
    ;(setq elm (entlast))       
   
    ;(setq seconds (/ (atoi (substr time 14 2)) 3600.0))  ; 3).
    ;(setq minutes (/ (atoi (substr time 12 2)) 60.0))    ; 3).
    ;(setq hours (atoi (substr time 10 2)))               ; 3).
    ;(setq hour (+ hours (+ minutes seconds)))            ; 3).

    ;(setq hang (dtr hour))
    ;(setq sseh (entget elh))
    ;(setq mash (massoc 10 sseh))
    ;(setq pt1h (car mash))
    ;(setq pt2h (cadr mash))
    ;(setq angh (angle pt1h pt2h))
    ;(command "_rotate" elh "" loc "r" angh hang "")
    ;(setq elh (entlast))
   
    )                                                    ; repeat
  (setvar "angdir" ad)
  (princ)
  )

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Convert minute to radian
« Reply #6 on: August 23, 2007, 07:39:12 AM »
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

VVA

  • Newt
  • Posts: 166
Re: Convert minute to radian
« Reply #7 on: August 28, 2007, 03:07:32 AM »
Is it a little more clocks from ElpanovEvgeniy
Code: [Select]
(defun c:clock1 (/ A B)
 (setvar "cmdecho" 0)
 (if (not (tblsearch "BLOCK" "cl_arrow"))
  (PROGN
   (setvar "clayer" "0")
   (setq a (vla-add (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
          (vlax-3D-point (list 0. 0.))
          "cl_arrow"
      ) ;_  vla-add
   ) ;_  setq
   (vla-AddLine a (vlax-3D-point 0. 1.) (vlax-3D-point 1. 0.))
   (vla-AddLine a (vlax-3D-point 1. 0.) (vlax-3D-point 0. -1.))
  ) ;_  PROGN
 ) ;_  if
 (setq a (getpoint "\nPick point ")
       b (mapcar
     (function
      (lambda (x)
       (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
              (car x)
              "cl_arrow"
              (cadr x)
              (caddr x)
              1.
              0.
       ) ;_  vla-insertblock
      ) ;_  lambda
     ) ;_  function
     (list   (list (vlax-3d-point a) 100. 0.5)
      (list (vlax-3d-point a) 90. 5.0)
      (list (vlax-3d-point a) 65. 5.)
      (list (vlax-3d-point (polar a pi 100)) 20. 1.)
      (list (vlax-3d-point (polar a pi 100)) 2.5 0.5)
     ) ;_  list
    ) ;_  mapcar
       b (append b
       (cons (vla-AddCircle (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
                  (vlax-3D-point a)
                  5.
             ) ;_  vla-AddCircle
             (append
         (vlax-safearray->list
          (vlax-variant-value (vla-ArrayPolar (nth 4 b) 60 (* pi 2) (vlax-3d-point a)))
         ) ;_  vlax-safearray->list
         (vlax-safearray->list
          (vlax-variant-value (vla-ArrayPolar (cadddr b) 12 (* pi 2) (vlax-3d-point a)))
         ) ;_  vlax-safearray->list
             ) ;_  append
       ) ;_  cons
    ) ;_  append
 ) ;_  setq
 (repeat 150
  (vl-cmdf "_Delay" 200)
  (vla-put-Rotation (caddr b)
          (- (/ pi 2.)
             (* (/ pi 6.)
           (+ (atoi (menucmd "M=$(edtime,$(getvar,date),H)"))
              (/ (atoi (menucmd "M=$(edtime,$(getvar,date),MM)")) 60.)
           ) ;_  +
             ) ;_  *
          ) ;_  -
  ) ;_  vla-put-Rotation
  (vla-put-Rotation (cadr b)
          (- (/ pi 2.) (* (/ pi 30.) (atoi (menucmd "M=$(edtime,$(getvar,date),MM)"))))
  ) ;_  vla-put-Rotation
  (vla-put-Rotation (car b)
          (- (/ pi 2.) (* (/ pi 30.) (atof (menucmd "M=$(edtime,$(getvar,date),SS.MSEC)"))))
  ) ;_  vla-put-Rotation
 ) ;_  repeat
 (mapcar (function (lambda (x) (vla-delete x) (vlax-release-object x))) b)
 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))
 (setvar "cmdecho" 1)
)





;**********Author PSW ************************
; Function translates degrees in radians; Parameter - a corner in degrees
;************************************************************
(defun G2R (GG / AA) (setq AA (/ (* pi GG) 180.0)) )

;************************************************************
;************************************************************
;************************************************************
; Function translates radians in degrees; Parameter - a corner in radians
(defun R2G (GG / AA) (setq AA (/ (* 180.0 GG) pi)) )

;************************************************************
;************************************************************
(defun *ERROR* ()
  (command "_ZOOM" "_ALL")
  (command "_ERASE" "_w" '(-100.0 -100.0) '(100.0 100.0) "")
  (SetVar "FILEDIA" 1)
  (princ)
) ;_  defun
  ; end defun *error*
  ;***********************************************************
(defun C:CLOCK2 (/ A A1 A2 A3 A4 B1 T0 T1 T2 U U1 W1 W2 W3)
  (setvar "CMDECHO" 0)
  (command "_ZOOM" "_w" '(-100.0 -100.0) '(100.0 100.0))
  (setq T1 (list 0.0 90.0))
  (setq T2 (list 0.0 100.0))
  (setq T0 (list 0.0 0.0))
  (command "_LINE" T1 T2 "")
  (setq A (entlast))
  (command "_ARRAY" A "" "_p" T0 60 "" "")
  ;***************************************************
  (setq T1 (list 0.0 85.0))
  (setq T2 (list 0.0 100.0))
  (command "_PLINE" T1 "_w" 2.0 2.0 T2 "")
  (setq A (entlast))
  (command "_ARRAY" A "" "_p" (list 0.0 0.0) 12 "" "")
  ;***************************************************
  (repeat 50
    (setq A (rtos (getvar "CDATE") 2 16))
    (setq A1 (substr A 10 2))
  ; ×àñû
    (setq A2 (substr A 12 2))
  ; Ìèíóòû
    (setq A3 (substr A 14 2))
  ; Cåêóíäû
    (setq A4 A3)
  ;*****************************************************
    (setq B1 (+ (atoi A1) (/ (atoi A2) 60.0)))
    (setq U (- 90.0 (* B1 30.0)))
    (command "_PLINE" (polar T0 (G2R (+ 180.0 U)) 20.0) T0 "_w" 4.0 4.0 (polar T0 (G2R U) 50.0) "")
    (setq W1 (entlast))
  ;*****************************************************
    (setq B1 (+ (atof A2) (/ (atof A3) 60.0)))
    (setq U (- 90.0 (* B1 6.0)))
    (command "_PLINE" (polar T0 (G2R (+ 180.0 U)) 20.0) T0 "_w" 4.0 4.0 (polar T0 (G2R U) 80.0) "")
    (setq W2 (entlast))
  ;*****************************************************
    (setq B1 (atof A3))
    (setq U (- 90.0 (* B1 6.0)))
    (setq U1 (fix (- 90.0 (* B1 6.0))))
    (command "_LINE" (polar T0 (G2R (+ 180.0 U)) 20.0) (polar T0 (G2R U) 100.0) "")
    (setq W3 (entlast))
  ;*****************************************************
    (while (= A3 A4)
      (vl-cmdf "_Delay" 200)
      (setq A (rtos (getvar "CDATE") 2))
      (setq A4 (substr A 14 2))
  ;*****************************************************
      (entdel W1)
      (entdel W2)
      (entdel W3)
    ) ;_  while
  ); REPEAT
    (command "_ZOOM" "_ALL")
    (command "_ERASE" "_w" '(-100.0 -100.0) '(100.0 100.0) "")
    (SetVar "FILEDIA" 1)
    (princ)
) ;_  defun
(princ "\nType clock1 or clock2")
Original posted in Russian http://dwg.ru/forum/viewtopic.php?t=5524&postdays=0&postorder=asc&start=0

Adesu

  • Guest
Re: Convert minute to radian
« Reply #8 on: August 28, 2007, 03:36:18 AM »
Hi VVA,
it's great info, I would learn it, thanks a lot for your help.