Linea con Angulo

Ir abajo

Linea con Angulo Empty Linea con Angulo

Mensaje por Luis Alberto Benitez el Miér Jun 12, 2019 2:01 pm

Estimados Integrantes del Foro:
Expongo un Lisp que coloca una Linea con un Angulo respecto de otra Linea.
Lo que quiero es unificar el Lisp con el DCL.
Desde ya Gracias por los Continuos Aportes.
Un Saludo
Luis
Código:
;Lisp que coloca la linea con el Angulo a continuación de otra
;tomando el ángulo relativo a esta última.
(defun c:ANG+LINEA ()
(vl-load-com)
(setvar "CMDECHO" 0)
(SETVAR "OSMODE" 0)
(command "orto""DES")
(vl-cmdf "_setvar""angdir""1");Sentido Horario=1,Sentido Antihorario=0
(vl-cmdf "_setvar""angbase""0");Angulo Base Dirección respecto del SCP original=0

;;;CUADRO DE TEXTO

  (princ "\ncurva6")(princ)
  ; Set Default Variables
  (if (not *curva6@);Único nombre de variable global para almacenar información de diálogo
    (setq *curva6@ (list nil "" "" "" ""))
  );if
  (setq Edit1$ (nth 1 *curva6@)
        Edit2$ (nth 2 *curva6@)
        Edit3$ (nth 3 *curva6@)
        Edit4$ (nth 4 *curva6@)
  );setq
  ; diálogo de carga
  (setq Dcl_Id% (load_dialog "curva6.dcl"))
  (new_dialog "curva6" Dcl_Id%)
  ;Ajuste de Diálogo Configuración inicial
  (set_tile "Title" "DATOS DE LA LINEA")
  (set_tile "Text1" "LONGITUD de la Linea                             mts. :")
  (set_tile "Edit1" Edit1$)
  (set_tile "Text2" "GRADOS Sentido Horario(+);Antihorario(-)        :")
  (set_tile "Edit2" Edit2$)
  (set_tile "Text3" "MINUTOS Sentido Horario(+);Antihorario(-)       :")
  (set_tile "Edit3" Edit3$)  
  (set_tile "Text4" "SEGUNDOS Sentido Horario(+);Antihorario(-)   :")
  (set_tile "Edit4" Edit4$)                                        

  ; Dialog Actions
  (action_tile "Edit1" "(setq Edit1$ $value)")
  (action_tile "Edit2" "(setq Edit2$ $value)")
  (action_tile "Edit3" "(setq Edit3$ $value)")
  (action_tile "Edit4" "(setq Edit4$ $value)")
  (action_tile "ok" "(aceptar)")
  (action_tile "cancel" "(exit)")

  (setq Return# (start_dialog))
  
; Descarga Diálogo
  (unload_dialog Dcl_Id%)
  (setq *curva6@ (list nil Edit1$ Edit2$ Edit3$ Edit4$ Return#))

(SETQ dis (atof Edit1$))
(SETQ g (atof Edit2$))
(SETQ m (atof Edit3$))
(SETQ s (atof Edit4$))

(SETVAR "OSMODE" 512)
(princ "\nPunto Cercano al Vertice:")
(terpri)
(SETQ PC (GETPOINT"\Punto Cercano al Vertice:"))
(terpri)
(SETVAR "OSMODE" 0)
(SETVAR "OSMODE" 1)
(princ "\nPunto Final Linea Vertice:")
(terpri)
(SETQ cen (GETPOINT"\Punto Final Linea Vertice:"))
(terpri)
(SETVAR "OSMODE" 0)
(setq m-g (/ m 60))
(setq s-m-g (/ (/ s 60) 60))

 ;Distancia

(setq d (strcat (rtos dis 2 2) "mts ; "))     ;Distancia


 ;Angulo Decimal

(setq degstr (strcat (rtos (abs g) 2 0) "°"))     ;Grados

(setq minstr (strcat (rtos (abs m) 2 0) (chr 39)));Minutos

(setq secstr (strcat (rtos (abs s) 2 0) (chr 34)));Segundos



                                  ;Angulo Sexagesimal

(setq a (+ g m-g s-m-g));Angulo Decimal

(SETQ a1 (* PI (/ a 180.0)));De Angulo Sexagesimal a Radianes

(setq Angus (angle cen pc));Angulo en Radianes

(setq Ang (- angus a1));Angulo en Radianes Respecto de la Linea Seleccionada

(command "_line" cen (polar cen ang dis) "")

(PRINC "\nIndicar Punto de Inserción del Texto:")

      (setq get (getpoint "\nIndicar Punto de Inserción del Texto:"))

      (vl-cmdf "_.TEXT" "_J" "ii" get "2" "0" (strcat d degstr minstr secstr ";" (rtos a 2 4) ";" (rtos a1 2 4) ";" (rtos ang 2 4) ";"(rtos angus 2 4)))

(setvar "HIGHLIGHT" 1);Activa el resaltado de la selección de objetos
(setvar "CMDECHO" 0)
(command "-UNIDADES""2""4""2""5""0""N")
)
(PROMPT
"\n***Nuevo Comando ANG+LINEA  definido***"
)
(PRIN1)

Código:
//---------------------------------------------------------------------------------------------------------
// curva6
//---------------------------------------------------------------------------------------------------------
curva6 : dialog {
  key = "Title";
  label = "    ";//Title$ de archivo LSP
  initial_focus = "Edit1";
  spacer;
  : row {//<
    fixed_width = true;
    : column {
      width = 50;
      fixed_width = true;
      spacer;
      : text {
        key = "Text1";
        label = "";//Text1$ de archivo LSP
      }
    }
    : edit_box {
      key = "Edit1";//Edit1$ de archivo LSP
      edit_width = 5;
      edit_limit=6;
      fixed_width_font = true;
      fixed_width = true;
    }
  }//>
  : row {//<
    fixed_width = true;
    : column {
      width = 50;
      fixed_width = true;
      spacer;
      : text {
        key = "Text2";
        label = "";//Text2$ de archivo LSP
      }
    }
    : edit_box {
      key = "Edit2";//Edit2$ de archivo LSP
      edit_width = 3;
      edit_limit=4;
      fixed_width_font = true;
      fixed_width = true;
    }
  }//>
  : row {//<
    fixed_width = true;
    : column {
      width = 50;
      fixed_width = true;
      spacer;
      : text {
        key = "Text3";
        label = "";//Text3$ de archivo LSP
      }
    }
    : edit_box {
      key = "Edit3";//Edit3$ de archivo LSP
      edit_width = 2;
      edit_limit=3;
      fixed_width_font = true;
      fixed_width = true;
    }
  }//>
: row {//<
    fixed_width = true;
    : column {
      width = 50;
      fixed_width = true;
      spacer;
      : text {
        key = "Text4";
        label = "";//Text4$ de archivo LSP
      }
    }
    : edit_box {
      key = "Edit4";//Edit4$ de archivo LSP
      edit_width = 2;
      edit_limit=3;
      fixed_width_font = true;
      fixed_width = true;
    }
  }//>
  :spacer_1{
       }

  ok_cancel ;
       :spacer_1{
       }
:text {
       label="Luis :copyright: 2019";
       fixed_width_font = true;
       alignment=centered;
       }  
       :spacer_1{
       }
}//curva6

Luis Alberto Benitez

Mensajes : 65
Fecha de inscripción : 29/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Linea con Angulo Empty Re: Linea con Angulo

Mensaje por jcanizalesc Ayer a las 5:45 pm

Linea con Angulo Ok-man10
]
jcanizalesc
jcanizalesc

Mensajes : 5
Fecha de inscripción : 06/06/2016
Localización : Mexico

Ver perfil de usuario

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.