command mline (ml) for Intellicad (Creates multiple parallel

#1
(This is the command that it misses Intellicad)
Esta es la rutina o comando que le falta a Intellicad:
Image


;;
;; Programa : ml
;;
;;lineas paralelas
;;
;;Arqitectura
;;

(DEFUN APEXINT (ent1 ent2)
(SETQ PT3 (INTERS
(CDR (ASSOC 11 (ENTGET ent1))) (CDR (ASSOC 10 (ENTGET ent1)))
(CDR (ASSOC 10 (ENTGET ent2))) (CDR (ASSOC 11 (ENTGET ent2))) nil))
(COMMAND ".CHANGE" ent1 "" PT3 ".CHANGE" ent2 "" PT3) (PRINC))

;*** Creacion de lineas doble especificando distancia entre lineas
(DEFUN C:ml ()
(SETVAR "CMDECHO" 0)
(SETQ CNT 0)
(IF (NOT D1) (SETQ D1 1.0))
;*** Dando la distancia entre linea.
(SETQ D1A (GETDIST (STRCAT "\nDistancia entre Lineas <" (RTOS D1) ">: ")))
(IF (NUMBERP D1A) (SETQ D1 D1A))
(SETQ D2 (/ D1 2))
;Dando el primero y siguiente punto.
(SETQ PT1 (GETPOINT "\nDel Punto: ")
PT2 (GETPOINT PT1 "\n al punto: ")
STPT PT1
)
(SETVAR "HIGHLIGHT" 0)
(WHILE (/= PT2 nil) (SETVAR "BLIPMODE" 0) (SETQ A1 (ANGLE PT1 PT2))
(COMMAND ".LINE" (POLAR PT1 (+ A1 (/ pi 2.00)) D2) (POLAR PT2 (+ A1 (/ pi 2.00)) D2) "")
(IF (= CNT 0)
(SETQ L1A (ENTLAST) L1F L1A)
(PROGN
(SETQ L1B L1A L1A (ENTLAST))
(APEXINT L1A L1B)
) ;End of progn for if (= cnt 0)
) ;End of if (= cnt 0)
(COMMAND ".LINE" (POLAR PT1 (- A1 (/ pi 2.00)) D2) (POLAR PT2 (- A1 (/ pi 2.00)) D2) "")
(IF (= CNT 0)
(SETQ L2A (ENTLAST) L2F L2A)
(PROGN
(SETQ L2B L2A L2A (ENTLAST))
(APEXINT L2A L2B)
) ;End of progn for if (= cnt 0)
) ;End of if (= cnt 0)
(SETVAR "BLIPMODE" 1)
(SETQ PT1 PT2 PT2 (GETPOINT PT1 "\n Al punto: ") CNT (1+ CNT))
) ;End of while (/= pt2 nil...)
(INITGET "Si No")
(IF (EQUAL STPT PT1)
(PROGN
(SETQ YN (GETKWORD "\nCerrar lineas? (<Si>/No): "))
(IF (NOT YN) (SETQ YN "SI") (SETQ YN (STRCASE YN)))
(IF (= YN "SI")
(PROGN
(APEXINT L1A L1F)
(APEXINT L2A L2F)
) ;End of progn.
);End of if.
)
)
(SETVAR "HIGHLIGHT" 1)
(PRINC)
)

------------------


[This message has been edited by jmerlos (edited 07-09-2005).]