Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Zeichnungsinhalte löschen

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 SOLIDWORKS
  
Zerspanungstreff mit SolidCAM bei der Hoffmann GmbH in Achim/Bremen
Autor Thema:  API: Zeichnungsinhalte löschen (857 mal gelesen)
S Anja S
Mitglied


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

Beiträge: 8
Registriert: 14.06.2016

SolidWorks 2013
SP5.0

erstellt am: 25. Jul. 2016 12:19    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 auf Zeichnungen in einem bestimmten Bereich alles löschen was sich dort befindet - das können Blöcke oder auch Skizzenelemente sein. Hintergrund des Ganzen ist, das ich alte Angaben zu Oberflächenbeschaffenheiten von unseren Zeichnungen löschen möchte um per Makro aktuelle Angaben hin zu schreiben. Das hinschreiben per Makro funktioniert auch schon, zur Zeit muss ich die Altlasten jedoch noch per Hand löschen. Das müsste doch auch per Makro gehen?!?

Manuell geht das so einfach, mit der linken Maustaste einen Bereich selektieren, "Entf" und fertig 
Der Makrorekorder spuckt mir folgenden Code aus:

Code:
boolstatus = Part.Extension.SketchBoxSelect("0.245", "0.055", "0.000000", "0.411", "0.068", "0.000000")
Part.EditDelete

Leider passiert da absolut gar nichts 
Kann mir jemand weiter helfen??

Vielen Dank und viele Grüße 
Anja

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 25. Jul. 2016 13:02    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 S Anja S 10 Unities + Antwort hilfreich

Hallo Anja,

hast du vorher auch die Skizze aktiviert? Weil auch eine Zeichnung hat eine "Skizze" die vorher aktiviert sein muss.
Hier mal mein auf die schnelle getippselter Code dazu, ob er hier auch Blöcke u.ä. berücksichtigt hab ich nicht getestet.

Code:
Option Explicit

Dim swApp As SldWorks.SldWorks
Dim swModelDoc As ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swDrawingDoc As DrawingDoc
Dim swView As View
Dim swSketch As Sketch

Dim boolstatus As Boolean

Sub main()

Set swApp = Application.SldWorks

Set swModelDoc = swApp.ActiveDoc
Set swModelDocExt = swModelDoc.Extension
Set swDrawingDoc = swModelDoc
Set swView = swDrawingDoc.GetFirstView
Set swSketch = swView.GetSketch

boolstatus = swModelDocExt.SketchBoxSelect(0.245, 0.055, 0, 0.411, 0.068, 0)
swModelDoc.EditDelete

End Sub


[EDIT] Eben schnell gestestet, Blöcke werden hier beim löschen ignoriert, was ich mir fast schon dachte.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 25. Jul. 2016 editiert.]

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

S Anja S
Mitglied


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

Beiträge: 8
Registriert: 14.06.2016

SolidWorks 2013
SP5.0

erstellt am: 25. Jul. 2016 13:48    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 Bernd,

danke für die schnelle Antwort!
Nein, ich hatte keine Skizze aktiviert - mit deinem Code funktioniert das, wie gesagt zumindest für Skizzenelemente, super! 
Ist das mit der "FirstView" stabil? In dem aktuellen Beispiel hat es funktioniert... Ich kann die Skizze bei mir auch nicht sehen - irgendwie ist mir diese Skizze noch etwas unsympatisch 

Viele Grüße
Anja

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 25. Jul. 2016 14: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 S Anja S 10 Unities + Antwort hilfreich

Hallo Anja,

meines wissens ist der FirstView immer das Zeichnungsblatt, der Zweite dann das Shett und dannach kommen erst die eigentlichen Ansichten.
Du könntest zur Sicherheit natürlich noch vor dem Löschen eine Abfragen einbauen um welchen Typ View es sich handelt, hier must du dann natürlich eine Schleife durch alle Views einbauen.

Code:

Do While Not swView Is Nothing

If swView.Type = swDrawingSheet Then

    boolstatus = swModelDocExt.SketchBoxSelect(0, 0, 0, 0.411, 0.068, 0)
    swModelDoc.EditDelete
    Exit Do
Else
    set swView = swView.GetNextView
End If

Loop


Gruß
Bernd

[EDIT]Genau genommen ist es dem Programm aber egal da alle Skizzenelemente auf der selben Skizze liegen auch wenn du Sie an eine Ansichten gebunden hast.

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 25. Jul. 2016 editiert.]

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

S Anja S
Mitglied


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

Beiträge: 8
Registriert: 14.06.2016

SolidWorks 2013
SP5.0

erstellt am: 25. Jul. 2016 14:44    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

Vielen Dank, Bernd!! 

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