| |
| 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
Beiträge: 11 Registriert: 22.10.2003 Auto CAD 2002, VBA, IBM 800MHz, 512MB Ram
|
erstellt am: 13. Nov. 2003 14:03 <-- editieren / zitieren --> Unities abgeben:
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 17. Nov. 2003 13:34 <-- editieren / zitieren --> Unities abgeben: Nur für Heron83
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.
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 / zitieren --> Unities abgeben: Nur für Heron83
|
RoSiNiNo Mitglied Konstrukteur
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 / zitieren --> Unities abgeben: Nur für Heron83
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
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 / zitieren --> Unities abgeben: Nur für Heron83
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.DeleteEnd 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 ansehen | Prozessmanagement |
|
RoSiNiNo Mitglied Konstrukteur
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 / zitieren --> Unities abgeben: Nur für Heron83
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.DeleteEnd 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 |