已经用上了,好顺手呀,谢G版了。
<span class="Apple-style-span" style="background-color: orange;"><font class="Apple-style-span" color="#000080">;; 对齐<br>;; 兴趣来了,GX基础上改了下,未测试,不行再改。<br><br><br>(defun c:pldq () <br><br>;;子程序 <br>;;选择集转表 <br> (defun gxl-Sel-SS->List (ss / i s ) <br> (if ss <br> (repeat (setq i (sslength ss)) <br> (setq s (cons (ssname ss (setq i (1- i))) s)) ) )) <br> <br> ;;计算物体中心点 <br> (defun gxl-getboxCenter (e1 / obj minpoint maxpoint) <br><br> (if (= 'ENAME (type e1)) <br><br> (setq obj (vlax-ename->vla-object e1)) <br><br> ;转换图元名 <br> (setq obj e1) <br> ) <br><br> (vla-GetBoundingBox obj 'minpoint 'maxpoint) <br> ;取得包容图元的最大点和最小点 <br> (setq minpoint (vlax-safearray->list minpoint)) <br> ;把变体数据转化为表 <br> (setq maxpoint (vlax-safearray->list maxpoint)) <br> ;把变体数据转化为表 <br> (setq p (mapcar '+ minpoint maxpoint)) <br> (mapcar '(lambda (x) (* 0.5 x)) p)) <br><br><br>;;主程序 <br> (setq cmdecho (getvar 'cmdecho)) <br> (setq osmode (getvar 'osmode)) <br> (setvar 'osmode 0) <br> (setvar 'cmdecho 0) <br> (princ "\n选择基准物体:") <br> (setq s1 (ssget)) <br> (princ "\n选择要对齐物体:") <br> (setq s2 (ssget)) <br> (setq s1 (GXL-SEL-SS->LIST s1) <br> s2 (GXL-SEL-SS->LIST s2) <br> ) <br> ;_ 按Y从大到小排序<br> (setq s1 (mapcar '(lambda (x) (list x (GXL-GETBOXCENTER x))) s1)) <br> (setq s1 (vl-sort s1 '(lambda (a b) (> (cadadr a) (cadadr b))) )) <br><br> <br> (setq s2 (mapcar '(lambda (x) (list x (GXL-GETBOXCENTER x))) s2)) <br> (setq s2 (vl-sort s2 '(lambda (a b) (> (cadadr a) (cadadr b))) )) <br><br> ;_ 表长比较<br> (if (> (length s1) (length s2) ) <br><br> (setq </font></span><span class="Apple-style-span" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; word-wrap: break-word; color: rgb(0, 0, 0); font-family: Simsun; line-height: normal; font-size: medium; "><font class="Apple-style-span" color="#000080" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; word-wrap: break-word; "> </font></span><font class="Apple-style-span" color="#000080" style="background-color: orange; ">TMP s2 </font><span class="Apple-style-span" style="background-color: rgb(244, 164, 96);"><font class="Apple-style-span" color="#ffa500"> </font><span class="Apple-style-span" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; word-wrap: break-word; font-family: Simsun; line-height: normal; font-size: medium; "><font class="Apple-style-span" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; word-wrap: break-word; " color="#000080">s2 s1</font></span><span class="Apple-style-span" style="color: rgb(255, 165, 0); "> </span><span class="Apple-style-span" style="color: rgb(0, 0, 128); "> </span></span><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> s1 TMP ) </span><br><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> )</span><br><br><br><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (initget "H S")</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq key (getkword "[横向对齐(H)/竖向对齐(S)]: " ) )</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (cond </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (= key "H") (hen)</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> )</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (= key "S") (shu)</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> )</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> )</span><br><br><br><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (defun hen()</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq n 0) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (repeat (length s1) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq e1 (car (nth n s1)) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> p1 (cadr (nth n s1)) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> ) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (if (setq e2 (car (nth n s2))) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (progn </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq p2 (cadr (nth n s2))) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq p3 (list (car p2) (cadr p1) (caddr p2))) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (command "move" e2 "" p2 p3) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> ) ) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq n (1+ n)) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> ) </span><br><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> )</span><br><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (defun shu()</span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq n 0) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (repeat (length s1) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq e1 (car (nth n s1)) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> p1 (cadr (nth n s1)) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> ) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (if (setq e2 (car (nth n s2))) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (progn </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq p2 (cadr (nth n s2))) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq p3 (list (cadr p2) (car p1) (caddr p2))) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (command "move" e2 "" p2 p3) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> ) ) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setq n (1+ n)) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> ) </span><br><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> )</span><br><br><br><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setvar 'osmode osmode) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (setvar 'cmdecho cmdecho) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; "> (princ) </span><br><span class="Apple-style-span" style="color: rgb(0, 0, 128); background-color: orange; ">)</span>
恩不错,可是没运行成功呢,提示no function definition: HEN
crazylsp
运行你修改的那后,无反应。那对齐没效果。cad2010 64
看看情况,拿分走人
学习G版的招数
G版太强大了
看起来这个程序非常不错
批量对齐不错不错
谢谢分享程序。