Radiografia De Una Entidad De GambasCAD


Objetivo: 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[]

última edición por tercoIDE el Martes, 05 May 2020, 02:41; editado 2 veces
Perfil MP  
Objetivo: 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

última edición por tercoIDE el Sabado, 02 May 2020, 13:13; editado 2 veces
Perfil MP  
Objetivo: 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

Perfil MP  

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1732s (PHP: -25% SQL: 125%)
Consultas SQL: 30 - Debug off - GZIP Activado