怎样用CAD在矩形外再画一个矩形?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用CAD在矩形外再画一个矩形?相关的知识,希望对你有一定的参考价值。
后来花的矩形长,宽都比原来的矩形大50mm?
AutoCAD再绘制一个矩形的话,使用偏移命令【OFFSET】或快捷键命令【O】
如果有很多矩形要进行偏移的话,可以使用编程来实现,选择矩形,输入偏移距离就可以偏移完成。
(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】
你好,你这问题,最快的方法,非“偏移”命令不可,选择偏移工具(附图里面左边工具栏上面下来第4个)键盘输入50——选择第一个矩形——把鼠标的光标移到第一个矩形外面就OK
参考技术D 这。。。偏移就可以了
画好里面的矩形后,
输入快捷键o,空格。
它提示你输入偏移量,输25(也许你要的是50)。
然后点一下矩形,再在矩形外面随便一个点一下,就行了。
急!!!opencv做目标跟踪的时候,怎样把目标用矩形圈出来
源码是怎样的 或者说说方法也可以 求高手 谢谢
参考技术A cvFindContours( temp, storage, &cont, sizeof(CvContour),CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));
opencv里面有这样一个函数,可以把目标找出来,多个目标用参数cont指针来指向
CvRect r = ((CvContour*)cont)->rect; 这个呢,可以得到这些目标的矩形区域,你再画出来就可以了追问
目标检测的时候就有cvFindContour这个函数,请问是不是目标跟踪的时候直接用就行了?这么简单吗我只用两个函数就实现了吗? 谢谢
追答可能你在检测的时候,有一些噪音,可能把噪音也当成目标框起来了,这个时候你就要将比较小的目标去掉,当矩形的面积小于一个阈值的时候,就把这些目标去掉。&cont是指针形式的,依次指向图像中的多个目标,你可以用一个for循环来把每个目标框出来
本回答被提问者采纳 参考技术B 在求轮廓前,还有很多处理工作,这些工作设计不好的话,影响到结果的好坏以上是关于怎样用CAD在矩形外再画一个矩形?的主要内容,如果未能解决你的问题,请参考以下文章