等距多边形
有没有人可以用lisp来绘制等距多边形?我做的是做一个等距圆,把圆分成几个部分,追踪节点,擦除圆和节点,这就是我的多边形。 如果我理解正确的话,你的等距圆是一个椭圆。
你们的分割长度都相等吗?
如果是这样,杰出的李Mac有一个优秀的程序,将圆和椭圆(以及其他)等长分割成等长的段。
我经常使用这个程序。我相信李不会介意我把你引向这里。谢谢李。
可以在李的网站上找到:-
http://lee-mac.com/segmentcurve.html
谢谢你的回复。对我有一个椭圆
我要找的是一个lisp,它会提示我多边形有多少边,并输入agad的直径。
但这也有帮助。谢谢! 也许,这是:
(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。
听起来很简单。
我不确定你需要的和我想要的是否一样。你能贴出想要结果的图片吗? 嗨,M.R。
尝试使用你的例程,但我认为有一些错误,因为生成的多边形不是等距的
pBe,附图片
将极轴跟踪设置为45度,在执行例程的同时,使用“内接”选项创建角度为135度的6边多边形。。。你会得到你发布的内容-传统方式。。。我的代码绘制等距多边形-请参阅我附加的jpg。。。
M、 R。
传统方法意味着存在等圆? 我认为“等轴测”不是描述OP希望获得的结果的正确术语,这可能会误导那些试图提供解决方案的人;也就是说,我不确定自己是否完全理解预期结果。
事实上,它确实显示了一个奇数形状的多边形,我试图根据第一篇文章中的描述编写代码(假设存在等圆)
(defunc:sample (/ objell sides seg seg2 pts)
(vl-load-com)
(setq objell(car (entsel)))
(setq sides (getint "\nEnter number of sides"))
(setqseg(/ (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)
)
我猜这个帖子和OP在另一个论坛上的帖子有关。创建面向上/左/右的等圆
http://www.theswamp.org/index.php?topic=42737.0
页:
[1]
2