本帖最后由 菜卷鱼 于 2015-12-11 08:46 编辑
多段线投影的程序论坛已经有了http://bbs.mjtd.com/forum.php?mod=viewthread&tid=107683
因为程序是很久以前写的,结构比较冗杂,没有花时间去重写。
2015年8月18号更新,目前支持直线、圆、圆弧、多段线,并加快了反应速度。
内容回复可见,不想回复的直接下载附件吧。
- (defun c:pp ( )
- (princ "\n简单投影程序,制作BY菜卷鱼")
- (setq pi2 (/ pi 2))
- (setq 3pi2 (/ (* 3 pi) 2))
- (setq les (ssget '((0 . "LINE,CIRCLE,ARC")
- (-4 . "<NOT")
- (8 . "中心线")
- (-4 . "NOT>")
- )
- )
- )
- (setq i 0)
- (setq pltlr nil)
- (setq pltud nil)
- (setq clt nil)
- (setq plt nil)
- (repeat (sslength les)
- (setq obj (ssname les i))
- (setq info (entget obj))
- (setq ac0 (cdr (assoc 0 info)))
- (cond
- ((= ac0 "CIRCLE")
- (progn
- (setq dr40 (cdr (assoc 40 info)))
- (setq pt10 (cdr (assoc 10 info)))
- (setq clt (cons pt10 clt))
- (setq pltlr (cons (polar pt10 0 dr40)
- (cons (polar pt10 pi dr40) pltlr)
- )
- )
- (setq pltud (cons (polar pt10 pi2 dr40)
- (cons (polar pt10 3pi2 dr40) pltud)
- )
- )
- )
- )
- ((= ac0 "ARC")
- (setq pt10 (cdr (assoc 10 info)))
- (setq clt (cons pt10 clt))
- )
- ((= ac0 "LINE")
- (setq pt10 (cdr (assoc 10 info)))
- (setq pt11 (cdr (assoc 11 info)))
- (setq plt (cons pt10 (cons pt11 plt)))
- )
- )
- )
- (prin1)
- )
以下是完整源码
|