(DEFUN INTP( P / x y z) (setq mdec 1) (SETQ X (RTOS (CAR P) 2 mdec)) (SETQ Y (RTOS (CADR P) 2 mdec)) (SETQ Z (RTOS (CADR(CDR P)) 2 mdec)) (SETQ X (ATOF X)) (SETQ Y (ATOF Y)) (SETQ Z (ATOF Z)) (setq p (list x y z )) ) (defun range_of_arc(sa ea cp / right top left bott ) (setq sp (polar cp sa r)) (setq ep (polar cp ea r)) (setq right (max (car sp) (car ep))) (setq left (min (car sp) (car ep))) (setq top (max (cadr sp) (cadr ep))) (setq bott (min (cadr sp) (cadr ep))) (setq dpi (* pi 2)) (if (< ea sa) (setq ea (+ ea dpi)) ) ( if (or (and (>= 0 sa) (<= 0 ea)) (and (or (> dpi sa) (< (abs(- dpi sa)) 0.00001)) (or (< dpi ea) (< (abs(- dpi ea)) 0.00001))) ) (setq right (+ (car cp) r)) ) ( if (or (and (or (> (* pi 0.5) sa) (< (abs(- (* pi 0.5) sa)) 0.00001)) (or (< (* pi 0.5) ea) (< (abs(- (* pi 0.5) ea)) 0.00001))) (and (or (> (* pi 2.5) sa) (< (abs(- (* pi 2.5) sa)) 0.00001)) (or (< (* pi 2.5) ea) (< (abs(- (* pi 2.5) ea)) 0.00001))) ) (setq top (+ (cadr cp) r)) ) ( if (or (and (or (> pi sa) (< (abs(- pi sa)) 0.00001)) (or (< pi ea) (< (abs(- pi ea)) 0.00001))) (and (or (> (* pi 3) sa) (< (abs(- (* pi 3) sa)) 0.00001)) (or (< (* pi 3) ea) (< (abs(- (* pi 3) ea)) 0.00001))) ) (setq left (- (car cp) r)) ) ( if (or (and (or (> (* pi 1.5) sa) (< (abs(- (* pi 1.5) sa)) 0.00001)) (or (< (* pi 1.5) ea) (< (abs(- (* pi 1.5) ea)) 0.00001))) (and (or (> (* pi 3.5) sa) (< (abs(- (* pi 3.5) sa)) 0.00001)) (or (< (* pi 3.5) ea) (< (abs(- (* pi 3.5) ea)) 0.00001))) ) (setq bott (- (cadr cp) r)) ) (setq temp (list left top right bott)) ) (defun range(ent_data / temp x1 x2 y2 y1 ent_class sa ea cp r sp ep right top left bott tright ttop teft tbott) (setq ent_class (cdr (assoc 0 ent_data))) (if (= ent_class "INSERT") (progn (setq x1 (car (cdr(assoc 10 ent_data)))) (setq y1 (cadr (cdr(assoc 10 ent_data)))) (setq right X1) (setq left X1) (setq top Y1) (setq bott Y1) ) ) (if (= ent_class "LINE") (progn (setq x1 (car (cdr(assoc 10 ent_data)))) (setq y1 (cadr (cdr(assoc 10 ent_data)))) (setq x2(car (cdr(assoc 11 ent_data)))) (setq y2(cadr (cdr(assoc 11 ent_data)))) (setq right (max x1 x2)) (setq left (min x1 x2)) (setq top (max y1 y2)) (setq bott (min y1 y2)) ) ) (if (= ent_class "CIRCLE") (progn (setq right (+ (car (cdr (assoc 10 ent_data))) (cdr (assoc 40 ent_data)))) (setq left (- (car (cdr (assoc 10 ent_data))) (cdr (assoc 40 ent_data)))) (setq top (+ (cadr (cdr (assoc 10 ent_data))) (cdr (assoc 40 ent_data)))) (setq bott (- (cadr (cdr (assoc 10 ent_data))) (cdr (assoc 40 ent_data)))) ) ) (if (= ent_class "ARC") (PROGN (setq cp (cdr (assoc 10 ent_data))) (setq r (cdr (assoc 40 ent_data))) (setq sa(cdr (assoc 50 ent_data))) (setq ea(cdr (assoc 51 ent_data))) (setq temp (range_of_arc sa ea cp)) (setq left (car temp)) (setq top (cadr temp)) (setq right(caddr temp)) (setq bott (cadddr temp)) ) ) (if (= ent_class "LWPOLYLINE") (PROGN (setq oed ent_data) (while (/= 10 (car (car ent_data)))(setq ent_data (cdr ent_data))) (setq top (cadr (cdr(assoc 10 ent_data))) left(car (cdr(assoc 10 ent_data))) ) (setq bott top right left) (while (/= nil (assoc 10 (cdr ent_data))) (setq sp (cdr(assoc 10 ent_data))) (setq bulge (cdr(assoc 42 ent_data))) (repeat 2(setq ent_data (cddr ent_data))) (setq ep (cdr(assoc 10 ent_data))) (if (= 0 bulge) (progn (setq top (max top (cadr sp) (cadr ep))) (setq left (min left (car sp) (car ep))) (setq right(max right (car sp)(car ep))) (setq bott(min bott(cadr sp) (cadr ep))) ) (progn (if (> 0 bulge) (progn (setq bulge(abs bulge)) (setq temp sp) (setq sp ep) (setq ep temp))) (setq d (distance sp ep)) (setq h (/ (* bulge d) 2)) (setq r (+(/ h 2) (/ (* d d) (* 8 h)))) (setq mp (list (/ (+ (car sp) (car ep)) 2) (/ (+ (cadr sp) (cadr ep)) 2) 0)) (setq agle(- (angle ep sp) (/ pi 2))) (setq cp (polar mp agle (- r h))) (setq sa (angle cp sp) ea (angle cp ep)) (setq temp (range_of_arc sa ea cp)) (setq left (min left (car temp))) (setq top(max top (cadr temp))) (setq right(max right(caddr temp))) (setq bott(min bott (cadddr temp))) ) ) ) (if (OR (= (cdr (assoc 70 oed)) 129)(= (cdr (assoc 70 oed)) 1)) (progn (setq sp (cdr(assoc 10 ent_data))) (setq bulge (cdr(assoc 42 ent_data))) (setq ep (cdr(assoc 10 oed))) (if (= 0 bulge) (progn (setq top (max top (cadr sp) (cadr ep))) (setq left (min left (car sp) (car ep))) (setq right(max right (car sp)(car ep))) (setq bott(min bott(cadr sp) (cadr ep))) ) (progn (if (> 0 bulge) (progn (setq bulge(abs bulge)) (setq temp sp) (setq sp ep) (setq ep temp))) (setq d (distance sp ep)) (setq h (/ (* bulge d) 2)) (setq r (+(/ h 2) (/ (* d d) (* 8 h)))) (setq mp (list (/ (+ (car sp) (car ep)) 2) (/ (+ (cadr sp) (cadr ep)) 2) 0)) (setq agle(- (angle ep sp) (/ pi 2))) (setq cp (polar mp agle (- r h))) (setq sa (angle cp sp) ea (angle cp ep)) (setq temp (range_of_arc sa ea cp)) (setq left (min left (car temp))) (setq top(max top (cadr temp))) (setq right(max right(caddr temp))) (setq bott(min bott (cadddr temp))) )))))) (setq temp (list left top right bott)) ) (defun rang_of_ss(ent_list / list_len id tleftt tbott ttop tright ent_data osvalue cmdvalue od nd bp) (setq list_len (sslength ent_list)) (setq ent_data (entget (ssname ent_list 0))) (setq temp (range ent_data)) (setq left (car temp)) (setq top (cadr temp)) (setq right(caddr temp)) (setq bott (caddr (cdr temp))) (setq id 1) (repeat (- list_len 1) (setq ent_data (entget (ssname ent_list id))) (setq temp (range ent_data)) (setq tleft (car temp)) (setq ttop (cadr temp)) (setq tright(caddr temp)) (setq tbott (caddr (cdr temp))) (setq left (min tleft left)) (setq top (max ttop top)) (setq right(max tright right)) (setq bott(min tbott bott)) (setq id (1+ id)) ) (setq ent_list nil) (list left top right bott) ) ;;;;****************** autodim V0.1 (setq e 0.0001 UNSPEC 0.150) (DEFUN TRANSM2W(NENT PT) (IF (NOT(CDDR PT)) (SETQ PT(LIST (CAR PT) (CADR PT) 0 ) )) (LIST (+(*(CAR PT)(CAR (CAR NENT))) (*(CADR PT)(CAR (CADR NENT))) (*(CADDR PT)(CAR ( CADDR NENT))) (CAR(CADDDR NENT))) (+(*(CAR PT)(CADR (CAR NENT))) (*(CADR PT)(CADR (CADR NENT))) (*(CADDR PT)(CADR ( CADDR NENT))) (CADR(CADDDR NENT))) (+(*(CAR PT)(CADDR (CAR NENT))) (*(CADR PT)(CADDR (CADR NENT))) (*(CADDR PT)(CADDR ( CADDR NENT))) (CADDR(CADDDR NENT))) ) ) (DEFUN FIND_PT(PT / TPT ID) (SETQ ID 0 TPT NIL) (REPEAT NUM_PT (IF (EQUAL PT (CAR (EVAL(READ(STRCAT "PT"(ITOA iD)))))) (SETQ TPT (EVAL(READ(STRCAT "PT"(ITOA iD)))))) (SETQ ID (1+ ID)) ) TPT ) (DEFUN FIND_PTNO(PT / TPT ID) (SETQ ID 0 PTNO NIL) (REPEAT NUM_PT (IF (EQUAL PT (CAR (EVAL(READ(STRCAT "PT"(ITOA iD)))))) (SETQ PTNO ID) ) (SETQ ID (1+ ID)) )   TNO ) (DEFUN ADD_PT(PT ;THE POINT B ;NIL FOR DIVISION T FOR VISIONABLE DIR;0 FOR ALL THE DIRECTION(X&Y),1 FOR X DIRECTION ,2 FOR Y DIRECTION DSCRB / I BOOL) (SETQ I 0) (SETQ BOOL NIL) (REPEAT NUM_PT (IF (is1pt (car (EVAL (READ (STRCAT "PT" (ITOA I))))) pt ) (SETQ BOOL T)) (SETQ I (1+ I)) ) (IF (= BOOL NIL) (PROGN (SET (READ (STRCAT "PT" (ITOA NUM_PT))) (LIST PT B DIR 0 0 DSCRB)) (SETQ NUM_PT (1+ NUM_PT)))) ) (defun is1pt(pt1 pt2);耞翴琌 (and (<(abs (-(car pt1) (car pt2))) e)(<(abs(-(cadr pt1) (cadr pt2))) e)) )
(DEFUN is_clock_order(pt1 pt2 pt3 / agl);耞翴抖琌琌抖皐 (setq agl (-(angle pt1 pt2)(angle pt1 pt3))) (if (minusp agl) (setq agl(+ agl (* 2 pi)))) (if (< agl pi) t nil) )
(defun is_cut_line(arc_sp arc_ep arc_cp r line_sp line_ep / agl cutp);蛾┓籔絬琌钡钡 (setq agl(angle line_sp line_ep)) (if(is_clock_order line_sp arc_cp line_ep) (setq agl(- agl (/ pi 2))) (setq agl(+ agl (/ pi 2))) ) (setq cutp (polar arc_cp agl r)) (IF (and (or(is1pt cutp line_sp)(is1pt cutp line_ep))(or(is1pt cutp arc_sp)(is1pt cutp arc_ep))) CUTP) )
(defun is_cut_arc(sp1 ep1 cp1 r1 sp2 ep2 cp2 r2 / CUTPT) (SETQ CUTPT NIL) (if(AND (or(< (abs(- (+ R1 R2)(DISTANCE CP1 CP2)))e)(< (abs(- (abs(- R1 R2))(DISTANCE CP1 CP2)))e)) (OR (IF (IS1PT SP1 SP2) (SETQ CUTPT SP1) ) (IF (IS1PT SP1 EP2) (SETQ CUTPT SP1) ) (IF (IS1PT EP1 SP2) (SETQ CUTPT EP1) ) (IF (IS1PT EP1 EP2) (SETQ CUTPT EP1) ) ) )CUTPT nil) )
(defun mid_ag(sa ea / mag) (if (< ea sa)(setq sa (- sa (* 2 pi)))) (if (minusp (setq mag (/ (+ ea sa) 2))) (setq mag(+ (* 2 pi) mag))) mag )
(defun ag-ag(sa ea / ag) (setq ag (- ea sa)) (if (minusp ag) (setq ag(+ (* 2 pi) ag))) ag )
(defun is_quangle(ang) (or (< (abs ang)e)(<(abs(- ang (/ pi 2)))e)(<(abs(- ang pi))e)(<(abs(- ang (* pi 1.5)))e)) ) (DEFUN P-P(PT1 PT2) (LIST (-(CAR PT1)(CAR PT2))(-(CADR PT1)(CADR PT2)) 0) ) (DEFUN ADD_TMPT(INFOPT) (SET(READ(STRCAT "TMPT" (ITOA NUM_TMPT))) INFOPT) (SETQ NUM_TMPT (1+ NUM_TMPT)) ) (DEFUN ADD_TMPT2(INFOPT) (SET(READ(STRCAT "TMPT2" (ITOA NUM_TMPT2))) INFOPT) (SETQ NUM_TMPT2 (1+ NUM_TMPT2)) ) (DEFUN GETPT(N) (EVAL(READ (STRCAT "PT" (ITOA N)))) ) (DEFUN GETTMPT(N) (EVAL(READ (STRCAT "TMPT"(ITOA N)))) ) (DEFUN GETTMPT2(N) (EVAL(READ (STRCAT "TMPT2"(ITOA N)))) ) (defun set_diminfo(ent str xory / stro entd) (setq entd (entget ent)) (if (OR (= (cdr (assoc 0 entd)) "DIMENSION")(= (cdr (assoc 0 entd)) "MTEXT")) (PROGN (if (=(cdr(assoc 1 entd)) "") (setq entd (subst (cons 1 "<>") (assoc 1 entd) entd))) (setq stro(cdr(assoc 1 entd))) (if (or(and(= (STRCASE xory) "Y")(<(CAR(cdr(assoc 13 entd)))(CAR(cdr(assoc 14 entd))))) (and(= (STRCASE xory) "X")(<(caDr(CdR(assoc 13 entd)))(caDr(CdR(assoc 14 entd))))) ) (setq entd (subst (cons 1 (strcat stro "{\\C1;" str "}" )) (assoc 1 entd) entd)) (setq entd (subst (cons 1 (strcat "{\\C1;" str "}" stro )) (assoc 1 entd) entd)) ) (entmod entd) ) ) ) (DEFUN ADD_ARC(SP EP CP R EA SA) (SET (READ(STRCAT"ENT"(ITOA NUM_ENT))) (LIST "ARC" (LIST SP EP CP R EA SA))) (SETQ NUM_ENT (1+ NUM_ENT)) (EVAL(READ(STRCAT"ENT"(ITOA (1- NUM_ENT))))) ) (DEFUN ADD_LINE(SP EP) (SET (READ(STRCAT"ENT"(ITOA NUM_ENT)))(LIST "LINE" (LIST SP EP ))) (SETQ NUM_ENT (1+ NUM_ENT)) (EVAL(READ(STRCAT"ENT"(ITOA (1- NUM_ENT))))) ) (DEFUN ADD_CIRCLE (CP) (SET (READ(STRCAT"ENT"(ITOA NUM_ENT)))(LIST "CIRCLE"CP)) (SETQ NUM_ENT (1+ NUM_ENT)) (EVAL(READ(STRCAT"ENT"(ITOA (1- NUM_ENT))))) ) (DEFUN ADD_ARCTYPE(R / ID B) (IF(>(ABS(- R UNSPEC))E)(PROGN (SETQ ID 0 B NIL) (REPEAT NUM_ARCTYPE (IF (<(ABS(-(CAR(EVAL(READ (STRCAT "ARCTYPE"(ITOA ID))))) R))E) (SETQ B (CADR(EVAL(READ (STRCAT "ARCTYPE"(ITOA ID))))))) (SETQ ID (1+ ID)) ) (IF (NOT B) (PROGN (SET (READ (STRCAT "ARCTYPE"(ITOA NUM_ARCTYPE))) (LIST R (CHR(+ 65 NUM_ARCTYPE)))) (SETQ B (CADR(EVAL(READ (STRCAT "ARCTYPE"(ITOA ID))))) NUM_ARCTYPE(1+ NUM_ARCTYPE) ))) ) (SETQ B NIL)) B ) (DEFUN FIND_ARC(R / ID B) (SETQ ID 0 B NIL) (REPEAT NUM_ARCTYPE (IF (<(ABS(-(CAR(EVAL(READ (STRCAT "ARCTYPE"(ITOA ID)))))R))E) (SETQ B (CADR(EVAL(READ (STRCAT "ARCTYPE"(ITOA ID))))))) (SETQ ID (1+ ID)) ) B ) ;;;;****************************** (defun c:adF(/ sslist sslen opt oth lpt 2pt rang mpt offsetpt offset id ENTD ent_class idd entdd R CP SP EP SA EA mag ml mp iscut CPP SPP EPP SAA EAA RR ssp eep temp CUTANGL ENTDT bulge D H R AGLE is_quat PTNO IS_CLOSE cut_quat is_leave TP X Y OPT_DIR after_0 befor_0 dimtext) (setq sslist (ssget '((-4 . "<or")(0 . "INSERT") (0 . "LINE") (0 . "ARC") (0 . "LWPOLYLINE") (0 . "CIRCLE")(-4 . "or>")))) (setq sslen (sslength sslist) NUM_PT 0 NUM_ENT 0) (if (/= 1 (getvar "DIMLFAC")) (alert (strcat "讽玡夹猔ゑㄒ" (rtos (getvar "dimlfac") 2 3))) ) ;;(command"-LAYER""m""51""c""magenta""""LT""CENTER""""" ) (command"OSNAP" "CEN+INT") (COMMAND"UCS" "W" "") (setq opt (getpoint "请指定坐标基准点:")) (SETQ OOS(GETVAR "OSMODE")) (SETVAR "OSMODE" 0) (setq oth(getvar "orthomode")) (setvar "orthomode" 1) (setq offsetpt (getpoint opt)) (setvar "orthomode" oth) (setq offset (max (abs (- (car opt) (car offsetpt))) (abs (- (cadr opt) (cadr offsetpt))))) (setq rang(rang_of_ss sslist));┮匡瓜伐 (setq mpt (list (/ (+ (car rang) (caddr rang)) 2) (/ (+ (cadr rang) (cadddr rang))2))) ;;;;;;;;;;;;;;;;;;;;;;;arc (setq id 0) (repeat sslen (SETQ ENTD(ENTGET(SSNAME SSLIST ID))) (SETQ ENT_CLASS(CDR (ASSOC 0 ENTD))) (COND ((= ENT_CLASS "ARC") (PROGN (setq cp (cdr (assoc 10 entd))) (setq r (cdr (assoc 40 entd))) (setq sa(cdr (assoc 50 entd))) (setq ea(cdr (assoc 51 entd))) (setq sp (polar cp sa r) ep (polar cp ea r)) (ADD_ARC SP EP CP R SA EA) )) ((= ENT_CLASS "LINE") (PROGN (SETQ SP(CDR(ASSOC 10 ENTD))) (SETQ EP(CDR(ASSOC 11 ENTD))) (ADD_LINE SP EP) )) ((= ENT_CLASS "CIRCLE")(ADD_CIRCLE (CDR(ASSOC 10 ENTD)))) ((= ENT_CLASS "INSERT")(ADD_CIRCLE (CDR(ASSOC 10 ENTD)))) ((= ENT_CLASS "LWPOLYLINE") (PROGN (SETQ ENTDT ENTD) (while (/= 10 (car (car entDT)))(setq entDT (cdr entDT))) (while (/= nil (assoc 10 (cdr entDT))) (setq sp (cdr(assoc 10 entDT))) (setq bulge (cdr(assoc 42 entDT))) (setq entDT(cddDDr entDT)) (setq ep (cdr(assoc 10 entDT))) (IF (= 0 BULGE)(ADD_LINE SP EP) (PROGN (if (> 0 bulge) (progn (setq bulge(abs bulge)) (setq temp sp) (setq sp ep) (setq ep temp))) (setq d (distance sp ep)) (setq h (/ (* bulge d) 2)) (setq r (+(/ h 2) (/ (* d d) (* 8 h)))) (setq mp (list (/ (+ (car sp) (car ep)) 2) (/ (+ (cadr sp) (cadr ep)) 2) 0)) (setq agle(- (angle ep sp) (/ pi 2))) (setq cp (polar mp agle (- r h))) (setq sa (angle cp sp) ea (angle cp ep)) (ADD_ARC SP EP CP R SA EA) ));IF (= 0 BULGE) );WHILE (IF(OR(= (CDR(ASSOC 70 ENTD)) 1)(=(CDR(ASSOC 70 ENTD)) 129)) (PROGN (SETQ SP (CDR(ASSOC 10 ENTDT)) BULGE(CDR(ASSOC 42 ENTDT)) EP(CDR(ASSOC 10 ENTD))) (IF (= 0 BULGE)(ADD_LINE SP EP) (PROGN (if (> 0 bulge) (progn (setq bulge(abs bulge)) (setq temp sp) (setq sp ep) (setq ep temp))) (setq d (distance sp ep)) (setq h (/ (* bulge d) 2)) (setq r (+(/ h 2) (/ (* d d) (* 8 h)))) (setq mp (list (/ (+ (car sp) (car ep)) 2) (/ (+ (cadr sp) (cadr ep)) 2) 0)) (setq agle(- (angle ep sp) (/ pi 2))) (setq cp (polar mp agle (- r h))) (setq sa (angle cp sp) ea (angle cp ep)) (ADD_ARC SP EP CP R SA EA) ));IF (= 0 BULGE) ));IF(OR(= (CDR(ASSOC 70 ENTD)) 1)(=(CDR(ASSOC 70 ENTD)) 129)) )) );COND (SETQ ID(1+ ID)) );REPEAT (setq id 0) (repeat NUM_ENT (if (=(CAR(EVAL (READ(STRCAT "ENT" (ITOA ID))))) "ARC") (PROGN (setq iscut '(nil nil)is_quat '(0 0)) (setq SP (CAR(CADR (EVAL(READ (STRCAT "ENT" (ITOA ID)))))) EP (CADR(CADR(EVAL(READ (STRCAT "ENT" (ITOA ID)))))) CP (CADDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA ID)))))) R (CADDDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA ID)))))) SA (CAR(CDDDDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA ID))))))) EA (CADR(CDDDDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA ID))))))) ) (setq mp nil) (setq idd 0) (repeat NUM_ENT (IF(and (= (CAR(EVAL(READ (STRCAT "ENT" (ITOA IDD))))) "ARC")(/= idd id)) (PROGN (setq SPP (CAR(CADR (EVAL(READ (STRCAT "ENT" (ITOA IDD)))))) EPP (CADR(CADR(EVAL (READ(STRCAT "ENT" (ITOA IDD)))))) CPP (CADDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA IDD)))))) RR (CADDDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA IDD)))))) SAA (CAR(CDDDDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA IDD))))))) EAA (CADR(CDDDDR(CADR(EVAL(READ (STRCAT "ENT" (ITOA IDD))))))) ) (IF (setq temp(IS_CUT_ARC SP EP CP R SPP EPP CPP RR)) (PROGN (add_pt temp nil 0 NIL) (ADD_PT CP T 0 "CL")(ADD_PT CPP T 0 "CL") (if(is1pt sp temp)(setq iscut (list t (cadr iscut)))) )) ) ROGN ) (setq idd(1+ idd)) );END REPEAT ;;;;;;;; (setq idd 0) (repeat NUM_ENT (IF(= (CAR(EVAL(READ (STRCAT "ENT" (ITOA IDD))))) "LINE") (PROGN (setq SPP (CAR(CADR (EVAL(READ (STRCAT "ENT" (ITOA IDD)))))) EPP (CADR(CADR(EVAL (READ(STRCAT "ENT" (ITOA IDD))))))) (if (setq temp(IS_CUT_line SP EP cp R SPP EPP)) (progn (if(is1pt sp temp)(setq iscut (list t (cadr iscut))) (setq iscut (list (car iscut) t ))) (SETQ CUTANGL (ANGLE CP TEMP)) (COND ((OR(< (abs CUTANGL)e)(<(abs(- CUTANGL pi))e)(<(abs(- CUTANGL (* 2 pi)))e)) (progn (if(is1pt temp sp)(setq is_quat (list 2 (cadr is_quat)))(setq is_quat(list (car is_quat) 2))) (ADD_PT TEMP T 1 NIL) )) ((OR(<(abs(- CUTANGL (/ pi 2)))e)(<(abs(- CUTANGL (* pi 1.5)))e)) (progn (if(is1pt temp sp)(setq is_quat (list 1 (cadr is_quat)))(setq is_quat(list (car is_quat) 1))) (ADD_PT TEMP T 2 NIL))) (T (PROGN ;(AND (NOT(FIND_PT CP)) (add_pt temp nil 0 NIL) (IF (= NIL( FIND_PT CP)) (PROGN (if (> (ag-ag sa ea) (/ pi 2)) (add_pt cp t 0 "CL") (if (= mp nil) (progn (setq mag(mid_ag sa ea)) (setq ml(/ r (cos (ag-ag mag ea)))) (setq mp(polar cp mag ml)) (add_pt mp t 0 "INT")(add_pt cp nil 0 "INT") (command ".line" sp mp "") (command ".line" ep mp "") ) ROGN )) )) ;);AND )) );COND );progn );if );END PROGN ) (setq idd(1+ idd)) );END REPEAT (if (and (= NIL MP) (= 0 (*(car is_quat)(cadr is_quat))) (/= 0(setq temp(+(car is_quat)(cadr is_quat))) ) ) (IF (SETQ PTNO(FIND_PTNO CP)) (SET (READ(STRCAT "PT" (ITOA PTNO))) (LIST CP T TEMP 0 0"CL")) (add_pt cp t TEMP "CL")) ) (if (and (car iscut)(cadr iscut)) (progn (add_pt sp t 0 NIL)(add_pt ep t 0 NIL) (COND ((AND(< (abs(-(ag-ag sa ea) pi))e)(/= 0 (*(car is_quat)(cadr is_quat)))) (add_pt cp t (CAR IS_QUAT) "CL")) ((< (abs(-(ag-ag sa ea) pi))e)(add_pt cp t 0 "CL")) )) (progn (add_pt sp t 0 NIL)(add_pt ep t 0 NIL)(add_pt cp t 0 "CL"))) );END PROGN );end if (SETQ ID(1+ ID)) );REPEAT ;;;;;;;;;;;;;;;;;;;;;;;line&CIRCLE (setq id 0) (repeat NUM_ENT (if(= (CAR(EVAL(READ (STRCAT "ENT" (ITOA ID))))) "LINE") (PROGN (ADD_PT (CAR(CADR (EVAL(READ (STRCAT "ENT" (ITOA ID))))))t 0 NIL) (ADD_PT (CADR(CADR (EVAL(READ (STRCAT "ENT" (ITOA ID))))))t 0 NIL) )) (IF(= (CAR(EVAL(READ (STRCAT "ENT" (ITOA ID))))) "CIRCLE") (ADD_PT (CADR (EVAL(READ (STRCAT "ENT" (ITOA ID)))))T 0 NIL)) (setq id (1+ id)) ) ;(command"-LAYER""m""41""c""green""""") (SETQ DIST_OFFSET(DISTANCE OFFSETPT OPT)) (setq dimtext (*(getvar "DIMTXT")1.25 (getvar "DIMSCALE"))) (setvar "orthomode" 0) ;;;;;;;;;;;;;;;Y_LEFT (IF(>(car opt)(car mpt)) (SETQ OPT_DIR NIL)(SETQ OPT_DIR T)) (SETQ NUM_TMPT 0) (setq id 0) (repeat NUM_PT (IF (AND(CADR(GETPT ID)) (/= 1(CADDR(GETPT ID))) (>(ABS(-(CADR(CAR(GETPT ID))) (CADR OPT))) E) (if OPT_DIR(<=(car(car(getpt id)))(car mpt)) (>(car(car(getpt id)))(car mpt)))) (PROGN (SETQ IS_leave T);琌玂痙 (SETQ IDD 0) (REPEAT NUM_PT (AND (/= IDD ID) (if OPT_DIR (AND(AND (CADR(GETPT IDD)) (/= 1(CADDR(GETPT IDD))) (<(ABS(-(CADR(CAR(GETPT ID))) (CADR(CAR(GETPT IDD))))) E)) (AND(>(car(car(getpt id))) (car(car(getpt idd)))) (setq is_leave NIL)) ) (AND(AND (CADR(GETPT IDD)) (/= 1(CADDR(GETPT IDD))) (<(ABS(-(CADR(CAR(GETPT ID))) (CADR(CAR(GETPT IDD))))) E)) (AND(<(car(car(getpt id))) (car(car(getpt idd)))) (setq is_leave NIL) ) ) )) (SETQ IDD(1+ IDD)) ) (and is_leave (add_tmpt (getpt id))) )) (setq id(1+ id)) );repeat (COMMAND "UCS" "O" OPT "") (if OPT_DIR (SETQ X (-(-(CAR RANG)DIST_OFFSET)(CAR OPT))) (SETQ X (-(+ DIST_OFFSET(CADDR RANG))(CAR OPT))) ) ;;(setq ppg (opt pi 2)) ;;************************************* (COMMAND ".DIMORDINATE" "0,0" "Y" (LIST X 0)) (IF (SETQ TemP(FIND_PT OPT))(and (cadr(cddddr TEMP)) (set_diminfo (entlast) (cadr(cddddr TEMP)) "Y"))) (add_tmpt (list opt t 0 0 0 nil)) ;ordering (setq id 0) (repeat num_tmpt (setq idd (1+ id)) (repeat (-(1- num_tmpt) id) (if (>(cadr(car (gettmpt id)))(cadr(car (gettmpt idd)))) (progn (setq temp (gettmpt id)) (set (READ (STRCAT "TMPT"(ITOA id)))(gettmpt idd) ) (set (READ (STRCAT "TMPT"(ITOA idd))) temp) )) (setq idd(1+ idd)) ) (setq id(1+ id)) ) ;end order ;(setq id 0) ;(repeat num_pt ; (print (cadr(car(gettmpt id))))(setq id(1+ id)) ;) (setq id 0) (while (/= (cadr(car(gettmpt id))) (cadr opt)) (setq id(1+ id)) ) (setq befor_0 (1- id) after_0 (1+ id)) (and (>= befor_0 0);(LIST PT B DIR 0 0 DSCRB) (progn (and (<(setq temp(-(CADR OPT)(CADR(CAR(GETTMPT befor_0))))) dimtext) (set (READ (STRCAT "TMPT"(ITOA befor_0))) (list (car (gettmpt befor_0)) t 0 0 (- temp dimtext) (cadr(cddddr(gettmpt befor_0))))) ) (setq id (1- befor_0)) (repeat befor_0 (and (<(setq temp(- (+(car(cddddr(gettmpt (1+ id))))(CADR(CAR(GETTMPT (1+ id))))) (cadr(car(gettmpt id))))) dimtext) (progn (if (and (= 0 (CAR(cDdddr(gettmpt(1+ id))))) (>= (- (- (+(CADR(CAR(GETTMPT (+ 2 id)))) (car(cddddr(gettmpt (+ 2 id))))) (cadr(car(gettmpt (1+ id)))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "TMPT"(ITOA (1+ id))))(list (car (gettmpt (1+ id))) t 0 0 (- dimtext temp ) (cadr(cddddr(gettmpt (1+ id)))))) (set (READ (STRCAT "TMPT"(ITOA id)))(list (car (gettmpt id)) t 0 0 (- temp dimtext ) (cadr(cddddr(gettmpt id))))) );if ));and (SETQ ID(1- ID)) ) ) );(and befor_0 (and(< after_0 num_tmpt) (progn (and (<(setq temp(-(CADR(CAR(GETTMPT after_0)))(CADR OPT))) dimtext) (set (READ (STRCAT "TMPT"(ITOA after_0))) (list (car (gettmpt after_0)) t 0 0 (- dimtext temp) (cadr(cddddr(gettmpt after_0))))) ) (setq id (1+ after_0)) (repeat (- num_tmpt(1+ after_0)) (and (<(setq temp(- (cadr(car(gettmpt id)))(+(car(cddddr(gettmpt (1- id))))(CADR(CAR(GETTMPT (1- id))))) )) dimtext) (progn (if (and (= 0 (CAR(cDdddr(gettmpt(1- id))))) (>= (- (- (cadr(car(gettmpt (1- id)))) (+(CADR(CAR(GETTMPT (- id 2)))) (car(cddddr(gettmpt (- id 2))))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "TMPT"(ITOA (1- id))))(list (car (gettmpt (1- id))) t 0 0 (- temp dimtext) (cadr(cddddr(gettmpt (1- id)))))) (set (READ (STRCAT "TMPT"(ITOA id)))(list (car (gettmpt id)) t 0 0 (- dimtext temp ) (cadr(cddddr(gettmpt id))))) );if ));and (SETQ ID(1+ ID)) ) ) );and(< after_0 (setq id 0) (repeat NUM_TMPT (SETQ TP (P-P(car (GETTMPT ID)) OPT)) (and (/= (cadr opt)(cadr(car(gettmpt id))))(progn (COMMAND ".DIMORDINATE" TP "Y"(LIST X (+(CADR TP)(car(cddddr(gettmpt id)) )))) (and (cadr(cddddr (gettmpt Id))) (set_diminfo (entlast) (cadr(cddddr (gettmpt Id))) "Y")) )) (setq id(1+ id)) );repeat ;;;;;;;;;;;;;Y_RIGHT (SETQ NUM_TMPT2 0) (setq id 0) (repeat NUM_PT (IF (AND(CADR(GETPT ID)) (/= 1(CADDR(GETPT ID))) (>(ABS(-(CADR(CAR(GETPT ID))) (CADR OPT))) E) (if OPT_DIR(>(car(car(getpt id)))(car mpt)) (<=(car(car(getpt id)))(car mpt)))) (PROGN (SETQ IS_leave T);琌玂痙 (SETQ IDD 0) (REPEAT NUM_PT (AND (/= IDD ID) (if OPT_DIR (AND(AND (CADR(GETPT IDD)) (/= 1(CADDR(GETPT IDD))) (<(ABS(-(CADR(CAR(GETPT ID))) (CADR(CAR(GETPT IDD))))) E)) (AND(<(car(car(getpt id))) (car(car(getpt idd)))) (setq is_leave NIL)) ) (AND(AND (CADR(GETPT IDD)) (/= 1(CADDR(GETPT IDD))) (<(ABS(-(CADR(CAR(GETPT ID))) (CADR(CAR(GETPT IDD))))) E)) (AND(>(car(car(getpt id))) (car(car(getpt idd)))) (setq is_leave NIL) ) ) )) (SETQ IDD(1+ IDD))) (setq idd 0) (repeat num_tmpt (and(<(abs(-(caDr(car(getpt id)))(caDr(car(gettmpt idd))) ))e) (setq is_leave NIL)) (SETQ IDD(1+ IDD)) ) (and is_leave (add_tmpt2 (getpt id))) )) (setq id(1+ id)) );repeat (if opt_dir (SETQ X (-(+ DIST_OFFSET(CADDR RANG))(CAR OPT))) (SETQ X (-(-(CAR RANG)DIST_OFFSET)(CAR OPT))) ) ;order (add_tmpt2 (list opt t 0 0 0 nil)) ;ordering (setq id 0) (repeat num_tmpt2 (setq idd (1+ id)) (repeat (-(1- num_tmpt2) id) (if (>(cadr(car (gettmpt2 id)))(cadr(car (gettmpt2 idd)))) (progn (setq temp (gettmpt2 id)) (set (READ (STRCAT "tmpt2"(ITOA id)))(gettmpt2 idd) ) (set (READ (STRCAT "tmpt2"(ITOA idd))) temp) )) (setq idd(1+ idd)) ) (setq id(1+ id)) ) ;end order ;(setq id 0) ;(repeat num_pt ; (print (cadr(car(gettmpt2 id))))(setq id(1+ id)) ;) (setq id 0) (while (/= (cadr(car(gettmpt2 id))) (cadr opt)) (setq id(1+ id)) ) (setq befor_0 (1- id) after_0 (1+ id)) (and (>= befor_0 0);(LIST PT B DIR 0 0 DSCRB) (progn (and (<(+ BEFOR_0 2) NUM_TMPT2)(<(setq temp(-(CADR(CAR(GETtmpt2 (+ 2 befor_0))))(CADR(CAR(GETtmpt2 befor_0))))) dimtext) (set (READ (STRCAT "tmpt2"(ITOA befor_0))) (list (car (gettmpt2 befor_0)) t 0 0 (- temp dimtext) (cadr(cddddr(gettmpt2 befor_0))))) ) (setq id (1- befor_0)) (repeat befor_0 (and (<(setq temp(- (+(car(cddddr(gettmpt2 (1+ id))))(CADR(CAR(GETtmpt2 (1+ id))))) (cadr(car(gettmpt2 id))))) dimtext) (progn (if (and (= 0 (car(cddddr(gettmpt2(1+ id))))) (>= (- (- (+(CADR(CAR(GETtmpt2 (+ 2 id)))) (car(cddddr(gettmpt2 (+ 2 id))))) (cadr(car(gettmpt2 (1+ id)))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "tmpt2"(ITOA (1+ id))))(list (car (gettmpt2 (1+ id))) t 0 0 (- dimtext temp ) (cadr(cddddr(gettmpt2 (1+ id)))))) (set (READ (STRCAT "tmpt2"(ITOA id)))(list (car (gettmpt2 id)) t 0 0 (- temp dimtext ) (cadr(cddddr(gettmpt2 id))))) );if ));and (SETQ ID(1- ID)) ) ) );(and befor_0 (and(< after_0 num_tmpt2) (progn ;(and (<(setq temp(-(CADR(CAR(GETtmpt2 after_0)))(CADR OPT))) dimtext) ; (set (READ (STRCAT "tmpt2"(ITOA after_0))) (list (car (gettmpt2 after_0)) t 0 0 (- dimtext temp) (cadr(cddddr(gettmpt2 befor_0))))) ;) (setq id (1+ after_0)) (repeat (- num_tmpt2(1+ after_0)) (and (<(setq temp(- (cadr(car(gettmpt2 id)))(+(car(cddddr(gettmpt2 (1- id))))(CADR(CAR(GETtmpt2 (1- id))))) )) dimtext) (progn (if (and (= 0 (car(cddddr(gettmpt2(1- id))))) (>= (- (- (cadr(car(gettmpt2 (1- id)))) (+(CADR(CAR(GETtmpt2 (- id 2)))) (car(cddddr(gettmpt2 (- id 2))))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "tmpt2"(ITOA (1- id))))(list (car (gettmpt2 (1- id))) t 0 0 (- temp dimtext) (cadr(cddddr(gettmpt2 (1- id)))))) (set (READ (STRCAT "tmpt2"(ITOA id)))(list (car (gettmpt2 id)) t 0 0 (- dimtext temp ) (cadr(cddddr(gettmpt2 id))))) );if ));and (SETQ ID(1+ ID)) ) ) );and(< after_0 ;end order (setq id 0) (repeat NUM_TMPT2 (SETQ TP (P-P(car (GETTMPT2 ID)) OPT)) (and (/= (cadr opt)(cadr(car(gettmpt2 id))))(progn (COMMAND ".DIMORDINATE" TP "Y"(LIST X (+(CADR TP)(car(cddddr(gettmpt2 id)) )))) (and (cadr(cddddr (gettmpt2 Id))) (set_diminfo (entlast) (cadr(cddddr (gettmpt2 Id))) "Y")) )) (setq id(1+ id)) );repeat ;;;;;;;;;;;;;X_TOP (IF(>(cadr opt)(cadr mpt)) (SETQ OPT_DIR NIL)(SETQ OPT_DIR T)) (SETQ NUM_TMPT 0) (setq id 0) (repeat NUM_PT (IF (AND(CADR(GETPT ID))(/= 2(CADDR(GETPT ID)))(if opt_dir (<=(caDr(car(getpt id)))(caDr mpt)) (>(caDr(car(getpt id)))(cadr mpt))) (>(ABS(-(CAR(CAR(GETPT ID))) (CAR OPT))) E) ) (PROGN (SETQ IS_leave T);琌玂痙 (SETQ IDD 0) (REPEAT NUM_PT (AND (/= IDD ID) (if opt_dir (AND(AND (CADR(GETPT IDD)) (/= 2(CADDR(GETPT IDD))) (<(ABS(-(CAR(CAR(GETPT ID))) (CAR(CAR(GETPT IDD))))) E)) (AND (>(cadr(car(getpt id))) (cadr(car(getpt idd))))(setq is_leave NIL) ) ) (AND(AND (CADR(GETPT IDD)) (/= 2(CADDR(GETPT IDD))) (<(ABS(-(CAR(CAR(GETPT ID))) (CAR(CAR(GETPT IDD))))) E)) (AND(<(cadr(car(getpt id))) (cadr(car(getpt idd))))(setq is_leave NIL) ) ) )) (SETQ IDD(1+ IDD)) ) (and is_leave (add_tmpt (getpt id))) )) (setq id(1+ id)) );repeat (if opt_dir (SETQ Y (-(-(CADDDR RANG)DIST_OFFSET)(CADR OPT))) (SETQ Y (-(+ DIST_OFFSET(CADR RANG))(CADR OPT))) ) (COMMAND ".DIMORDINATE" "0,0" "X" (LIST 0 Y)) (IF (SETQ TemP(FIND_PT OPT))(and (cadr(cddddr TEMP)) (set_diminfo (entlast) (cadr(cddddr TEMP)) "X"))) ;order (add_tmpt (list opt t 0 0 0 nil)) ;ordering (setq id 0) (repeat num_tmpt (setq idd (1+ id)) (repeat (-(1- num_tmpt) id) (if (>(car(car (gettmpt id)))(car(car (gettmpt idd)))) (progn (setq temp (gettmpt id)) (set (READ (STRCAT "TMPT"(ITOA id)))(gettmpt idd) ) (set (READ (STRCAT "TMPT"(ITOA idd))) temp) )) (setq idd(1+ idd)) ) (setq id(1+ id)) ) ;end order ;(setq id 0) ;(repeat num_pt ; (print (cadr(car(gettmpt id))))(setq id(1+ id)) ;) (setq id 0) (while (/= (car(car(gettmpt id))) (car opt)) (setq id(1+ id)) ) (setq befor_0 (1- id) after_0 (1+ id)) (and (>= befor_0 0);(LIST PT B DIR 0 0 DSCRB) (progn (and (<(setq temp(-(CAR OPT)(CAR(CAR(GETTMPT befor_0))))) dimtext) (set (READ (STRCAT "TMPT"(ITOA befor_0))) (list (car (gettmpt befor_0)) t 0 (- temp dimtext) 0 (cadr(cddddr(gettmpt befor_0))))) ) (setq id (1- befor_0)) (repeat befor_0 (and (<(setq temp(- (+ (cadddr(gettmpt (1+ id)))(CAR(CAR(GETTMPT (1+ id))))) (car(car(gettmpt id))))) dimtext) (progn (if (and (= 0 (cadddr(gettmpt(1+ id)))) (>= (- (- (+(CAR(CAR(GETTMPT (+ 2 id)))) (cadddr(gettmpt (+ 2 id)))) (car(car(gettmpt (1+ id)))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "TMPT"(ITOA (1+ id))))(list (car (gettmpt (1+ id))) t 0 (- dimtext temp ) 0 (cadr(cddddr(gettmpt (1+ id)))))) (set (READ (STRCAT "TMPT"(ITOA id)))(list (car (gettmpt id)) t 0 (- temp dimtext ) 0 (cadr(cddddr(gettmpt id))))) );if ));and (SETQ ID(1- ID)) ) ) );(and befor_0 (and(< after_0 num_tmpt) (progn (and (<(setq temp(-(CAR(CAR(GETTMPT after_0)))(CAR OPT))) dimtext) (set (READ (STRCAT "TMPT"(ITOA after_0))) (list (car (gettmpt after_0)) t 0 (- dimtext temp) 0(cadr(cddddr(gettmpt after_0))))) ) (setq id (1+ after_0)) (repeat (- num_tmpt(1+ after_0)) (and (<(setq temp(- (car(car(gettmpt id)))(+(cadddr(gettmpt (1- id)))(CAR(CAR(GETTMPT (1- id))))) )) dimtext) (progn (if (and (= 0 (cadddr(gettmpt(1- id)))) (>= (- (- (car(car(gettmpt (1- id)))) (+(CAR(CAR(GETTMPT (- id 2)))) (cadddr(gettmpt (- id 2)))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "TMPT"(ITOA (1- id))))(list (car (gettmpt (1- id))) t 0 (- temp dimtext) 0(cadr(cddddr(gettmpt (1- id)))))) (set (READ (STRCAT "TMPT"(ITOA id)))(list (car (gettmpt id)) t 0 (- dimtext temp )0 (cadr(cddddr(gettmpt id))))) );if ));and (SETQ ID(1+ ID)) ) ) );and(< after_0 ;end order (setq id 0) (repeat NUM_TMPT (SETQ TP (P-P(car (GETTMPT ID)) OPT)) (and (/= (car opt)(car(car(gettmpt id))))(progn (COMMAND ".DIMORDINATE" TP "X" (LIST (+(CAR TP)(cAdddr(gettmpt id))) y )) (and (cadr(cddddr (gettmpt Id))) (set_diminfo (entlast) (cadr(cddddr (gettmpt Id))) "X")) )) (setq id(1+ id)) );repeat ;;;;;;;;;;;;;X_DOWN (SETQ NUM_TMPT2 0) (setq id 0) (repeat NUM_PT (IF (AND(CADR(GETPT ID)) (/= 2(CADDR(GETPT ID)))(if opt_dir(>(caDr(car(getpt id)))(caDr mpt))(<=(cadr(car(getpt id)))(cadr mpt))) (>(ABS(-(CAR(CAR(GETPT ID))) (CAR OPT))) E) ) (PROGN (SETQ IS_leave T);琌玂痙 (SETQ IDD 0) (REPEAT NUM_PT (AND (/= IDD ID) (if opt_dir (AND(AND (CADR(GETPT IDD)) (/= 2(CADDR(GETPT IDD))) (<(ABS(-(CAR(CAR(GETPT ID))) (CAR(CAR(GETPT IDD))))) E)) (AND (<(-(cadr(car(getpt id))) (cadr(car(getpt idd))))0)(setq is_leave NIL) ) ) (AND(AND (CADR(GETPT IDD)) (/= 2(CADDR(GETPT IDD))) (<(ABS(-(CAR(CAR(GETPT ID))) (CAR(CAR(GETPT IDD))))) E)) (AND(>(-(cadr(car(getpt id))) (cadr(car(getpt idd))))0)(setq is_leave NIL) ) ) )) (SETQ IDD(1+ IDD)) ) (setq idd 0) (repeat num_tmpt (and(<(abs(-(car(car(getpt id)))(car(car(gettmpt idd))) ))e) (setq is_leave NIL)) (SETQ IDD(1+ IDD)) ) (and is_leave (add_tmpt2 (getpt id))) )) (setq id(1+ id)) );repeat (if opt_dir (SETQ Y (-(+ DIST_OFFSET(CADR RANG))(CADR OPT))) (SETQ Y (-(-(CADDDR RANG)DIST_OFFSET)(CADR OPT))) ) ;order (add_tmpt2 (list opt t 0 0 0 nil)) ;ordering (setq id 0) (repeat num_tmpt2 (setq idd (1+ id)) (repeat (-(1- num_tmpt2) id) (if (>(car(car (gettmpt2 id)))(car(car (gettmpt2 idd)))) (progn (setq temp (gettmpt2 id)) (set (READ (STRCAT "tmpt2"(ITOA id)))(gettmpt2 idd) ) (set (READ (STRCAT "tmpt2"(ITOA idd))) temp) )) (setq idd(1+ idd)) ) (setq id(1+ id)) ) ;end order ;(setq id 0) ;(repeat num_pt ; (print (cadr(car(gettmpt2 id))))(setq id(1+ id)) ;) (setq id 0) (while (/= (car(car(gettmpt2 id))) (car opt)) (setq id(1+ id)) ) (setq befor_0 (1- id) after_0 (1+ id)) (and (>= befor_0 0);(LIST PT B DIR 0 0 DSCRB) (progn (and (< NUM_TMPT2 (+ BEFOR_0 2))(<(setq temp(- (CAR(CAR(GETtmpt2 (+ 2 befor_0)))) (CAR(CAR(GETtmpt2 befor_0))) )) dimtext) (set (READ (STRCAT "tmpt2"(ITOA befor_0))) (list (car (gettmpt2 befor_0)) t 0 (- temp dimtext) 0 (cadr(cddddr(gettmpt2 befor_0))))) ) (setq id (1- befor_0)) (repeat befor_0 (and (<(setq temp(- (+ (cadddr(gettmpt2 (1+ id)))(CAR(CAR(GETtmpt2 (1+ id))))) (car(car(gettmpt2 id))))) dimtext) (progn (if (and (= 0 (cadddr(gettmpt2(1+ id)))) (>= (- (- (+(CAR(CAR(GETtmpt2 (+ 2 id)))) (cadddr(gettmpt2 (+ 2 id)))) (car(car(gettmpt2 (1+ id)))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "tmpt2"(ITOA (1+ id))))(list (car (gettmpt2 (1+ id))) t 0 (- dimtext temp ) 0 (cadr(cddddr(gettmpt2 (1+ id)))))) (set (READ (STRCAT "tmpt2"(ITOA id)))(list (car (gettmpt2 id)) t 0 (- temp dimtext ) 0 (cadr(cddddr(gettmpt2 id))))) );if ));and (SETQ ID(1- ID)) ) ) );(and befor_0 (and(< after_0 num_tmpt2) (progn ;(and (<(setq temp(-(CAR(CAR(GETtmpt2 after_0)))(CAR OPT))) dimtext) ; (set (READ (STRCAT "tmpt2"(ITOA after_0))) (list (car (gettmpt2 after_0)) t 0 (- dimtext temp) 0(cadr(cddddr(gettmpt2 befor_0))))) ;) (setq id (1+ after_0)) (repeat (- num_tmpt2(1+ after_0)) (and (<(setq temp(- (car(car(gettmpt2 id)))(+(cadddr(gettmpt2 (1- id)))(CAR(CAR(GETtmpt2 (1- id))))) )) dimtext) (progn (if (and (= 0 (cadddr(gettmpt2(1- id)))) (>= (- (- (car(car(gettmpt2 (1- id)))) (+(CAR(CAR(GETtmpt2 (- id 2)))) (cadddr(gettmpt2 (- id 2)))) ) dimtext) (- dimtext temp))) (set (READ (STRCAT "tmpt2"(ITOA (1- id))))(list (car (gettmpt2 (1- id))) t 0 (- temp dimtext) 0(cadr(cddddr(gettmpt2 (1- id)))))) (set (READ (STRCAT "tmpt2"(ITOA id)))(list (car (gettmpt2 id)) t 0 (- dimtext temp )0 (cadr(cddddr(gettmpt2 id))))) );if ));and (SETQ ID(1+ ID)) ) ) );and(< after_0 ;end order (setq id 0) (repeat NUM_TMPT2 (SETQ TP (P-P(car (GETTMPT2 ID)) OPT)) (and (/= (car opt)(car(car(gettmpt2 id))))(progn (COMMAND ".DIMORDINATE" TP "X" (LIST (+(CAR TP)(cAdddr(gettmpt2 id))) y )) (and (cadr(cddddr (gettmpt2 Id))) (set_diminfo (entlast) (cadr(cddddr (gettmpt2 Id))) "X")) )) (setq id(1+ id)) );repeat (SETVAR "OSMODE" OOS) (setvar "orthomode" OTH) ) |