1. Isometric Polygon

Registered forum members do not see this ad.

does anyone has a lisp to spare to draw an Isometric Polygons?
what i do is make an Isometric Circle, Divide the circle into parts, trace the nodes, erase the circle and nodes and there's my polygon.

2. If I understand correctly, your isometric circle is an ellipse.
Are your divisions all of equal length?

If so, the distinguished Lee Mac has an excellent program that will equally segment circles and ellipses (and others) into equal length segments.
I regularly use this program. I am sure Lee will not mind me directing you to this. Thanks Lee.

Can be found on Lee's site here: -

http://lee-mac.com/segmentcurve.html

3. Originally Posted by Manila Wolf
If I understand correctly, your isometric circle is an ellipse.
Are your divisions all of equal length?

If so, the distinguished Lee Mac has an excellent program that will equally segment circles and ellipses (and others) into equal length segments.
I regularly use this program. I am sure Lee will not mind me directing you to this. Thanks Lee.

Can be found on Lee's site here: -

http://lee-mac.com/segmentcurve.html
Thanks for the reply wolf. Yes...i have it is an ellipse
what am looking for sana is a lisp that will prompt me for how many sides will the polygon be and input the diameter agad.

But this helps too. Thanks a lot!

4. Maybe, this :

Code:
```(defun transptiso (pt)
(list (+ (car (polar (list 0.0 0.0 0.0) (/ pi 6.0) (car pt)))
(car (polar (list 0.0 0.0 0.0) (* 5.0 (/ pi 6.0)) (cadr pt))) )

(+ (cadr (polar (list 0.0 0.0 0.0) (/ pi 6.0) (car pt)))
(cadr (polar (list 0.0 0.0 0.0) (* 5.0 (/ pi 6.0)) (cadr pt))) )

0.0
)
)

(defun c:isopolygon (/ pol vertlst vertlstn)
(vl-cmdf "_.ucs" "w")
(vl-cmdf "_.plan" "")
(vl-cmdf "_.zoom" "c" "0,0,0" "")
(vl-cmdf "_.polygon" pause "0,0,0" pause pause)
(setq pol (entlast))
(mapcar '(lambda (x) (if (= (car x) 10) (setq vertlst (cons (cdr x) vertlst)))) (entget pol))
(setq vertlst (reverse vertlst))
(setq vertlstn (mapcar '(lambda (p) (transptiso p)) vertlst))
(entmake
(append
(list
'(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length vertlstn))
'(70 . 1)
)
(mapcar '(lambda (x) (cons 10 x)) vertlstn)
(list (list 210 0.0 0.0 1.0))
)
)
(entdel pol)
(vl-cmdf "_.ucs" "p")
(princ)
)```
M.R.

5. Originally Posted by nod684
Thanks for the reply wolf. Yes...i have it is an ellipse
what am looking for sana is a lisp that will prompt me for how many sides will the polygon be and input the diameter agad.

But this helps too. Thanks a lot!
Sounds easy enough.

Not sure if what you need is the same as what i have in mind. can you post an image of the desired result?

6. Hi M.R.
tried using your routine but i think have some error as the resulting polygon is not Isometric

pBe, image attached

7. Turn polar tracking to 45 degrees, and while executing routine make 6 sided polygon with "Inscribed" option with angle 135 degree... You'll get what you posted - conventional way... My code does draw isometric polygon - see my attached jpg...

M.R.

8. Originally Posted by nod684
pBe, image attached
Conventional way means the isocircles are existing?

9. I don't think 'isometric' is the correct term to describe the result that the OP is looking to obtain, which may be misleading those who are attempting to provide a solution; that said, I'm not sure that I completely understand the desired result.

10. Registered forum members do not see this ad.

Originally Posted by Lee Mac
I don't think 'isometric' is the correct term to describe the result that the OP is looking to obtain, which may be misleading those who are attempting to provide a solution; that said, I'm not sure that I completely understand the desired result.
Indeed it does shows an odd shape polygon, i attempted to write a code based on the description on the first post, (granting the isocircles are existing)

Code:
```(defun  c:sample (/ objell sides seg seg2 pts)
(setq objell  (car (entsel)))
(setq sides (getint "\nEnter number of sides"))
(setq  seg  (/ (vlax-curve-getdistatparam
objell
(vlax-curve-getendparam objell)
)
sides
) seg2 0.0
)
(repeat sides
(setq
pts
(cons (vlax-curve-getpointatdist objell (+ seg seg2)) pts)
)
(setq seg2 (+ seg seg2))
)
(command "_Pline" "_non")
(foreach pt (cons (last pts) pts) (command pt))
(command)
(entdel objell)
(princ)
)```
My guess is this thread has something to do with the OP's post on another forum. creating isocircles oriented on Top/Left/Right

http://www.theswamp.org/index.php?topic=42737.0

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts