正在加载...
0人已收藏
0人已打赏
0人已点赞
分享
全部回复(3 )
主题
回复
粉丝
CAD下载及教程
52.09 万条内容 · 682 人订阅
阅读下一篇
我想请教一下各位, cad绘图时,多线段样式里边的元素特征只能设置一次,比如说我第一次设置的多线段是三道平行线,当我画完后,再设置两条平行线的多线段时就怎么也改不过来了,不知为何??谢谢指教啊!!!!
遇到了一点小问题
内容不能包含下列词语
回帖成功
经验值 +10
全部回复(3 )
只看楼主 我来说两句-
precon
沙发
非常感谢!谢谢
2008-05-15 14:49:15
赞同0
-
小萝卜的头
板凳
2007-09-30 09:30:30
赞同0
加载更多回复 举报
以下就是highflybird写的.......
他应该不介意我代码发在这里吧..呵呵.
;;;test
(defun c:test(/ sel1 sel2 lst1 lst2)
(if (and (setq sel1 (ssget ’((0 . "POINT"))))
(princ "\n请选择下面的点:")
(setq sel2 (ssget ’((0 . "POINT"))))
(= (sslength sel1) (sslength sel2))
)
(progn
(setq lst1 (get-points-list sel1))
(setq lst2 (get-points-list sel2))
(setq lst1 (vl-sort lst1 ’sort-by-angle-distance))
(setq lst2 (vl-sort lst2 ’sort-by-angle-distance))
(mapcar ’make-line lst1 lst2)
)
)
(princ)
)
;;;sort
(defun sort-by-angle-distance (e1 e2 / an1 an2 d1 d2 p1x p1y p2x p2y)
(setq p1x (car e1))
(setq p1y (cadr e1))
(setq p2x (car e2))
(setq p2y (cadr e2))
(setq an1 (angle ’(0 0) (list p1x p1y)))
(setq an2 (angle ’(0 0) (list p2x p2y)))
(setq d1 (+ (* p1x p1x) (* p1y p1y)))
(setq d2 (+ (* p2x p2x) (* p2y p2y)))
(if (equal an1 an2 1e-8)
(< d1 d2)
(< an1 an2)
)
)
;;;make-line
(defun make-line (pt1 pt2)
(entmake
(list
’(0 . "LINE")
(cons 10 pt1)
(cons 11 pt2)
)
)
)
;;;get point set
(defun get-points-list (sel / i ent lst pt pts)
(setq i 0)
(repeat (sslength sel)
(setq ent (ssname sel i))
(setq lst (entget ent))
(setq pt (cdr (assoc 10 lst)))
(setq pts (cons pt pts))
(setq i (1+ i))
)
pts
)
回复 举报