Author Topic: XLINE angle  (Read 3037 times)

0 Members and 1 Guest are viewing this topic.

Humbertogo

  • Guest
XLINE angle
« on: June 27, 2006, 07:48:37 AM »
How to get the angle in XY plane of a XLINE...?
witch dxf code need to read this.?

Thanks




ElpanovEvgeniy

  • Water Moccasin
  • Posts: 1569
  • Moscow (Russia)
Re: XLINE angle
« Reply #1 on: June 27, 2006, 09:14:39 AM »
Code: [Select]
(setq e (car (entsel "\nSelect XLINE object:"))
      a (angle '(0 0) (cdr (assoc 11 (entget e))))
) ;_  setq
« Last Edit: June 27, 2006, 09:17:50 AM by ElpanovEvgeniy »

ElpanovEvgeniy

  • Water Moccasin
  • Posts: 1569
  • Moscow (Russia)
Re: XLINE angle
« Reply #2 on: June 27, 2006, 10:42:13 AM »
Code: [Select]
(if (setq e (car (entsel "\nSelect XLINE object:")))
  ((lambda (x)
     (if (minusp (car x))
       (if (minusp (cadr x))
(+ (atan (abs (cadr x)) (abs (car x))) pi)
(+ (atan (abs (car x)) (cadr x)) (* 0.5 pi))
       ) ;_  if
       (if (minusp (cadr x))
(+ (atan (car x) (abs (cadr x))) (* 1.5 pi))
(atan (cadr x) (car x))
       ) ;_  if
     ) ;_  if
   ) ;_  lambda
    (cdr (assoc 11 (entget e)))
  )
) ;_  if

Andrea

  • Water Moccasin
  • Posts: 2372
Re: XLINE angle
« Reply #3 on: June 27, 2006, 11:16:01 AM »
modified version for radian to degree.

Code: [Select]
(setq e (car (entsel "\nSelect XLINE object:"))
      a (/ (* (angle '(0 0) (cdr (assoc 11 (entget e)))) 180) pi)
)
(alert (strcat "Angle = " (rtos a)))
Keep smile...

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: XLINE angle
« Reply #4 on: June 27, 2006, 11:33:14 AM »
Quick and dirty alternate spin:

Code: [Select]
(   (lambda ( / ename result )
        (if (setq ename (car (entsel)))
            (vl-catch-all-apply
               '(lambda ( )
                    (setq result
                        (angle
                           '(0 0)
                            (vlax-get
                                (vlax-ename->vla-object ename)
                               'DirectionVector
                            )
                        )   
                    )
                )
            )
        )   
        result
    )
)
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

LE

  • Guest
Re: XLINE angle
« Reply #5 on: June 27, 2006, 11:50:46 AM »
Code: [Select]
(defun angvec  (vect)
  (cond
    ((equal (car vect) 0 0.0001)
     (if (minusp (cadr vect))
       (* 1.5 pi)
       (/ pi 2)))
    ((equal (car vect) -1 0.0001) pi)
    ((equal (cadr vect) 0 0.0001)
     (if (minusp (car vect))
       pi
       0))
    (T (atan (/ (cadr vect) (car vect))))))

(defun vecang (ang) (list (cos ang) (sin ang) 0.0))

Sdoman

  • Guest
Re: XLINE angle
« Reply #6 on: June 27, 2006, 12:56:45 PM »
Wow! A smorgasbord of GetXlineAngles.  This place is so Cool.

ElpanovEvgeniy

  • Water Moccasin
  • Posts: 1569
  • Moscow (Russia)
Re: XLINE angle
« Reply #7 on: June 27, 2006, 04:16:32 PM »
(defun angvec  (vect)
  (cond
    ((equal (car vect) 0 0.0001)
     (if (minusp (cadr vect))
       (* 1.5 pi)
       (/ pi 2)))
    ((equal (car vect) -1 0.0001) pi)
    ((equal (cadr vect) 0 0.0001)
     (if (minusp (car vect))
       pi
       0))
    (T (atan (/ (cadr vect) (car vect))))))


Code: [Select]
(atan (/ (cadr vect) (car vect))) = (atan  (cadr vect) (car vect))

LE

  • Guest
Re: XLINE angle
« Reply #8 on: June 27, 2006, 04:36:18 PM »
(atan (/ (cadr vect) (car vect))) = (atan  (cadr vect) (car vect))

 :-)

Evgeniy;

That function is a very old one, back on 1993-1994, in those days I normally did not read the help file at all.... and nowdays I kept forgetting that num1/num2 is done internally.

Thanks.

Humbertogo

  • Guest
Re: XLINE angle
« Reply #9 on: June 28, 2006, 04:40:55 AM »
thanks guys