Aiutino per completare il mio codice (Warning: msg lunghetto)...

Discussion in 'AutoCAD' started by Soc, Jun 1, 2006.

  1. Soc

    Soc Guest

    Ragazzi vi chiedo un aiuto per sviluppare un codicino semplice semplice
    che mi aiuti nel mio lavoro di tesi.

    IO HO UN BEL DWG CON UNA SERIE DI LINEE, POLILINEE E POLIGONI/REGIONI
    (O SEMPLICEMENTE POLILINEE CHIUSE) E MI PIACEREBBE ASSEGNARE AD ESSE UN
    NOME ED ESPORTARNE LE CARATTERISTICHE PRINCIPALI come LUNGHEZZA (ok),
    PERIMETRO, AREA...

    Fin oggi ho stressato un po' di amici nel ng e mi hanno dato delle
    dritte fenomenali ma ora cerco un supporto finale per concludere il mio
    progettino e lasciar rilassare Nobody, Claudio & C (1000 grazie). Sono
    proprio duro di testa! Non riesco a mettere insieme tante belle Sub
    perchè ho dimenticato tutto del VB e, sotto AutoCAD, sembra non
    volermi ascoltare...

    Fin ora riesco a:
    - SELEZIONARE CIO' CHE VOGLIO NOMINARE
    On Error Resume Next
    ThisDrawing.SelectionSets.Item("NewSet").Delete
    Set Selezione =
    ThisDrawing.SelectionSets.Add("NewSet")
    Selezione.SelectOnScreen

    - DARE UN NOME ALLE ENTITA' SELEZIONATE (forse qui dovrei investigare
    se l'entità in analisi è una polilinea, linea o area ed assegnare un
    xData con questa info)
    For Each Entità In Selezione
    If Entità.EntityType = acPolylineLight Or
    Entità.EntityType = acLine Then
    Colore = Entità.color
    Entità.Update
    Testo = InputBox("Nome Sezione?")
    DataType(0) = 1001
    data(0) = "SEZ"
    DataType(1) = 1000
    data(1) = Testo
    Call Entità.SetXData(DataType, data)
    Entità.color = Colore
    Entità.Update
    End If
    Next Entità

    - ORA DEVO CERCAR DI ESPORTARE IN UN TXT UNA TABELLA DEL TIPO:
    Print #1, "Entità | NOME | LUNGHEZZA |

    AREA | ALTRO"DOVE ENTITA' MI DICE SE è LINEA, POLILINEA, AREA
    OD ALTRO
    NOME è QUELLO CHE HO INSERITO IO PRIMA OD ALTRIMENTI ANONIMO MA MI
    SCONTRO CON PROBLEMI DI DICHIARAZIONI DELLE VARIABILI (DIM, PRIVATE O
    PUBLIC. DENTRO O FUORI DALLA SUB...) PERCHè NON RIESCO A PASSARE E
    RITROVARE TUTTI GLI ATTRIBUTI DI OGNI SINGOLA ENTITA':
    FIN ORA IL CODICE DICE:
    seleziona le entità da analizzare
    For Each ent In SsSet
    Print #2, RecuperaXData(ent, 1) & ";" &
    Format(ent.Length, "0.0000")
    Next ent
    Close #2
    End Sub
    Public Function RecuperaXData(sez As Object, i
    As Integer) As String
    Call sez.GetXData("", DataType, data)
    RecuperaXData = data(i)
    End Function
    MA SE VOLESSI UNIRE LA SUB E LA FUNCTION SOPRA COSA DEVO FARE CON LE
    MIE VARIABILI? E PER CHIEDERE AREA, PERIMETRO E NOME? IO PENSAVO
    (sempre troppo) DI FARE QUALCOSA TIPO:
    For Each Entità In Selezione
    call entità.getxdata(A,B,C)
    Info1 = A
    Info2 = DataType(0)
    Info3 = DataValue(B)
    Info4 = data(0)
    Info5 = data(1)
    Lungh = Entità.Length
    Print #1, Info1 &";"& Info2 & ";" Lungh &....&
    Info5
    Next Entità
    Close #1
    End Sub
    MA NON GIRA E NON MI COMPLETA LA TABELLA SOPRA! CHE SBAGLIO? SE NON VI
    SIETE ANCOR STANCATI DI LEGGERE QUESTO PAPIRO, VI RINGRAZIO. AVETE GIA'
    FATTO TANTO. SE VOLETE DARMI UNA MANO PER CONTINUARE QUESTA IMPRESA,
    SON DISPOSTO A TUTTO...NON PENSIATE CHA DALL'UNIVERSITA' NON POSSANO
    USCIRE INFO INTERESSANTI (FORTRAN, RINGRAZIAMENTI IN TESI, PIZZE....)
    SCHERZI A PARTE VE NE SAREI GRATISSIMO...

    P.S. SPERO POSSA ESSERE UTILE ANCHE AD ALTRI!!!!
    SE SIETE CURIOSI/INTERESSATI AD ALTRI STRALCI DI CODICE SCRIVETEMI IN
    MAIL CHE VI SPEDISCO LA MIA INTERA BANCA DATI... PER ESEMPIO MI
    PIACEREBBE FARE UNA SUB CHE MI RESTITUISCA IL NOME DELLA SEZIONE SE CI
    CLICCO SOPRA, OPPURE UNA SUB CHE SCRIVA IN UNA CASELLA DI TESTO VICINA
    ALL'ENTITà IL SUO NOME (e/o le altre info)... insomma tutte le idee
    per interagire con la testa del mio professore sono ben accette...

    CIAO A TUTTI
    GRAZIE A TUTTI
    ROBERTO
     
    Soc, Jun 1, 2006
    #1
  2. Soc

    Soc Guest

    Soc ha scritto:
     
    Soc, Jun 13, 2006
    #2
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.