Risultati da 1 a 5 di 5
  1. #1
    Utente Junior L'avatar di ale
    Iscritto dal
    2008
    Messaggi
    64
    Professione
    tecnico
    Regione
    Veneto
    Software
    office+autocad

    Predefinito Inserire più blocchi in un disegno

    volevo proporre una routine per inserire più blocchi in un disegno.
    a titolo di esempio, all' interno di un file .dwg inserisco due blocchi che prenderanno il nome di 01 e 02.
    per inserirli :

    Public Sub blocco()
    Dim objBlock As AcadBlock
    Dim insBlock As AcadBlockReference
    Dim strName As String
    Dim p(0 To 2) As Double
    p(0) = 0: p(1) = 0: p(2) = 0
    For Each objBlock In ThisDrawing.Blocks
    strName = objBlock.Name
    ThisDrawing.SendCommand "._-insert" & vbCr & objBlock.Name & vbCr & "0,0,0" & vbCr _
    & 1 & vbCr & 1 & vbCr & 1 & vbCr & 0 & vbCr

    Debug.Print objBlock.Name
    Next
    End Sub


    la finestra immediata mostra :

    *Model_Space
    *Paper_Space
    *Paper_Space0
    01
    02

    mentre nello spazio modello una serie di finestre rallentano l'operazione di inserimento.

    a questo punto per aggirare l' ostacolo inserisco :

    If Left(strName, 1) = "1" Then

    è tutto sembra funzionare a meraviglia.

    pensate che ci sia qualche altro modo per rendere agevole questa procedura ?

  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 capisco molto il senso di questa macro.. inserisce tutti i blocchi che sono presenti nel dwg...

    cmq per baipassare le lo spazio modello e lo spazio carta che sono gestitti come blochi

    Public Sub blocco()
    Dim objBlock As AcadBlock
    Dim insBlock As AcadBlockReference
    Dim strName As String
    Dim p(0 To 2) As Double
    p(0) = 0: p(1) = 0: p(2) = 0
    For Each objBlock In ThisDrawing.Blocks
    strName = objBlock.Name
    If Left(strName, 1) <> "*" Then
    ThisDrawing.SendCommand "._-insert" & vbCr & objBlock.Name & vbCr & "0,0,0" & vbCr _
    & 1 & vbCr & 1 & vbCr & 1 & vbCr & 0 & vbCr
    Debug.Print objBlock.Name
    End If
    Next
    End Sub


    Poi per inserire il blocco invece del sendcommand...che è un po' grezzo metterei

    Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(p, strName, 1#, 1#, 1#, 0)

    Io ho un macchina abbastanza potente ma non ho notato rallentamenti...
    Ultima modifica di Shape; 24-01-2008 alle 11: 44

  3. #3
    Utente Junior L'avatar di ale
    Iscritto dal
    2008
    Messaggi
    64
    Professione
    tecnico
    Regione
    Veneto
    Software
    office+autocad

    Predefinito

    grazie shape per avermi risposto.
    questa routine, è una parte di un lavovo un po' più articolato che stò sviluppando.
    sarebbe il mio primo elaborato in vba.
    è da poco tempo che mi esercito con vba è spero di diventare con un po' di esercizio un principiante :D.
    non conoscevo <> "*" ; in questi giorni cerco di esercitarmi.
    ciao
    Ultima modifica di ale; 28-01-2008 alle 23: 14

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

    Predefinito

    <> "*" vuol dire "diverso da *" visto che i nomi di spazio modello e spazio carta iniziano semrpe per * ho fatto un filtro per non selezionare quelli... tutto li... è un metodo un po' grezzo ma funziona.....

  5. #5
    Utente Junior L'avatar di ale
    Iscritto dal
    2008
    Messaggi
    64
    Professione
    tecnico
    Regione
    Veneto
    Software
    office+autocad
    ..... ok !
    ciao


  • Discussioni Simili

    1. Come inserire un cartiglio per un disegno 3D
      Di Micheletecnospazio nel forum AutoCAD: Modellazione 3D e Rendering
      Risposte: 7
      Ultimo Messaggio: 22-06-2010, 18: 42
    2. Inserire xrif e blocchi con autolisp
      Di eremiss nel forum Lisp per Autocad
      Risposte: 7
      Ultimo Messaggio: 23-10-2008, 20: 25
    3. Inserire dei caratteri in un disegno 3d
      Di Giuseppe nel forum AutoCAD: Modellazione 3D e Rendering
      Risposte: 7
      Ultimo Messaggio: 13-06-2008, 10: 35
    4. Ricerca di blocchi in un disegno
      Di thetmd nel forum VBA per Autocad
      Risposte: 7
      Ultimo Messaggio: 17-03-2008, 13: 40
    5. INSERIRE UN FILE DI DISEGNO DENTRO AD UN ALTRO
      Di AK-47 nel forum Creo Parametric (ex Pro/E)
      Risposte: 1
      Ultimo Messaggio: 29-02-2008, 23: 03

    Tag per Questa Discussione

    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