Strutture annidiate o classi annidiate

Allora, da dove posso cominiciare…
Devo necessariamente creare una struttura annidiata o una classe annidiata.

Per la struttura annidiata ho provato cos

Structure s_polyline
  livello as string * 200
  chiuso as integer
  vertici() as s_vertici
End Structure

Structure s_vertici
  x1 as double
  y1 as double
  livello as string * 200
  bulge as double
  chiuso as integer
End Structure

Dovrei utilizzarla in questo modo …

dim f_polyline as s_polyline
f_polyline.livello = "123"
f_polyline.chiuso = 1
for contatore = 1 to numerovertici
      dim f_vertici as s_vertici
      f_vertici.x1 = 100
      f_vertici.y1 = 120
      f_vertici.livello = "123"
      f_vertici.bulge = 0.45
      f_vertici.chiuso = 0
      f_polyline.vertici.append f_vertici
next

Siccome non funziona ( mentre in vb funziona )
vorrei capire come invece funzionano le classi e se posso annidiarle…
Qualcuno mi mostra un’esempio ?
Sgrassie Mille.

Forse non ho compreso esattamente la tua domanda.

Vista la scarsa fruibilita’ delle strutture, in pratica utili solo per chiamate a funzioni in dll, procedi con le classi.
Definisci una classe di tipo “c_vertici” e una di tipo “c_polyline”.
Nella classe di tipo “c_polyline” avrai una proprieta’ “vertici” che e’ un array di classi “c_vertici”.
E’ questo che intendi?

Saluti.

Esattamente,

Polyline
+--- Polilyne1
       - Numero vertici
       - Chiusa
       - Vertici
       +----Vertice1
              x1 = 100
              y1 = 120
              bulge 
       +----Vertice2
              x1 = 100
              y1 = 120
              bulge 
+--- Polilyne2
       - Numero vertici
       - Chiusa
       - Vertici
       +----Vertice1
              x1 = 100
              y1 = 120
              bulge 
       +----Vertice2
              x1 = 100
              y1 = 120
              bulge 

Per alcuni file dxf sono anche più di 1000 polilinee

Per i vertici puoi usare una struttura
Per la polyline utilizza una classe

Curiosit:
Perch hai livello sul vertice, una polilinea pu avere vertici che appartengono a livelli diversi?
che cosa vuol dire chiuso su vertice?

A quanto pare una polilinea pu avere vertici che appartengono ad un livello diverso. Poi magari un errore che hanno lasciato li dalle calende greche…
il chiuso sul vertice indica come devo trattare la polilinea
1 su chiuso indica che la polilinea viene chiusa del tipo :

dim x1, x2, y1, y2 as Double
dim xx1, yy1 as Double
dim chiuso as integer
dim bulge as Double
dim flag as Boolean = true
dim contatore as integer

if e_vertici(inizio).chiuso <> 0 then
  xx1 = e_vertici(inizio).x1
  yy1 = e_vertici(inizio).y1
  chiuso = e_vertici(inizio).chiuso
end if

contatore = inizio
while contatore <> fine
  X1 = e_vertici(contatore).x1
  Y1 = e_vertici(contatore).y1
  bulge = e_vertici(contatore).bulde
  contatore = contatore + 1
  X2 = e_vertici(contatore).x1
  Y2 = e_vertici(contatore).y2
  Y1 = invertix(Y1)
  Y2 = invertix(Y2)
  'Dray the line
  if bulge <> 0 then 
    Gotbulge x1,y1,x2,y2,bulge,colore
  else
    DrawDXFLine x1,y1,x2,y2,colore
  end if
  'rsitem.MoveNext
wend

if chiuso <> 0 then 
  X2 = xx1
  Y2 = yy1
  Y1 = invertix(Y1)
  Y2 = invertix(Y2)
  if bulge <> 0 then 
    Gotbulge x1,y1,x2,y2,bulge,colore
  else
    DrawDXFLine x1,y1,x2,y2,colore
  end if
end if

in pratica indica che il primo vertice e l’ultimo coincidono.
Quindi polilinea chiusa…

Se poi andiamo a vedere :
'70 Polyline flag (bit-coded); default is 0:
'- 1 = This is a closed polyline (or a polygon mesh closed in the M direction).
'- 2 = Curve-fit vertices have been added.
'- 4 = Spline-fit vertices have been added.
'- 8 = This is a 3D polyline.
'- 16 = This is a 3D polygon mesh.
'- 32 = The polygon mesh is closed in the N direction.
'- 64 = The polyline is a polyface mesh.
'- 128 = The linetype pattern is generated continuously around the vertices of this polyline.