zhongys 发表于 2004-3-17 21:49:00

[原创] 对比较乱的座标式标注进行对齐式标注

对比较乱的座标式标注进行对齐式标注,但只执行了一次循环,后面的不能执行,请各位多指教.


(defun c:p_dim()<BR>(setvar "cmdecho" 0)<BR>(setq old_la (getvar "clayer"))<BR>(setvar "clayer" "尺寸线层")<BR>(prompt "\n选择基准尺寸")<BR>(setq ent1 (entsel))<BR>       (while (= nil ent1)<BR>                       (prompt "\n选择基准尺寸")<BR>                       (setq ent1 (entsel))<BR>       )<BR>(setq en1 (entget (car ent1)))<BR>(setq uc1 (trans (cdr (assoc 10 en1))0 1))<BR>(command "ucs" "o" uc1)<BR>(setq po1 (trans (cdr (assoc 13 en1)) 0 1))<BR>(setq po2 (trans (cdr (assoc 14 en1)) 0 1))<BR>(prompt "\n选择更新尺寸")<BR>(setq i 0)<BR>(setq ent2 (ssget '((0 . "DIMENSION"))))<BR>       (while (= nil ent2)<BR>                       (prompt "\n选择更新尺寸")<BR>                       (setq ent2 (ssget '((0 . "DIMENSION"))))<BR>       )<BR>       (repeat       (sslength ent2)<BR>                       (progn<BR>                                       (setq en2 (entget (ssname ent2 i)))<BR>                                       (setq uc2 (trans (cdr (assoc 10 en2)) 0 1))<BR>                                       (setq e3       (trans (cdr (assoc 13 en2)) 0 1))<BR>                                       (setq e4       (trans (cdr (assoc 14 en2)) 0 1))<BR>                                       (command "erase" ent1 "")<BR>                                       (command "erase" ent2 "")<BR>                                       (command "DIMORDINATE" po1 po2)<BR>                                       (command "DIMCONTINUE" e3 "" "")<BR>                       )<BR>       (setq i (1+ i))<BR>       )<BR>(setvar "clayer" old_la)<BR>(princ)<BR>)

龙龙仔 发表于 2004-3-18 08:20:00

(repeat (sslength ent2)<BR>                       (progn<BR>                                       (setq en2 (entget (ssname ent2 i)))<BR>                                       (setq uc2 (trans (cdr (assoc 10 en2)) 0 1))<BR>                                       (setq e3 (trans (cdr (assoc 13 en2)) 0 1))<BR>                                       (setq e4 (trans (cdr (assoc 14 en2)) 0 1))<BR>                                       (command "DIMORDINATE" po1 po2)<BR>                                       (command "DIMCONTINUE" e3 "" "")<BR>                       )<BR>                       (setq i (1+ i))<BR>       )<BR>       (command "erase" ent1 "");move<BR>       (command "erase" ent2 "");move
页: [1]
查看完整版本: [原创] 对比较乱的座标式标注进行对齐式标注