Author Topic: Ellipses to polylines  (Read 24639 times)

0 Members and 1 Guest are viewing this topic.

luiscarneirorm

  • Guest
Re: Ellipses to polylines
« Reply #15 on: October 18, 2011, 12:41:36 PM »
it's in the 11# post  8-)


P.S: even now, if I draw an ellipse, and then stretch it or shrink it, sometimes the start angle and end angle is no longer 0 and 360, and become for example 90 90, or 180 180, and then to use function gives me problems ...
You can work around this??
« Last Edit: October 18, 2011, 12:45:23 PM by luiscarneirorm »

gile

  • Gator
  • Posts: 2507
  • Marseille, France
Re: Ellipses to polylines
« Reply #16 on: October 18, 2011, 01:11:29 PM »
Try this one

Code: [Select]
;; EllipseToPolyline
;; Returns a polyline (vla-object) which is an approximation of the ellipse (or elliptical arc)
;;
;; Argument : an ellipse (vla-object)

(defun EllipseToPolyline (el /     cl    norm  cen elv   pt0   pt1   pt2 pt3   pt4   ac0
  ac4 a04   a02   a24   bsc0 bsc2  bsc3  bsc4  plst blst  spt   spa
  fspa srat  ept   epa   fepa erat  n
)
  (vl-load-com)
  (setq cl   (= (ang<2pi (vla-get-StartAngle el))
(ang<2pi (vla-get-EndAngle el)))
norm (vlax-get el 'Normal)
cen  (trans (vlax-get el 'Center) 0 norm)
elv  (caddr cen)
cen  (3dTo2dPt cen)
pt0  (mapcar '+ (trans (vlax-get el 'MajorAxis) 0 norm) cen)
ac0  (angle cen pt0)
pt4  (mapcar '+ cen (trans (vlax-get el 'MinorAxis) 0 norm))
pt2  (3dTo2dPt (trans (vlax-curve-getPointAtparam el (/ pi 4.)) 0 norm))
ac4  (angle cen pt4)
a04  (angle pt0 pt4)
a02  (angle pt0 pt2)
a24  (angle pt2 pt4)
bsc0 (/ (ang<2pi (- a02 ac4)) 2.)
bsc2 (/ (ang<2pi (- a04 a02)) 2.)
bsc3 (/ (ang<2pi (- a24 a04)) 2.)
bsc4 (/ (ang<2pi (- (+ ac0 pi) a24)) 2.)
pt1  (inters pt0
     (polar pt0 (+ ac0 (/ pi 2.) bsc0) 1.)
     pt2
     (polar pt2 (+ a02 bsc2) 1.)
     nil
     )
pt3  (inters pt2
     (polar pt2 (+ a04 bsc3) 1.)
     pt4
     (polar pt4 (+ a24 bsc4) 1.)
     nil
     )
plst (list pt4 pt3 pt2 pt1 pt0)
blst (mapcar '(lambda (b) (tan (/ b 2.)))
     (list bsc4 bsc3 bsc2 bsc0)
     )
  )
  (foreach b blst
    (setq blst (cons b blst))
  )
  (foreach b blst
    (setq blst (cons b blst))
  )
  (foreach p (cdr plst)
    (setq ang  (angle cen p)
  plst (cons
(polar cen (+ ang (* 2 (- ac4 ang))) (distance cen p))
plst
       )
    )
  )
  (foreach p (cdr plst)
    (setq ang  (angle cen p)
  plst (cons
(polar cen (+ ang (* 2 (- ac0 ang))) (distance cen p))
plst
       )
    )
  )
  (setq pl
(vlax-invoke
   (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
   'AddLightWeightPolyline
   (apply 'append
  (setq plst
(reverse (if cl
    (cdr plst)
    plst
  )
)
  )
   )
)
  )
  (vlax-put pl 'Normal norm)
  (vla-put-Elevation pl elv)
  (mapcar '(lambda (i v) (vla-SetBulge pl i v))
  '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)
  blst
  )
  (if cl
    (vla-put-Closed pl :vlax-true)
    (progn
      (setq spt (vlax-curve-getClosestPointTo pl (vlax-get el 'Startpoint))
    spa (vlax-curve-getParamAtPoint pl spt)
    fspa (fix spa)
    ept (vlax-curve-getClosestPointTo pl (vlax-get el 'Endpoint))
    epa (vlax-curve-getParamAtPoint pl ept)
    fepa (fix epa)
    n 0
      )
      (cond
((equal spt (trans pt0 norm 0) 1e-9)
(if (= epa fepa)
   (setq plst (sublist plst 0 (1+ fepa))
blst (sublist blst 0 (1+ fepa))
   )
   (setq erat (/ (- (vlax-curve-getDistAtParam pl epa)
    (vlax-curve-getDistAtParam pl fepa)
)
(- (vlax-curve-getDistAtParam pl (rem (1+ fepa) 17))
    (vlax-curve-getDistAtParam pl fepa)
)
      )
plst (append (sublist plst 0 (1+ fepa))
      (list (3dTo2dPt (trans ept 0 norm)))
      )
blst (append (sublist blst 0 (1+ fepa))
      (list (k*bulge (nth fepa blst) erat))
      )
   )
)
)
((equal ept (trans pt0 norm 0) 1e-9)
(if (= spa fspa)
   (setq plst (sublist plst fspa nil)
blst (sublist blst fspa nil)
   )
   (setq srat (/ (- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
    (vlax-curve-getDistAtParam pl spa)
)
(- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
    (vlax-curve-getDistAtParam pl fspa)
)
      )
plst (cons (3dTo2dPt (trans spt 0 norm))
    (sublist plst (1+ fspa) nil)
      )
blst (cons (k*bulge (nth fspa blst) srat)
    (sublist blst (1+ fspa) nil)
      )
   )
)
)
(T
(setq srat (/ (- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
  (vlax-curve-getDistAtParam pl spa)
       )
       (- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
  (vlax-curve-getDistAtParam pl fspa)
       )
    )
       erat (/ (- (vlax-curve-getDistAtParam pl epa)
  (vlax-curve-getDistAtParam pl fepa)
       )
       (- (vlax-curve-getDistAtParam pl (rem (1+ fepa) 17))
  (vlax-curve-getDistAtParam pl fepa)
       )
    )
)
(if (< epa spa)
   (setq plst (append
(if (= spa fspa)
  (sublist plst fspa nil)
  (cons (3dTo2dPt (trans spt 0 norm))
(sublist plst (1+ fspa) nil)
  )
)
(cdr (sublist plst 0 (1+ fepa)))
(if (/= epa fepa)
  (list (3dTo2dPt (trans ept 0 norm)))
)
      )
blst (append
(if (= spa fspa)
  (sublist blst fspa nil)
  (cons
    (k*bulge (nth fspa blst) srat)
    (sublist blst (1+ fspa) nil)
  )
)
(sublist blst 0 fepa)
(if (= epa fepa)
  (list (nth fepa blst))
  (list (k*bulge (nth fepa blst) erat))
)
      )
   )
   (setq plst (append
(if (= spa fspa)
  (sublist plst fspa (1+ (- fepa fspa)))
  (cons (3dTo2dPt (trans spt 0 norm))
(sublist plst (1+ fspa) (- fepa fspa))
  )
)
(list (3dTo2dPt (trans ept 0 norm)))
      )
blst (append
(if (= spa fspa)
  (sublist blst fspa (- fepa fspa))
  (cons
    (k*bulge (nth fspa blst) srat)
    (sublist blst (1+ fspa) (- fepa fspa))
  )
)
(if (= epa fepa)
  (list (nth fepa blst))
  (list (k*bulge (nth fepa blst) erat))
)
      )
   )
)
)
      )
      (vlax-put pl 'Coordinates (apply 'append plst))
      (foreach b blst
(vla-SetBulge pl n b)
(setq n (1+ n))
      )
    )
  )
  pl
)

;; Ang<2pi
;; Returns the angle expression betweem 0 and 2*pi
(defun ang<2pi (ang)
  (if (and (<= 0 ang) (< ang (* 2 pi)))
    ang
    (ang<2pi (rem (+ ang (* 2 pi)) (* 2 pi)))
  )
)

;; 3dTo2dPt
;; Returns the 2d point (x y) of a 3d point (x y z)
(defun 3dTo2dPt (pt) (list (car pt) (cadr pt)))

;; Tan
;; Returns the angle tangent
(defun tan (a) (/ (sin a) (cos a)))

;; SUBLIST
;; Returns a sub list
;;
;; Arguments
;; lst : a list
;; start : start index (first item = 0)
;; leng : the sub list length (number of items) or nil
(defun sublist (lst start leng / n r)
  (if (or (not leng) (< (- (length lst) start) leng))
    (setq leng (- (length lst) start))
  )
  (setq n (+ start leng))
  (while (< start n)
    (setq r (cons (nth (setq n (1- n)) lst) r))
  )
)

;; K*BULGE
;; Returns the proportinal bulge to the référence bulge
;; Arguments :
;; b : the bulge
;; k : the proportion ratio (between angles or arcs length)
(defun k*bulge (b k / a)
  (setq a (atan b))
  (/ (sin (* k a)) (cos (* k a)))
)
Speaking English as a French Frog

kraz

  • Guest
Re: Ellipses to polylines
« Reply #17 on: October 19, 2011, 12:28:21 AM »
very nice prog.
and here my easy way...but not better than gile.
spline or elipse -> polyline
Code: [Select]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun KZ:GetSPlineVertex (spl n / obj len vd p sum)
 (if (> n 1)
  (progn
   (if (= (type spl) 'ename)
    (setq obj (vlax-ename->vla-object spl))
    (setq obj spl)
   )
   ;(setq len (ade_expreval (vlax-vla-object->ename obj) ".length" "real"))
   (setq len (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj)))
   (setq vd (/ len n) sum 0 plist '())
   (repeat (1+ n)
    (setq p (vlax-curve-getPointAtDist obj sum))
    (setq p (list (car p)(cadr p)))
    (if (not (member p plist)) (setq plist (append plist (list p))))
    (setq sum (+ sum vd))
   );rep
   plist
  )
  nil
 )
)
(defun c:test( / es cls vtxs n obj pl)
 (vl-cmdf ".undo" "begin")
 (if (setq es (car (entsel "\nSelect Entity... ")))
  (progn
   (setq n (getint "\nHow many vertex[Default:15]... "))
   (if (or (null n) (< n 2)) (setq n 15))
   (setq obj (vlax-ename->vla-object es))
   (if (and (vlax-property-available-p obj 'closed)
            (= (vlax-get-property (vlax-ename->vla-object es) 'closed) :vlax-true)
       )
    (setq cls 1)
    (setq cls 0)
   );if
   (setq vtxs (KZ:GetSPlineVertex es (1- n)));make n vertexs
   (setq pl (make_pline vtxs (getvar "clayer") 62 cls))
   (entdel es)
  )
 );if
 (vl-cmdf ".undo" "end")
 (princ)
);end defun
« Last Edit: November 18, 2011, 05:59:25 PM by CAB »

luiscarneirorm

  • Guest
Re: Ellipses to polylines
« Reply #18 on: October 19, 2011, 03:53:16 AM »
Try this one

Code: [Select]
;; EllipseToPolyline
;; Returns a polyline (vla-object) which is an approximation of the ellipse (or elliptical arc)
;;
;; Argument : an ellipse (vla-object)

(defun EllipseToPolyline (el /     cl    norm  cen elv   pt0   pt1   pt2 pt3   pt4   ac0
  ac4 a04   a02   a24   bsc0 bsc2  bsc3  bsc4  plst blst  spt   spa
  fspa srat  ept   epa   fepa erat  n
)
  (vl-load-com)
  (setq cl   (= (ang<2pi (vla-get-StartAngle el))
(ang<2pi (vla-get-EndAngle el)))
norm (vlax-get el 'Normal)
cen  (trans (vlax-get el 'Center) 0 norm)
elv  (caddr cen)
cen  (3dTo2dPt cen)
pt0  (mapcar '+ (trans (vlax-get el 'MajorAxis) 0 norm) cen)
ac0  (angle cen pt0)
pt4  (mapcar '+ cen (trans (vlax-get el 'MinorAxis) 0 norm))
pt2  (3dTo2dPt (trans (vlax-curve-getPointAtparam el (/ pi 4.)) 0 norm))
ac4  (angle cen pt4)
a04  (angle pt0 pt4)
a02  (angle pt0 pt2)
a24  (angle pt2 pt4)
bsc0 (/ (ang<2pi (- a02 ac4)) 2.)
bsc2 (/ (ang<2pi (- a04 a02)) 2.)
bsc3 (/ (ang<2pi (- a24 a04)) 2.)
bsc4 (/ (ang<2pi (- (+ ac0 pi) a24)) 2.)
pt1  (inters pt0
     (polar pt0 (+ ac0 (/ pi 2.) bsc0) 1.)
     pt2
     (polar pt2 (+ a02 bsc2) 1.)
     nil
     )
pt3  (inters pt2
     (polar pt2 (+ a04 bsc3) 1.)
     pt4
     (polar pt4 (+ a24 bsc4) 1.)
     nil
     )
plst (list pt4 pt3 pt2 pt1 pt0)
blst (mapcar '(lambda (b) (tan (/ b 2.)))
     (list bsc4 bsc3 bsc2 bsc0)
     )
  )
  (foreach b blst
    (setq blst (cons b blst))
  )
  (foreach b blst
    (setq blst (cons b blst))
  )
  (foreach p (cdr plst)
    (setq ang  (angle cen p)
  plst (cons
(polar cen (+ ang (* 2 (- ac4 ang))) (distance cen p))
plst
       )
    )
  )
  (foreach p (cdr plst)
    (setq ang  (angle cen p)
  plst (cons
(polar cen (+ ang (* 2 (- ac0 ang))) (distance cen p))
plst
       )
    )
  )
  (setq pl
(vlax-invoke
   (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
   'AddLightWeightPolyline
   (apply 'append
  (setq plst
(reverse (if cl
    (cdr plst)
    plst
  )
)
  )
   )
)
  )
  (vlax-put pl 'Normal norm)
  (vla-put-Elevation pl elv)
  (mapcar '(lambda (i v) (vla-SetBulge pl i v))
  '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)
  blst
  )
  (if cl
    (vla-put-Closed pl :vlax-true)
    (progn
      (setq spt (vlax-curve-getClosestPointTo pl (vlax-get el 'Startpoint))
    spa (vlax-curve-getParamAtPoint pl spt)
    fspa (fix spa)
    ept (vlax-curve-getClosestPointTo pl (vlax-get el 'Endpoint))
    epa (vlax-curve-getParamAtPoint pl ept)
    fepa (fix epa)
    n 0
      )
      (cond
((equal spt (trans pt0 norm 0) 1e-9)
(if (= epa fepa)
   (setq plst (sublist plst 0 (1+ fepa))
blst (sublist blst 0 (1+ fepa))
   )
   (setq erat (/ (- (vlax-curve-getDistAtParam pl epa)
    (vlax-curve-getDistAtParam pl fepa)
)
(- (vlax-curve-getDistAtParam pl (rem (1+ fepa) 17))
    (vlax-curve-getDistAtParam pl fepa)
)
      )
plst (append (sublist plst 0 (1+ fepa))
      (list (3dTo2dPt (trans ept 0 norm)))
      )
blst (append (sublist blst 0 (1+ fepa))
      (list (k*bulge (nth fepa blst) erat))
      )
   )
)
)
((equal ept (trans pt0 norm 0) 1e-9)
(if (= spa fspa)
   (setq plst (sublist plst fspa nil)
blst (sublist blst fspa nil)
   )
   (setq srat (/ (- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
    (vlax-curve-getDistAtParam pl spa)
)
(- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
    (vlax-curve-getDistAtParam pl fspa)
)
      )
plst (cons (3dTo2dPt (trans spt 0 norm))
    (sublist plst (1+ fspa) nil)
      )
blst (cons (k*bulge (nth fspa blst) srat)
    (sublist blst (1+ fspa) nil)
      )
   )
)
)
(T
(setq srat (/ (- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
  (vlax-curve-getDistAtParam pl spa)
       )
       (- (vlax-curve-getDistAtParam pl (rem (1+ fspa) 17))
  (vlax-curve-getDistAtParam pl fspa)
       )
    )
       erat (/ (- (vlax-curve-getDistAtParam pl epa)
  (vlax-curve-getDistAtParam pl fepa)
       )
       (- (vlax-curve-getDistAtParam pl (rem (1+ fepa) 17))
  (vlax-curve-getDistAtParam pl fepa)
       )
    )
)
(if (< epa spa)
   (setq plst (append
(if (= spa fspa)
  (sublist plst fspa nil)
  (cons (3dTo2dPt (trans spt 0 norm))
(sublist plst (1+ fspa) nil)
  )
)
(cdr (sublist plst 0 (1+ fepa)))
(if (/= epa fepa)
  (list (3dTo2dPt (trans ept 0 norm)))
)
      )
blst (append
(if (= spa fspa)
  (sublist blst fspa nil)
  (cons
    (k*bulge (nth fspa blst) srat)
    (sublist blst (1+ fspa) nil)
  )
)
(sublist blst 0 fepa)
(if (= epa fepa)
  (list (nth fepa blst))
  (list (k*bulge (nth fepa blst) erat))
)
      )
   )
   (setq plst (append
(if (= spa fspa)
  (sublist plst fspa (1+ (- fepa fspa)))
  (cons (3dTo2dPt (trans spt 0 norm))
(sublist plst (1+ fspa) (- fepa fspa))
  )
)
(list (3dTo2dPt (trans ept 0 norm)))
      )
blst (append
(if (= spa fspa)
  (sublist blst fspa (- fepa fspa))
  (cons
    (k*bulge (nth fspa blst) srat)
    (sublist blst (1+ fspa) (- fepa fspa))
  )
)
(if (= epa fepa)
  (list (nth fepa blst))
  (list (k*bulge (nth fepa blst) erat))
)
      )
   )
)
)
      )
      (vlax-put pl 'Coordinates (apply 'append plst))
      (foreach b blst
(vla-SetBulge pl n b)
(setq n (1+ n))
      )
    )
  )
  pl
)

;; Ang<2pi
;; Returns the angle expression betweem 0 and 2*pi
(defun ang<2pi (ang)
  (if (and (<= 0 ang) (< ang (* 2 pi)))
    ang
    (ang<2pi (rem (+ ang (* 2 pi)) (* 2 pi)))
  )
)

;; 3dTo2dPt
;; Returns the 2d point (x y) of a 3d point (x y z)
(defun 3dTo2dPt (pt) (list (car pt) (cadr pt)))

;; Tan
;; Returns the angle tangent
(defun tan (a) (/ (sin a) (cos a)))

;; SUBLIST
;; Returns a sub list
;;
;; Arguments
;; lst : a list
;; start : start index (first item = 0)
;; leng : the sub list length (number of items) or nil
(defun sublist (lst start leng / n r)
  (if (or (not leng) (< (- (length lst) start) leng))
    (setq leng (- (length lst) start))
  )
  (setq n (+ start leng))
  (while (< start n)
    (setq r (cons (nth (setq n (1- n)) lst) r))
  )
)

;; K*BULGE
;; Returns the proportinal bulge to the référence bulge
;; Arguments :
;; b : the bulge
;; k : the proportion ratio (between angles or arcs length)
(defun k*bulge (b k / a)
  (setq a (atan b))
  (/ (sin (* k a)) (cos (* k a)))
)

Tk you very much... I've been doing some testing and so far it is working properly ... I will try to adapt it to my script to handle all the drawing ellipses automatically ...

Andrea

  • Water Moccasin
  • Posts: 2372
Re: Ellipses to polylines
« Reply #19 on: November 18, 2011, 10:48:35 AM »
Hi Gile,

Thank you for sharing the code,....
I've made a little modification...(if you don't mind)

Code: [Select]
(if (eq (getvar 'tilemode) 1)             
             (setq vlaLayout (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
             (setq vlaLayout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
           )
  (setq pl
(vlax-invoke
   vlaLayout
   'AddLightWeightPolyline
   (apply 'append
  (setq plst
(reverse (if cl
    (cdr plst)
    plst
  )
)
  )
   )
)
  )

I tough this was forget..
 :wink:
Keep smile...

gile

  • Gator
  • Posts: 2507
  • Marseille, France
Re: Ellipses to polylines
« Reply #20 on: November 18, 2011, 11:09:27 AM »
Thanks for correcting this Andrea.
By my side, I prefer use the object owner in case the object have been selected in an active paper space viewport (i.e. TILEMODE = 1 and CVPORT /= 1)
Code: [Select]
(setq vlaLayout (vla-ObjectIdToObject *acdoc* (vla-get-OwnerId obj)))
Speaking English as a French Frog

Andrea

  • Water Moccasin
  • Posts: 2372
Re: Ellipses to polylines
« Reply #21 on: November 18, 2011, 11:44:18 AM »
I'm not as skilled..   :blank:

thanks !
Keep smile...

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: Ellipses to polylines
« Reply #22 on: November 18, 2011, 11:48:08 AM »
Somewhat tangential, but on the topic of ObjectIDToObject .... this is what I have in my library:

Code: [Select]
(defun _Is64Bit ( )

    (setq *Is64Bit* (wcmatch (getvar "platform") "*64*"))   
   
    (defun _Is64Bit ( ) *Is64Bit*)
   
    *Is64Bit*

)

(defun _ObjectIDToObject ( document objectid / object )

    (if (zerop objectid)
        document
        (progn
            (vl-catch-all-apply
                (function
                    (lambda ( )
                        (setq object
                            (vlax-invoke
                                document
                                (if (_Is64Bit) 'objectidtoobject32 'objectidtoobject)
                                objectid
                            )
                        )   
                    )
                )
            )   
            object
        )   
    )   
)

fwiw ...
« Last Edit: November 18, 2011, 12:08:02 PM by MP »
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Andrea

  • Water Moccasin
  • Posts: 2372
Re: Ellipses to polylines
« Reply #23 on: November 18, 2011, 12:09:29 PM »
Thank you for the info..

But i'm not sure to understand the difference between both..
vla-objectidtoobject seem to work great in 64 and 32 bits.. case.

Code: [Select]
(vla-objectidtoobject
   (vla-get-activedocument
     (vlax-get-acad-object)
   )
   (vla-get-ownerid
     (vlax-ename->vla-object
       (car (entsel))
       )
     )
)

Thanks.
Keep smile...

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: Ellipses to polylines
« Reply #24 on: November 18, 2011, 12:11:26 PM »
I mentioned it because vla-objectidtoobject was crashing for me under Windows 7 and AutoCAD 2012.
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Andrea

  • Water Moccasin
  • Posts: 2372
Re: Ellipses to polylines
« Reply #25 on: November 18, 2011, 12:43:07 PM »
Hummm...i've tested on 2011 and 2012 win7 64 bits..

?

But thanks for the info.
Keep smile...

alanjt

  • Needs a day job
  • Posts: 5352
  • Standby for witty remark...
Re: Ellipses to polylines
« Reply #26 on: November 18, 2011, 05:44:47 PM »
Code: [Select]
(defun _Is64Bit ( )

    (setq *Is64Bit* (wcmatch (getvar "platform") "*64*"))   
   
    (defun _Is64Bit ( ) *Is64Bit*)
   
    *Is64Bit*

)
just wow
Civil 3D 2019 ~ Windohz 7 64bit
Dropbox

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: Ellipses to polylines
« Reply #27 on: November 18, 2011, 08:03:58 PM »
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Ellipses to polylines
« Reply #28 on: November 18, 2011, 08:08:23 PM »

Probably more awe at the succinctness.
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

alanjt

  • Needs a day job
  • Posts: 5352
  • Standby for witty remark...
Re: Ellipses to polylines
« Reply #29 on: November 18, 2011, 08:32:57 PM »
Civil 3D 2019 ~ Windohz 7 64bit
Dropbox