zzzsss 发表于 2009-2-3 11:38:00

帮忙看看

<p>求高手编程:选取矩形左右上下四个点后将矩形移动到图中心,中间是0,0</p>

caoyin 发表于 2009-2-3 13:02:00

(defun c:tt (/ e d p1 p2)<br/>(if (setq e (entsel "\n选择矩形: "))<br/>&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp; (setq e&nbsp; (car e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d&nbsp; (entget e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p1 (assoc 10 d)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2 (nth (+ (vl-position p1 d) 8) d)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (command "_.move"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ""<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "_non"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (mapcar '(lambda (x y) (/ (+ x y) 2.))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cdr p1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cdr p2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "_non"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(0 0)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>)<br/>(princ)<br/>)

zzzsss 发表于 2009-2-4 16:02:00

不好意思,表达得不是很清楚,我是想选四个点(左右上下)后取得中间点再将整个图形移动到0,0

caoyin 发表于 2009-2-4 19:29:00

本帖最后由 作者 于 2009-2-4 19:35:11 编辑 <br /><br /> <p>中间点不好求吗?上面的</p><p>(mapcar '(lambda (x y) (/ (+ x y) 2.))</p><p>不是已经求出?<br/></p>

ZZXXQQ 发表于 2009-2-4 21:38:00

zzzsss发表于2009-2-4 16:02:00static/image/common/back.gif不好意思,表达得不是很清楚,我是想选四个点(左右上下)后取得中间点再将整个图形移动到0,0

<p>为何要选四点?选矩形的对角线两点不就可以了。</p>
页: [1]
查看完整版本: 帮忙看看