尺寸对齐的程序,高版本的CAD有此功能,可低版本的没有,自己编一个,
- y% k u: o8 }% J1 A4 L只能对水平、垂直的标注有效!!!!!!!
8 V2 i6 a2 i) t3 V+ L# [: ?2 l& F$ U) r9 r1 q1 ]2 ~2 N
不够完善,那位大师补充一下
; F @2 d8 \ ^% E, @
8 v% O2 d1 A% C5 M(defun C:DIMalign()
0 |/ G) Y/ d* g$ L+ k(setq DIMENSION (entget (car (entsel))))
2 V8 @/ k& C8 \. ~: Y(setq DIMENSION (subst (cons 70 160) (assoc 70 DIMENSION) DIMENSION ))' ^& X- y! P0 `3 O' h" I
(if (= (cdr (assoc '50 DIMENSION)) 0.0)) b' H/ X) M4 ~& V* ^+ ~# g: u
(progn
; H2 l" N, Q* r (setq Y (caDdr (assoc '10 DIMENSION)))
! ]# a: K4 p: ]1 { (setq X (cadr (assoc '11 DIMENSION)))
5 C6 `; G/ G# V+ C, ?6 O) J0 q+ B (setq DIMENSION (subst (cons 11 (LIST X Y 0.0)) (assoc 11 DIMENSION) DIMENSION ))6 @$ {0 O3 W. w0 I/ t! L" f: W5 z
(entmod DIMENSION)
7 F# ], `" F5 q0 q; z (setq Y (caDdr (assoc '11 DIMENSION))) ], ?6 j- v$ J1 k% ~, f8 g- m
(setq SSL (SSGET)), o* A$ `% D) R9 G* l
(setq N (- (sslength ssl) 1))
- F8 F2 y. I: }2 k, ?# J9 d* q (setq test 0)/ B1 t% Y m" {1 n- n' f
(while (<= test N )
G" U# E, g2 u (setq DIMENSION (ENTGET (ssname ssL test)))- n/ [. O F0 U9 P( I3 \
(setq DIMENSION (subst (cons 70 160) (assoc 70 DIMENSION) DIMENSION ))6 S* |2 f- l, P
(setq X (cadr (assoc '11 DIMENSION))); \8 }* F* z4 N9 x# h+ y* E- N5 ^
(setq DIMENSION (subst (cons 11 (LIST X Y 0.0)) (assoc 11 DIMENSION) DIMENSION ))2 h5 V* d g |. R" z r
(entmod DIMENSION)
( P2 T8 A& Y: R. g, e (setq test (+ 1 test))! y# E: ~0 w) l9 W3 H# \
)
% X8 p0 }( y3 _+ v5 m) q" Z" \ )" l* w! c e3 k" p5 D$ A+ @9 \2 @
(progn. {4 w: C. Q) [; g2 `
(setq X (cadr (assoc '10 DIMENSION)))
( n% l+ O/ N- B6 c1 Y1 b; r2 o (setq Y (caddr (assoc '11 DIMENSION)))$ v4 q* ?8 _' i5 L4 u4 S3 z
(setq DIMENSION (subst (cons 11 (LIST X Y 0.0)) (assoc 11 DIMENSION) DIMENSION ))
- {9 d; Q: I( W+ H s' g% W (entmod DIMENSION)
8 e* U3 P! }3 U1 x3 f (setq X (cadr (assoc '11 DIMENSION)))
& ^0 ^# N1 h0 Z/ T (setq SSL (SSGET))
+ `1 |3 _. P6 n (setq N (- (sslength ssl) 1)), l+ J8 l2 g& |, a4 o
(setq test 0)2 Z% n4 h5 R! u. H
(while (<= test N )
( P- l& W3 K% {2 `8 l (setq DIMENSION (ENTGET (ssname ssL test)))
2 e! r. I ]: c) f (setq DIMENSION (subst (cons 70 160) (assoc 70 DIMENSION) DIMENSION ))
8 @8 I. g8 w7 Y (setq Y (caDdr (assoc '11 DIMENSION)))
' [- m- }+ v5 S$ H$ v (setq DIMENSION (subst (cons 11 (LIST X Y 0.0)) (assoc 11 DIMENSION) DIMENSION ))
" C1 ]- I* o" G (entmod DIMENSION)! r" L# G$ c$ Z+ }/ e
(setq test (+ 1 test))
$ {. n# s" a$ h6 x+ d E" c$ f )
& R: R& t' t( S4 l )
- }5 Y7 v3 Q u$ I( M- N)
, S: |- n# X6 ` v1 F& ]3 i" p) |