Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Auswahl und Modifikation von Linien in Zeichnungen

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
  
Intertool 2024
Autor Thema:  Auswahl und Modifikation von Linien in Zeichnungen (9045 mal gelesen)
Harald Lüling
Mitglied



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

Beiträge: 39
Registriert: 30.04.2003

erstellt am: 14. Mai. 2005 06:43    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

Wir benötigen eine Funktion mit der Linienarten, Strichstärken, Linienfarben in SWXSolidWorks-Zeichnungen in andere Linienarten, Strichstärken, Linienfarben umgewandelt werden können. Ebenso sollen Linien auf bestimmten Layern ausgewählt und modifiziert werden können.

Kennt jemand ein Makro bzw. ein "API-Programm" mit dem solche Modifikationen durchgeführt werden können?
Die Auswahl soll jeweils über die ganze Zeichnung incl. Zeichnungsrahmen und Schriftfeld erfolgen.

Wir haben es nicht geschafft, diese Aufgaben mit den Standardfunktionen von SWXSolidWorks 2005 zu lösen.

Vielen Dank für Hinweise!


Gruß
Harald

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 17. Mai. 2005 13:27    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 Harald Lüling 10 Unities + Antwort hilfreich

Na, das geht doch aber schon immer mit den normalen Bordmitteln: Schalte mal die Symbolleiste Linienformat ein und darin hast Du die Werkzeuge, die Du brauchst.
Ansonsten kannst Du auch Layer so steuern, daß sie bestimmte Farben, Linienarten und -dicken steuern; Deine Linien sollten dann aber auch die Definition des Layers nehmen und nichts eigenes definieren (das setzt sich dann nämlich durch).
Wenn Du die anderen Layer ausschaltest, kannst Du die Elemente der eingeschalteten auswählen. Und über Filter kannst Du Dir auch bestimmte Elemente der Zeichnung auswählen...
Über Komponentenlinien kannst Du auch regeln, auf welchem Layer welche Komponente landet, wenn es nicht standardmäßig werden soll.
Sage mal bitte genauer, was Du tun wolltest und was dabei nicht ging!

------------------
Lutz Federbusch

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

Harald Lüling
Mitglied



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

Beiträge: 39
Registriert: 30.04.2003

erstellt am: 17. Mai. 2005 18:35    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

Zitat:
Original erstellt von Lutz Federbusch:
Na, das geht doch aber schon immer mit den normalen Bordmitteln: Schalte mal die Symbolleiste Linienformat ein und darin hast Du die Werkzeuge, die Du brauchst.


Klar, dass das bei der Erstellung von neuen Zeichnungen klappt.

Wie beschrieben geht es aber darum, in vorhandenen Zeichnungen auswählen und umwandeln zu können. (Altdaten)
Die Geometrieelemente sind auf bis zu ca. 250 Layern verteilt.
Filter, die auf Linientypen ansprechen, haben unser Vertragshändler und wir nicht entdeckt.

Gruß
Harald

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 18. Mai. 2005 10: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 Nur für Harald Lüling 10 Unities + Antwort hilfreich

Probiere doch mal aus der Symbolleiste Auswahlfilter den für Skizzensegmente. Der wählt alle Linien aus, egal von welchem (eingeblendeten) Layer. Ansonsten: Löschen von Layern hinterläßt die Linien in der Zeichnung; Linien kannst Du auch auf einen anderen Layer verschieben. Funktioniert gut bei Altdaten, machen wir ständig... Ich sehe da eigentlich nirgends ein Problem!?!
Sind Deine Linien evtl. in Blöcken "gefangen"? Dann müßtest Du erst die Blöcke auflösen. Oder gib uns mal ein Beispiel!

------------------
Lutz Federbusch

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 18. Mai. 2005 11: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 Harald Lüling 10 Unities + Antwort hilfreich

Und falls Du es über die API als Makro machen möchtest:

Sub Wahl()
    Dim Zeichnung As Object
    Dim Ansicht As Object
    Dim Skizze As Object
    Dim SkizzenSegment As Object
    Dim Elemente As Variant
    Dim Anzahl As Long
    Dim ret As Boolean
    Dim n, i As Long
   
    Set swApp = CreateObject("SldWorks.Application")
    Set Zeichnung = swApp.ActiveDoc
    Set Skizze = Zeichnung.GetActiveSketch

    If Skizze Is Nothing Then
        MsgBox ("Auswahl für " + Zeichnung.GetTitle + " fehlgeschlagen!")
        Exit Sub
    End If
    n = 0
    Elemente = Skizze.GetSketchSegments            ' Damit sind alle Linien ausgewählt
    If IsEmpty(Elemente) Then Exit Sub              ' Abbruch, wenn keine Skizzenelemente erlangt werden konnten
    Anzahl = UBound(Elemente) + 1

    For i = 0 To (Anzahl - 1)
        Set SkizzenSegment = Elemente(i)

'Hier könnte man jetzt das einzelne Element vom typ SketchSegment untersuchen,

'mit SkizzenSegment.GetType kannst Du untersuchen, ob es Linie, Bogen, Spline o.ä. ist;
'mit              .Select2 ob es ausgewählt war
'mit              .Layer auf welchem Layer ist das Element; LayerOverride verrät, ob es Eigenschaften gibt, die den Layer überschreiben
'mit              .Color die Farbe
'mit              .Style die Linienart
'mit              .Width die Liniendicke


        ret = SkizzenSegment.Select2(True, 0)      ' wenn ausgewählt, dann soll z.B. n hochgezählt werden
        If ret = True Then n = n + 1
    Next i
    MsgBox (Str(Anzahl) + " Skizzensegmente gefunden!" + vbCrLf + "Davon " + Str(n) + " ausgewählt!")

End Sub

------------------
Lutz Federbusch

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

Hermann_W
Mitglied


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

Beiträge: 1
Registriert: 19.05.2005

erstellt am: 19. Mai. 2005 17: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 Harald Lüling 10 Unities + Antwort hilfreich

Hallo Lutz,
Harald arbeitet mit mir zusammen an der Lösung des oben geschilderten Problems. Vielleicht ist es nicht richtig "rübergekommen":
Wir haben Altdaten importiert; deren Elemente liegen auf ganz unterschiedlichen Layern, haben (teilweise) keine Linienstärke und
weisen unterschiedliche Farben auf. Anhand dieser Farben könnten wir
die Elemente aber "identifizieren" (z. B. liegen alle Vollinien auf
grün, alle Mittellinien auf weiß usw.).
Wir möchten mit einem Makro den importierten "farbigen" Elementen im SWXSolidWorks Strichbreite, Farbe und evtl. Layer zuweisen. Wir haben im SWXSolidWorks aber keine Möglichkeit gefunden, farbige Elemente herauszufiltern.

Evtl. geht das ja nur mit einem API.
Könnten mit deinem API nacheinander farbige Elemente herausgefiltert werden,um diesen dann bestimmte Eigenschaften zuzuweisen?

Vielen Dank, Hermann

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 20. Mai. 2005 10:06    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 Harald Lüling 10 Unities + Antwort hilfreich

Ja, das SketchSegment-Objekt ermöglicht die Abfrage und das Setzen  von Farbe, Dicke usw. wie oben aufgeführt. Hat es die Farbe, dann mach etwas mit dem aktuellen Skizzenelement - z.B. die Farbe ändern, es auf Layer verschieben, dicker machen oder was Du willst!
Zur Nutzung der Befehle mußt Du mal in die API-Hilfe schauen. Mit dem Codegerüst sollte es aber kein Problem mehr sein.

------------------
Lutz Federbusch

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