lisp求最大外形矩形 ,如何才能将选择集内所有对象进行循环单独绘制最大外形矩形??谢谢 10

lisp求最大外形矩形,如何才能将选择集内所有对象进行循环单独绘制最大外形矩形??谢谢... lisp求最大外形矩形 ,如何才能将选择集内所有对象进行循环单独绘制最大外形矩形??谢谢 展开
 我来答
greatlmy4
2019-07-25 · TA获得超过1331个赞
知道小有建树答主
回答量:1446
采纳率:76%
帮助的人:316万
展开全部
我可以解决选择集内所有的直线、圆弧、圆和polyline的最大外形矩形,排除了text、图块等。
ldd_boy
2019-07-25 · TA获得超过287个赞
知道小有建树答主
回答量:192
采纳率:75%
帮助的人:125万
展开全部
  1. (defun try-getbox (e / en i l max1 min1 pt1 pt2 sn tx1 tx2 ty1 ty2 tye x1 x2 y1 y2)

  2. (setq tye(type e))

  3. (cond 

  4. ((= 'VLA-object tye)

  5. (vla-GetBoundingBox e 'p1 'p2)

  6. (setq min1 (vlax-safearray->list p1))

  7. (setq max1 (vlax-safearray->list p2))

  8. (list min1 max1)

  9. )

  10. ((= 'ENAME tye)

  11. (try-GetBox (vlax-ename->vla-object e))

  12. )

  13. ((or(= 'LIST tye)(= 'PICKSET tye))

  14. (if (= 'PICKSET tye)(setq e (repeat (sslength ss)

  15. (setq l(cons (vlax-ename->vla-object(ssname ss(setq i(1+ i)))) l))

  16. )))

  17. (if (= ENAME(type(car e)))(setq e(mapcar 'vlax-ename->vla-object e)))

  18. (vla-getboundingbox (car e) 'pt1 'pt2)

  19. (setq 

  20. pt1(vlax-safearray->list pt1)

  21. pt2 (vlax-safearray->list pt2)

  22. tx1 (car pt1)

  23. ty1 (cadr pt1)

  24. tx2 (car pt2)

  25. ty2 (cadr pt2)

  26. )

  27. (setq i 0)

  28. (setq sn (length e))

  29. (repeat (1- sn)

  30. (setq en (nth (setq i (1+ i))e))

  31. (vla-getboundingbox en 'pt1 'pt2)

  32. (setq 

  33. pt1(vlax-safearray->list pt1)

  34. pt2 (vlax-safearray->list pt2)

  35. x1 (car pt1)

  36. y1 (cadr pt1)

  37. x2 (car pt2)

  38. y2 (cadr pt2))

  39. (if (> tx1 x1)(setq tx1 x1))

  40. (if (> ty1 y1)(setq ty1 y1))

  41. (if (< tx2 x2)(setq tx2 x2))

  42. (if (< ty2 y2)(setq ty2 y2))

  43. )

  44. (list (list tx1 ty1) (list tx2 ty2))

  45. )

  46. )

  47. )

追问
如何使用代码,能直接复制文本,做成CAD命令吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式