Risultati da 1 a 5 di 5
  1. #1
    Utente poco attivo
    Iscritto dal
    2008
    Messaggi
    3
    Professione
    Programmatore
    Regione
    Abruzzo
    Software
    Access,VB,VBA

    Problema unione regioni

    Ciao a tutti:)
    sono alle prime armi con autocad e vb
    ho un problema!
    sto realizzando un modulo che seleziona tutte le polilinee le trasforma in regioni assegna un nr prog per regione e alla fine unisco le regioni per avere l'area complessiva.
    Una volta create le regioni non riesco ad unirle in un unica regione.
    Aiutooooo!!!Pleaseeee!!!
    questo è il codice completo:
    --------------------------------------------------
    Dim TextHeight As Double
    TextHeight = 1

    Dim StartNo As Integer
    StartNo = 1

    'Rimuove le precedenti selezioni
    For i = 0 To ThisDrawing.SelectionSets.count - 1
    If ThisDrawing.SelectionSets.Item(i).Name = "PolySelection" Then
    ThisDrawing.SelectionSets.Item(i).Delete
    End If
    Next

    'Crea la selectionset
    Dim PolySelection As AcadSelectionSet
    Set PolySelection = ThisDrawing.SelectionSets.Add("PolySelection")

    'Genera il filtro per AutoCAD
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = "LWPOLYLINE"
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue

    'Seleziona tutte le polilinea utilizzando il filtro
    PolySelection.Select acSelectionSetAll, , , groupCode, dataCode

    Dim ThisPolyline(0) As AcadEntity
    Dim myRegion As Variant
    Dim myCentroid As Variant

    Dim InsertionPoint(0 To 2) As Double

    'Setta le polilinee selezionate nel filtro
    For i = 0 To PolySelection.count - 1

    Set ThisPolyline(0) = PolySelection.Item(i)

    ' Crea la regione sulla polilinea
    myRegion = ThisDrawing.ModelSpace.AddRegion(ThisPolyline)

    ' Trova il baricentro della regione
    myCentroid = myRegion(0).Centroid

    ' Cancella la Regione
    'myRegion(0).Delete


    'Crea l'inserimento del testo nel baricentro della regione
    InsertionPoint(0) = myCentroid(0)
    InsertionPoint(1) = myCentroid(1)
    InsertionPoint(2) = 0

    'Crea il numero progressivo nella regione
    ThisDrawing.ModelSpace.AddText CStr(i + 1), InsertionPoint, TextHeight
    Next i

    'Unisce le regioni

    Dim unitReg As AcadRegion
    Dim compReg As AcadRegion

    Set compReg = myRegion(0)


    For i = 1 To UBound(myRegion)
    MsgBox "yes"
    Set unitReg = myRegion(i)

    compReg.Boolean acUnion, unitReg
    compReg.Update

    Next i

  2. #2
    Utente Senior L'avatar di Shape
    Iscritto dal
    2007
    Messaggi
    1220
    Professione
    Disegnatore Carpenteria
    Regione
    Friuli
    Software
    Autocad, VBA-AutoLisp, Tecnometal4D, GIMP

    Predefinito

    non ho avuto tempo di leggere a fondo tutto ma 1 cosa ho notato, svuoti un oggetto e poi lo richiami

    Inoltre invece del ciclo fori=1 to ... nella selezione degli oggetti del sste. utilizza il metodo for each element in sset lik passa 1 ad 1 ugualmente senza bisogno di calcolare la dimensione dell'array.



    ' Cancella la Regione
    'myRegion(0).Delete



    'Crea l'inserimento del testo nel baricentro della regione
    InsertionPoint(0) = myCentroid(0)
    InsertionPoint(1) = myCentroid(1)
    InsertionPoint(2) = 0

    'Crea il numero progressivo nella regione
    ThisDrawing.ModelSpace.AddText CStr(i + 1), InsertionPoint, TextHeight
    Next i

    'Unisce le regioni

    Dim unitReg As AcadRegion
    Dim compReg As AcadRegion

    Set compReg = myRegion(0)


    For i = 1 To UBound(myRegion)
    MsgBox "yes"
    Set unitReg = myRegion(i)

    compReg.Boolean acUnion, unitReg
    compReg.Update

    Next i

    inoltre se
    myRegion = ThisDrawing.ModelSpace.AddRegion(ThisPolyline)
    non capisco dove definisci myregion(0) (1) etc.. si è un variant ma se lo riempi su myregion lo sovrascrivi ogni volta, dovresti utilizzare un contatore myRegion(i) = ThisDrawing.ModelSpace.AddRegion(ThisPolyline)

    ripeto le sto buttando li, non ho il tempo di leggere a fondo vedere tutti gli intoppi. I miei sono solo degli spunti.
    Ultima modifica di Shape; 06-08-2008 alle 16: 36

  3. #3
    Utente poco attivo
    Iscritto dal
    2008
    Messaggi
    3
    Professione
    Programmatore
    Regione
    Abruzzo
    Software
    Access,VB,VBA

    Predefinito

    grazie dell'informazione vado subito a provare

  4. #4
    Utente Standard L'avatar di rpor66
    Iscritto dal
    2007
    Messaggi
    617
    Professione
    Programmatore
    Regione
    Sicilia
    Software
    AutoCad, CadWorx, Excel, Lisp, VBA

    Predefinito

    A occhio, il problema sta nella variabile myRegion, in quanto contiene solo l'ultima regione creata.
    Creati una selezione di tutte le regioni appena create e poi le unisci.

    Ciao

  5. #5
    Utente poco attivo
    Iscritto dal
    2008
    Messaggi
    3
    Professione
    Programmatore
    Regione
    Abruzzo
    Software
    Access,VB,VBA

    Predefinito

    :D Ok corretto l'errore adesso funziona!!!!!

    grazie tanto dell'aiuto:)


  • Discussioni Simili

    1. [Recuperato] Problema unione booleana
      Di Oldwarper nel forum Rhino3D
      Risposte: 1
      Ultimo Messaggio: 05-01-2014, 13: 13
    2. problema regioni in contatto iniziale
      Di driver nel forum Ansys
      Risposte: 0
      Ultimo Messaggio: 09-11-2009, 12: 37
    3. Selezione regioni
      Di anna24 nel forum Lisp per Autocad
      Risposte: 3
      Ultimo Messaggio: 19-10-2009, 19: 42
    4. Problema unione facce in NX2
      Di supertramp nel forum NX (Unigraphics)
      Risposte: 7
      Ultimo Messaggio: 11-07-2008, 15: 58
    5. Problema di unione solidi
      Di vsiman nel forum AutoCAD: Modellazione 3D e Rendering
      Risposte: 3
      Ultimo Messaggio: 02-03-2008, 21: 35

    Segnalibri

    Segnalibri

    Permessi di Scrittura

    • Tu non puoi inviare nuove discussioni
    • Tu non puoi inviare risposte
    • Tu non puoi inviare allegati
    • Tu non puoi modificare i tuoi messaggi
    •  



    CAD3D.it - la community dei progettisti