La idea es poder crear una red reticular, fácil de manipular por programación, para poder emular materiales reales. Sus características deben ser:
The idea is to create a mesh network, easily manipulated by programming, to emulate real materials. Its characteristics should be:
- La red de puntos se distribuirá en cuadrícula
- Cada punto tendrá un nexo con propiedades de unión
- Cada punto N tendrá varios puntos conectados. Uno por cada conexión:
- The network will be distributed at grid points
- Each point will have a link with binding properties
- Each point N will have a number of connected points. One for each connection:
Un punto, varias conexiones:
One point, several connections:
Un punto, varios puntos conectados. Uno por cada conexión:
A point, a number of connected points. One for each connection:
Aunque parezca secundario lo primero es adivinar cual es la correlación entre los puntos N y las conexiones K.
Although it may seem secondary, the first thing is to guess what is the correlation between N points and K connections.
El primer paso. Simplificando el problema. 2D: / The first step. Simplifying the problem. 2D:
NOTA: Se numeran los puntos en orden para hacer más fácil la programación de esta manera sólo hará falta un buche "FOR". También se podría haber nombrado los puntos como P[x,y] mucho más lógico desde el punto de vista "humano" pero más difícil a la larga desde el punto de vista informático.
NOTE: The points are numbered in order to make programming easier this way you will only need one "for" loop. I could have also named points as P [x, y] more logical from the "human" view point of, but more difficult from the IT perspective.
Para una red de w puntos de ancho y h puntos de altura:
El número de puntos será de w·h
Las conexiones serán (w-1)·h+(h-1)·w = 2·w·h-w-h.
For a network with wide of w points and height of h points:
The number of points will be w · h
The connections are (w-1) · h + (h-1) · w = 2 · w · hwh.
Para nuestro caso particular
For our particular case:
Biela 0 une punto 0 con 1.
Biela 1 une punto 0 con 4.
Biela 2 une punto 1 con 2.
Biela 3 une punto 1 con 5.
Biela 4 une punto 2 con 3.
Biela 5 une punto 2 con 6.
Biela 6 une punto 3 con 7.
Biela 7 une punto 4 con 5.
Biela 8 une punto 4 con 8.
Biela 9 une punto 5 con 6.
Biela 10 une punto 5 con 9.
Biela 11 une punto 6 con 7.
Biela 12 une punto 6 con 10.
Biela 13 une punto 7 con 11.
Biela 14 une punto 8 con 9.
Biela 15 une punto 9 con 10.
Biela 16 une punto 10 con 11.
Punto 0 conectado con: 4, 1.
Punto 1 conectado con: 5, 0, 2.
Punto 2 conectado con: 6, 1, 3.
Punto 3 conectado con: 7, 2.
Punto 4 conectado con: 8, 0, 5.
Punto 5 conectado con: 9, 1, 4, 6.
Punto 6 conectado con: 10, 2, 5, 7.
Punto 7 conectado con: 11, 3, 6 .
Punto 8 conectado con: 4, 9.
Punto 9 conectado con: 5, 8, 10.
Punto 10 conectado con: 6, 9, 11.
Punto 11 conectado con: 7, 10.
El algoritmo en VB para realizar las conexiones es:
The algorithm in VB for connections is:
Const nnn = 10000
Dim Px(nnn), Py(nnn) As Double
Dim b1(nnn), b2(nnn), P1(nnn), P2(nnn), P3(nnn), P4(nnn), Kmax, Nmax As Integer
----------
w = 4:h = 3:k = -1
Nmax = w * h - 1 '100 '(w - 1) * (h - 1)For r = 0 To Nmax
i = r Mod w : j = Int(r / w)
If (i <> w - 1) Then
k = k + 1: b1(k) = r: b2(k) = j * w + (i + 1)
Debug.Print "Biela " & Trim(k) & " une punto " & Trim(b1(k)) & " con " & Trim(b2(k)) & "."
P3(b2(k)) = r: P4(r) = b2(k)
End If
If j <> h - 1 Then
k = k + 1: b1(k) = r: b2(k) = (j + 1) * w + i
Debug.Print "Biela " & Trim(k) & " une punto " & Trim(b1(k)) & " con " & Trim(b2(k)) & "."
P1(r) = b2(k): P2(b2(k)) = r
End If
Next r
Kmax = k - 1
For r = 0 To Nmax
Debug.Print Replace("Punto " & Trim(r) & " conectado con: " & Trim(P1(r)) & ", " & Trim(P2(r)) & ", " & Trim(P3(r)) & ", " & Trim(P4(r)) & ".", " ,", "")
Next r
El próximo día explicaremos como poner una carga y substituir bielas por muelles.
The next day we explain how to put a load and replace rods by springs.
http://carreteras-laser-escaner.blogspot.com/2015/06/looking-for-3d-crosslinking-model-ii.html
No hay comentarios:
Publicar un comentario