明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 917|回复: 10

根据矩形对角线生成矩形

[复制链接]
发表于 2024-6-21 10:52:19 | 显示全部楼层 |阅读模式
如何根据对角线生成矩形,并把对角线删除 ,可以支持多选  小白请教   请求大佬帮助

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-6-21 11:10:24 | 显示全部楼层
本帖最后由 煮茗 于 2024-6-21 11:28 编辑

理论上一个对角线能绘制出无数个矩形,看你的示例图,是依据坐标系xy方向绘制,那就唯一了。
之前唐突,没看到批量绘制。
想说如果量不多,直接用矩形命令绘制更快。
 楼主| 发表于 2024-6-21 11:30:32 | 显示全部楼层
是的  不多的画手动也可以   主要挺多的 而且手动容易漏
发表于 2024-6-21 11:31:05 | 显示全部楼层
你这个直接获取包围盒然后绘制就是了
 楼主| 发表于 2024-6-21 11:49:15 | 显示全部楼层
橡皮 发表于 2024-6-21 11:31
你这个直接获取包围盒然后绘制就是了

大佬  小白没听懂
发表于 2024-6-21 12:04:20 | 显示全部楼层
手动话也很快
发表于 2024-6-21 16:37:59 | 显示全部楼层
  1. (defun c:tt()
  2.   (if (setq ss (ssget '((0 . "line"))))
  3.     (progn
  4.       (setq n -1)
  5.       (while (setq ent (ssname ss (setq n (1+ n))))
  6.         (vla-GetBoundingBox (vlax-ename->vla-object ent) 'minpt 'maxpt)
  7.         (entdel ent)
  8.         (setq lst (mapcar '(lambda(x) (vlax-safearray->list x)) (list minpt maxpt)))
  9.         (setq minpt (car lst) maxpt (cadr lst))
  10.         (setq lst (list minpt (list (car maxpt) (cadr minpt)) maxpt (list (car minpt) (cadr maxpt))))
  11.         (entmake (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 90 (length lst)) '(70 . 1)) (mapcar '(lambda (pt) (cons 10 pt)) lst)))
  12.       )
  13.     )
  14.   )
  15.   (prin1)
  16. )
发表于 2024-6-21 21:28:19 | 显示全部楼层
  1. (defun c:tt( / ss e ent kk pt1 pt2 pt3 pt4)
  2.   (command "undo" "be")
  3.   (setq ss (ssget '((0 . "LINE"))))
  4.   (repeat (setq kk (sslength ss))
  5.     (setq e (ssname ss (setq kk (1- kk)))
  6.           ent (entget e)
  7.           pt1 (cdr (assoc 10 ent))
  8.           pt3 (cdr (assoc 11 ent))
  9.           pt2 (list (car pt1) (cadr pt3))
  10.           pt4 (list (car pt3) (cadr pt1))        
  11.     )
  12.     (MakePL (list pt1 pt2 pt3 pt4))
  13.     (entdel e)   
  14.   )
  15.   (command "undo" "e")
  16.   (prin1)
  17. )

  18. (defun MakePL(ptlst)
  19.   (entmake (append (list
  20.     '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
  21.     (cons 90 (length ptlst)) (cons 70 1))  
  22.     (mapcar '(lambda (x) (cons 10 x)) ptlst)
  23.     )
  24.   )
  25. )

来个新手版的
 楼主| 发表于 2024-6-22 10:30:14 | 显示全部楼层

新手想问下  是代码复制到文本文档 然后改后缀为LSP吗
 楼主| 发表于 2024-6-22 10:32:09 | 显示全部楼层

感谢大佬  能用了 提高很多效率
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:39 , Processed in 0.171833 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表