水平居中
在论坛里翻了一晚上了有很多少差不多的程序,可是就是没有我需要的请G版各位大神在弹指间解决苦恼(现在是先测量距离除以2,然后移动的)
求求你们救救我吧
编程思路:
1、选择要对中的外框;
2、计算框的中心点;
3、框选要居中的物体;
4、计算这些物体的包围框;
5、计算包围框的中心点;
6、沿水平方向移动物体到外框中心点垂线。
7、重复3。 ZZXXQQ 发表于 2014-6-13 08:37 static/image/common/back.gif
编程思路:
1、选择要对中的外框;
2、计算框的中心点;
G版能不能麻烦你给我来个我不会啊 谢谢了 love1030312 发表于 2014-6-13 08:55 static/image/common/back.gif
G版能不能麻烦你给我来个我不会啊 谢谢了
G版与Z版都分不清 lucas_3333 发表于 2014-6-13 08:57 static/image/common/back.gif
G版与Z版都分不清
打错了
;画出能框起选择集内所有图元的最小矩形框
(defun get_all_rectang (ss /pt_list sn n en pt1 pt2)
(setq pt_list '())
(setq sn (sslength ss))
(setq n -1)
(repeat sn
(setq en (ssname ss (setq n (1+ n))))
(vla-getboundingbox (vlax-ename->vla-object en) 'pt1 'pt2)
(setq pt_list (cons (vlax-safearray->list pt1) pt_list))
(setq pt_list (cons (vlax-safearray->list pt2) pt_list))
)
(setq pt1 (apply 'mapcar (cons 'min pt_list)))
(setq pt2 (apply 'mapcar (cons 'max pt_list)))
(list pt1 pt2)
)
(defun c:tt(/ ss p0 lst p1 p2 dpt mpt)
(if (and (setq ss(ssget))
(setq p0(getpoint"\n选择中点:"))
)
(progn
(setq bak_cmd(getvar 'cmdecho))
(setvar 'cmdecho 0)
(setq lst(get_all_rectang ss)
p1 (car lst)
p2 (cadr lst)
mpt(mapcar '(lambda(x y)(* 0.5 (+ x y))) p1 p2)
dpt(list(car p0)(cadr mpt))
)
(command "_move" ss "" "non" mpt "non" dpt)
(and bak_cmd(setvar 'cmdecho bak_cmd))
)
)
(princ)
) ;; 实体居中
院长的应该可以上、下、左、右、水平、垂直、中心对齐。 顶一下,很有作用哦,, 好思路,留个脚印
页:
[1]