Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Bock exportieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Bock exportieren (822 mal gelesen)
Heron83
Mitglied
Automatiker


Sehen Sie sich das Profil von Heron83 an!   Senden Sie eine Private Message an Heron83  Schreiben Sie einen Gästebucheintrag für Heron83

Beiträge: 11
Registriert: 22.10.2003

Auto CAD 2002, VBA, IBM 800MHz, 512MB Ram

erstellt am: 13. Nov. 2003 14:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen

Ich möchte einen Block als Blockdatei exportieren.
Wie stelle ich das an?

------------------
Gruss Kai

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


Sehen Sie sich das Profil von fuchsi an!   Senden Sie eine Private Message an fuchsi  Schreiben Sie einen Gästebucheintrag für fuchsi

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 17. Nov. 2003 13:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heron83 10 Unities + Antwort hilfreich

es gibt die funktion thisdrawing.wblock,
leider funktioniert diese nur mit einem selectionset, also direkt aus der blockdefinition heraus, geht meines wissens leider nicht

du musst den block in die zeichnung einfügen, dann ursprungen, die beim ursprung erzeugten elemente in ein selectionset packen, und mit wblock abspeichern

danach kannst du die elemente wieder löschen

------------------
***********************************************
AutoCad 2000i, 2002, 2004 deutsch und englisch
Windows 2000, NT, XP

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Caladia
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Caladia an!   Senden Sie eine Private Message an Caladia  Schreiben Sie einen Gästebucheintrag für Caladia

Beiträge: 2546
Registriert: 04.03.2002

ACAD2009
ACAD2010 SP2
ACAD2011 SP1
ABDS-S 2012 SP2
ABDS-S 2013 SP2
ABDS-S 2014
Expresstools
A3-Makroboard
16-Tasten Lupe
Impression 3
Win7 64bit
IE10
Firefox 4.x
Office2003 SP3

erstellt am: 17. Nov. 2003 14:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heron83 10 Unities + Antwort hilfreich

Da gabs schon mal was mit Blöcke expotieren. Währe da nicht ein anknüpfpunkt dabei? http://ww3.cad.de/foren/ubb/Forum54/HTML/002342.shtml

------------------
Gruss
Caladia

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 18. Nov. 2003 07:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heron83 10 Unities + Antwort hilfreich

Du müsstest eigentlich nur die Elemente des Blocks (nicht der Referenz) in ein SelSet geben und dann als WBlock rausspeichern. Sollte eigentlich kein Porblem sein. Schau ich mir einmal an.

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 18. Nov. 2003 08:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heron83 10 Unities + Antwort hilfreich

Probier es einmal damit

Code:
Public Sub BlöckeAusZeichnung4()
   
    Dim Blöcke As AcadBlocks
    Dim BlObj As AcadBlock
   
    Dim ss As AcadSelectionSet
   
    Dim objEnt As AcadEntity
    Dim objArray() As AcadEntity
    Dim intcnt As Integer
    Dim varTemp As Variant
    Dim Name As String
    Dim Path As String
   
    Dim ActiveDoc As AcadDocument
   
    Set ActiveDoc = Application.ActiveDocument
   
   
    Set Blöcke = ActiveDoc.Blocks
    If Blöcke.Count = 0 Then Exit Sub
   
    Set ss = CreateSelectionSet("Blöcke")
   
    For Each BlObj In Blöcke
        If Not (BlObj.IsLayout Or BlObj.IsXRef) Then
            Name = BlObj.Name
            If InStr(Name, "*") > 0 Or BlObj.Count = 0 Then GoTo NextObj
            'If BlObj.Count = 0 Then GoTo NextObj
           
            Path = "D:/_Buero/Zeichnungen/_Test/" & Name & ".dwg"
            intcnt = 0
            ReDim objArray(BlObj.Count - 1)
            For Each objEnt In BlObj
                Set objArray(intcnt) = objEnt
                intcnt = intcnt + 1
            Next objEnt
            Dim objSpace As AcadBlock
            Set objSpace = ThisDrawing.CurrentSpace
            varTemp = ActiveDoc.CopyObjects(objArray, objSpace)
            ss.AddItems varTemp
           
            ActiveDoc.Wblock Path, ss
            ss.Erase
        End If
NextObj:
    Next BlObj
ENDE:
    ss.Delete

End Sub



Die Funktion CurrentSpace gehört in ThisDrawing
Code:
Public Property Get CurrentSpace() As AcadBlock
    If Me.ActiveSpace = acModelSpace Then
        Set CurrentSpace = Me.ModelSpace
    Else
        If Me.MSpace Then
            Set CurrentSpace = Me.ModelSpace
        Else
            Set CurrentSpace = Me.ActiveLayout.Block
        End If
    End If
End Property

Natürlich mußt du den Pfad auch noch ändern. Vorsicht!!! Bereits bestehende Dateien werden ohne Vorwarnung überschrieben.

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Industrial Engineer/Arbeitsplaner (m/w/d)

Seit unserer Gründung 1979 zählen wir als inhabergeführtes Unternehmen mit rund 1.500 Mitarbeitenden in Europa zu den führenden Premium-Herstellern der Reisemobilbranche. Mit unseren beiden Marken Carthago und Malibu stehen wir für höchste Qualität, Ideen und Innovationen. ?Carthago City? als eine der modernsten Reisemobilfertigungen Europas spiegelt unseren Qualitätsanspruch optimal wieder und macht uns zu einem attraktiven Arbeitgeber in der Region Oberschwaben, Bodenseekreis und Allgäu....

Anzeige ansehenProzessmanagement
RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 18. Nov. 2003 08:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heron83 10 Unities + Antwort hilfreich

Hier eine kleine Variant
Code:
'Schreibt alle Blöcke mit Vorschau aus der Zeichnung
Public Sub BlöckeAusZeichnung5()
   
    Dim Blöcke As AcadBlocks
    Dim BlObj As AcadBlock
   
    Dim ss As AcadSelectionSet
   
    Dim objEnt As AcadEntity
    Dim objArray() As AcadEntity
    Dim intcnt As Integer
    Dim Name As String
    Dim Path As String
   
    Dim ActiveDoc As AcadDocument
    Dim BlockDoc As AcadDocument
    Dim objSpace As AcadBlock
   
    Set ActiveDoc = Application.ActiveDocument
   
   
    Set Blöcke = ActiveDoc.Blocks
    If Blöcke.Count = 0 Then Exit Sub
   
    Set ss = CreateSelectionSet("Blöcke")
   
    For Each BlObj In Blöcke
        If Not (BlObj.IsLayout Or BlObj.IsXRef) Then
            Name = BlObj.Name
            If InStr(Name, "*") > 0 Or BlObj.Count = 0 Then GoTo NextObj
           
            Path = "D:/_Buero/Zeichnungen/_Test/" & Name & ".dwg"
            intcnt = 0
            ReDim objArray(BlObj.Count - 1)
            For Each objEnt In BlObj
                Set objArray(intcnt) = objEnt
                intcnt = intcnt + 1
            Next objEnt
            Set BlockDoc = Documents.Add("Pauser_MM1")
           
            On Error Resume Next
            ActiveDoc.CopyObjects objArray, BlockDoc.ModelSpace
            If Err Then
                MsgBox Name & " kann nicht gespeichert werden"
                Set BlockDoc = Nothing
           
            Else
                BlockDoc.Activate
                ZoomExtents
                BlockDoc.SaveAs Path
                BlockDoc.Close
            End If
           
        End If
NextObj:
    Next BlObj
ENDE:
    ss.Delete

End Sub


Vorsicht!!! Die Vorlagendatei "Pauser_MM1" gehört an eure Bedürfnisse angepasst.

------------------
Roland

[Diese Nachricht wurde von RoSiNiNo am 18. Nov. 2003 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz