Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Radiografia De Una Entidad De GambasCAD
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Radiografia De Una Entidad De GambasCAD 
 
(este post ira modificandose a medida que agregamos cosas)

IMPORTANTE: estos puntos no estan en PIXEL sino en METROS

captura_de_pantalla_de_2020_05_02_09_17_20

Los puntos se guardan en arrays de Float[] en pares x0,y0,x1,y1,x2.....

' El nombe de la entidad, que difiere del nombre del archivo de la clase, desde la linea de comandos podra invocarse este nombre para dibujar algo, sin tener que hacer click en un boton. Listo para ser traducido.
Public gender As String = ("Slab")

' Este numero se usa para determinar que cosa se dibuja primero. El 0 se dibuja primero y es tapado por el resto de las cosas.
Public Const DrawingOrder As Integer = 1        ' 1 = draws first
numero de puntos minimo para que pueda dibujarse algo
Public Const PointsToDraw As Integer = 1             ' minimal point requered for drawing something usefull

' esto se escribe en el prompt, como ayuda al user
Public Const HelperTrabajo As String = ("Insert a Slab")


'  a partir de aqui se guardan cosas en el disco            
'========================================================================
 son los puntos que definen las cosas, lo que le usuario debera marcar al dibujarlas.
Public P As New Float[]                         'X,Z pairs

' un parametro de texto, pero puede servir para alojar una lista separable con Split()
Public StringData As String

' estos todavia no los usamos
Public Layer As Integer
Public Block As Integer
Public _Color As Integer                     ' Para darle un color distinto
Public LineType As Integer                  
Public LineWidth As Integer                  
'========================================================================
' hasta aqui se guardan cosas en el disco, lo que sigue son variables durante el uso
indica si algun punto fue seleccionado con el recuadro verde
Public Psel As New Boolean[]

' True si durante la construccion ya tiene suficientes elementos para poder hacer una representacion digna
Public DrawAble As Boolean = False

' si ya lo terminamos de dibujar
Public Finished As Boolean = False

 ' Pertenecemos a un grupo?
Public Group As Integer = 0            

' es un backup de P[] , muy util a la hora de volver las cosas al lugar original cuando el use se arrepiente de una accion
Public B As New Float[]  

' define un poligono alrededor de las cosas y sirve para detectar cuando se hace click en algo para sleeccionarlo. Esta dibujado en azul y puede verse con F6 a modo de Debug
Public BoundingPoligon As New Float[]  
 

 




===================
"Los IF son mas rápidos" - autor anónimo
 
última edición por tercoIDE el Martes, 05 May 2020, 02:41; editado 2 veces 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Radiografia De Una Entidad De GambasCADE 
 

'' La rutina principal de la clase: dibujarse
'' Esta rutina es la UNICA que se invoca a intervalos regulares, la clase deberia utilizarla para hacer todas las tareas
'' que dependan del tiempo, como por ejemplo moverse a cierta velocidad, transmitir agua , etc
Public Sub Draw()
  
    If Not Me.DrawAble Then Return                
    If FMain.DrawOriginales Then DrawOriginal
      ' AQUI VAN LAS RUTINAS DE DIBUJO
      Paint.Reset ' dejamos todo en orden para la proxima entidad
End


'' Esta rutina pude utilizarse para dibujar un fantasma durante alguna operacion como Copiar
'' es invocada por .Draw()
Public Sub DrawOriginal()
      
End


'' Determina si el objeto puede moverse, en general es cuando todos sus puntos estan seleccionados.
'' La entidad puede negarse al movimiento!!!
Public Function Movable() As Boolean

    If "MIS CONDICIONES PARA PERMITIR MOVIMIENTOS" Then  
        Return True
    Else
        Return False
    End If

End

'' Idem, tambien puede negarse a que la deformen !!!!
Public Function Stretchable() As Boolean
    
  If "MIS CONDICIONES PARA PERMITIR ESTIRAMIENTOS" Then
      
        Return True
    Else
       Return False
      
    Endif
                                            
End


'' Recibe un punto y debe responder si esta dentro de si misma
Public Sub PointSelection(Xr As Float, Zr As Float) As Boolean
    
    
    If "MIS CONDICIONES PARA VER SI UN PUNTO CUALQUIERA Xr,Zr ESTA DENTRO DE ESTE ELEMENTO" Then
      
        Return True
    Else
            
        Return False
    End If
End



'' Aqui se crea el poligono que envuelve a la entidad y sirve para cosas como detectar clicks
Public Sub CreateBoundingPoligon()
    
End


'' Esto se invoca una unica vez al finalizar la creacion de la entidad, o sea cuando el user
'' marco todos lo puntos y escribio los parametros numericos.
Public Sub Finish()
        
    If " all is OK?" Then
    
        ForDeletion = False
        DrawAble = True
    
    Else
        
        ForDeletion = True
        DrawAble = False
    
    End If
    
End

 




===================
"Los IF son mas rápidos" - autor anónimo
 
última edición por tercoIDE el Sabado, 02 May 2020, 13:13; editado 2 veces 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Radiografia De Una Entidad De GambasCADE 
 
Las entidades generan un array de puntos de donde engancharnos. Se llaman POI[] por "puntos de interes" en ingles.

El array es analizado duarante el MouseMove y nos engancha al punto en cuestion, es el Snap de los CAD
 




===================
"Los IF son mas rápidos" - autor anónimo
 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron