Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Zugriff auf Rasterbild

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Zugriff auf Rasterbild (937 mal gelesen)
dimpflmoser
Mitglied



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

Beiträge: 12
Registriert: 17.01.2008

erstellt am: 22. Sep. 2008 19:05    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,

in meiner Zeichnung ist ein Rasterbild angehängt (z. B. RasterName) - nun möchte ich dieses per VBA-Code löschen.

Kann mir jemand einen Kursschnipsel zeigen, wie ich Zugriff auf das Objekt bekomme und dieses dann lösche?

Danke Helmut

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9807
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 22. Sep. 2008 21:08    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 dimpflmoser 10 Unities + Antwort hilfreich

Hallo dimfplmoser,
ist das Bild als OLE Objekt eingefügt, oder als Bild extern referenziert (Befehl EXTERNREF bzw. BILDZUORDNEN) oder als bitonales Bild mit Autodesk Rasterdesign eingebettet?
Soll die Datei von der Festplatte gelöscht werden, oder soll die Bild-Einfügung lediglich aus der AutoCAD Zeichnung gelöscht werden oder soll die Definition aus der Zeichnung entfernt werden?
Das betreffende Objekt und seine Methoden findet man im Objektkatalog unter AcadRasterImage.

Ein Beispiel, welches evt. deine Frage beantwortet:

Code:
Sub deleteAllRasterImages()

Dim obj As Object
Dim image As AcadRasterImage

For Each obj In ThisDrawing.ModelSpace
If TypeOf obj Is AcadRasterImage Then
  Set image = obj
  image.Delete
End If
Next

End Sub


------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9807
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 22. Sep. 2008 21: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 dimpflmoser 10 Unities + Antwort hilfreich

Oder evt. ist dieses Codeschnipsel interessant:
Code:
Sub ListImages_AcadFileDependencies()
Dim objFileDepCol As AutoCAD.AcadFileDependencies
Dim objFileDep As AutoCAD.AcadFileDependency
Set objFileDepCol = ThisDrawing.FileDependencies
Dim strTemp As String
For Each objFileDep In objFileDepCol
 
  If objFileDep.Feature = "Acad:Image" Then
    objFileDepCol.UpdateEntry objFileDep.Index
    strTemp = "Dateiname: " & vbTab & objFileDep.FileName
    strTemp = strTemp & vbCrLf & "Dateigröße: " & vbTab & _
    vbTab & objFileDep.FileSize
    MsgBox strTemp
  End If
Next
End Sub

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

dimpflmoser
Mitglied



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

Beiträge: 12
Registriert: 17.01.2008

erstellt am: 23. Sep. 2008 09:22    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 Herr Hübner,

vielen Dank für Ihre schnelle Antwort. Der erste Code-Schnipsel ist sehr interessant. Mein Problem ist, dass die Zeichnungen, mit denen ich arbeite aus mehreren 10000 Objekten bestehen. Ich hatte vergeblich versucht mit folgendem Code weiterzukommen:

Dim objRasterImg As Object
Set objRasterImg.ObjectName = GetObject(strRasterName)
objRasterImg.Delete

Kann man den Code irgendwie retten?

Danke

Helmut Seidel

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 23. Sep. 2008 09:31    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 dimpflmoser 10 Unities + Antwort hilfreich

Hallo Helmut,

Sind alle Objekte Bilder?! Sonst erstelle erst einmal einen SelectionSet, der alle Bilder enthält und durchlaufe diesen dann.

Gruß, Carsten

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

dimpflmoser
Mitglied



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

Beiträge: 12
Registriert: 17.01.2008

erstellt am: 23. Sep. 2008 09:47    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 Carsten,

nein, es sind nur einige Bilder enthalten. Auch wenns dumm klingt (bin ziemlich neu in Acad-Vba), wie kann ich denn ein SelectionSet bilden, das alle Bilder enthält?

Nochmal danke und sorry ...

Helmut

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 23. Sep. 2008 09:58    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 dimpflmoser 10 Unities + Antwort hilfreich

Hi Helmut,

Hier mal ein Selectionset für Bilder:

Code:
Sub Ch4_Filtertest()
  Dim sset As AcadSelectionSet
  Dim FilterType(0) As Integer
  Dim FilterData(0) As Variant
  On Error Resume Next
  ThisDrawing.SelectionSets.Item("SS2").Delete
  Set sset = ThisDrawing.SelectionSets.Add("SS2")
  FilterType(0) = 0
  FilterData(0) = "Image"
 
  sset.Select acSelectionSetAll, , , FilterType, FilterData
End Sub

Gruß, Carsten

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

dimpflmoser
Mitglied



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

Beiträge: 12
Registriert: 17.01.2008

erstellt am: 23. Sep. 2008 16:29    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 Carsten,

super - oder fast. Ich hab jetzt mit deiner Hilfe denfolgenden Code zusammengebaut:

On Error Resume Next
    ThisDrawing.SelectionSets.Item("SS2").Delete
    Set sset = ThisDrawing.SelectionSets.Add("SS2")
    FilterType(0) = 0
    FilterData(0) = "Image"

    sset.Select acSelectionSetAll, , , FilterType, FilterData
   
    ' SelectionSet durchlaufen
    For Each objRasterImg In sset
        ' Testen, ob gesuchtes Image
        If objRasterImg.name = strRasterName Then
            ' Raster löschen
            objRasterImg.Delete
            ' FileSystem-Objekt erstellen
            Set objFso = CreateObject("Scripting.FileSystemObject")
            ' Testen, ob die Datei vorhanden ist
            If objFso.FileExists(strRasterPath) Then
                objFso.DeleteFile strRasterPath
                objRasterImg.Update
            End If
        End If
    Next

Das funktioniert scheinbar. Das Raster wird nicht mehr angezeigt und die Datei wird gelöscht. Allerdings wird das Raster nur in der Anzeige gelöscht. In der Bilderverwaltung bleibt das Bild allerdings vorhanden? Krieg ich die auch noch raus?

Nochmal Danke

Helmut

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)2025 CAD.de | Impressum | Datenschutz