在CAD中,如何在这个矩形里面再画三个这样的矩形

如题所述

  AutoCAD再绘制一个矩形的话,使用偏移命令【OFFSET】或快捷键命令【O】

  如果有很多矩形要进行偏移的话,可以使用编程来实现,选择矩形,输入偏移距离就可以偏移完成。

  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  
  (defun C:tes ( / #r1 &k1 &kw1 &ob1 &ob2 dis1 dis2 ent1 pt1 pt2 ss x)
  (if (null vlax-dump-object) (vl-load-com) );加载vlax函数
  (if (and (setq &kw1 (ssget '((0 . "LWPOLYLINE") (70 . 1))));选择封闭多段线
  (setq #r1 (getdist "\n请输入偏移距离"))
  (> #r1 0);距离是正值
  )
  (progn;;1
  (while (setq &k1 (ssname &kw1 0));对象分析
  (setq &kw1 (ssdel &k1 &kw1))
  (setq ss (mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) (entget &k1))));取得多段线坐标
  (if (and (= (length ss) 4);如果是4个点,符合矩形一个条件;进入下一步
  (= (distance (car ss) (caddr ss)) (distance (cadr ss) (cadddr ss)));对角线相同
  )
  (progn;;2
  (setq &ob1 (vlax-ename->vla-object &k1))
  (vla-GetBoundingBox &ob1 'pt1 'pt2);提取包围框
  (setq pt1 (vlax-safearray->list pt1) pt2 (vlax-safearray->list pt2))
  (setq pt1 (mapcar '(lambda (x) (* x 0.5)) (mapcar '+ pt1 pt2)));取得矩形中心点
  (if (and (setq pt2 (inters (car ss) (caddr ss) (cadr ss) (cadddr ss)));对角线有交点
  (<= (distance pt1 pt2) 0.00001);对角线与中心点重合
  );确认是矩形
  (progn;;3
  (setq pt2 (mapcar '(lambda (x) (* x 0.5)) (mapcar '+ (car ss) (cadr ss))))
  (setq dis1 (distance pt1 pt2))
  (setq pt2 (mapcar '(lambda (x) (* x 0.5)) (mapcar '+ (caddr ss) (cadr ss))))
  (setq dis2 (distance pt1 pt2))
  (if (< dis2 dis1) (setq dis1 dis2) )
  (setq dis1 (* 0.1 dis1))
  (setq ent1 (entlast))
  (vla-offset &ob1 dis1)
  (if (and (setq ent1 (entnext ent1));4
  (setq dis1 (vlax-curve-getDistAtParam &ob1 (vlax-curve-getEndParam &ob1)))
  (> dis1 0)
  )
  (progn;;4
  (setq &ob2 (vlax-ename->vla-object ent1))
  (setq dis2 (vlax-curve-getDistAtParam &ob2 (vlax-curve-getEndParam &ob2)))
  (vla-delete &ob2)
  (if (> dis2 dis1) (vla-offset &ob1 #r1) (vla-offset &ob1 (* #r1 -1)) )
  );progn;4
  );if;4
  );progn;3
  );if;3
  );progn;2
  );if;2
  );while
  );progn;1
  );if;1;矩形的特点,对角线相同,4个点,对角线有交点并与中心点重合
  (prin1)
  );;复制到记事本,以【.lsp】为后缀命名,打开AutoCAD,autolisp加载,命令【TES】
  追问

请问具体如何偏移呢?
我先画了外面的大矩形,  ç„¶åŽæŠŠå®ƒåç§»ç¼©å°æˆè¿™æ ·

那 再接着怎么用偏移画出那三个相同大小的矩形,化成如问题那样的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-25
你可以使用偏移命令o ,将每个矩形再往里面偏移一定距离。本回答被网友采纳