| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Dassault Systèmes auf der Hannover Messe 2024 (kostenlose Tickets verfügbar) |
Autor
|
Thema: API - Elemente auf Layer -kein- einstellen (308 mal gelesen)
|
Ralf Blokscha Mitglied Konstrukteur
Beiträge: 175 Registriert: 10.07.2000
|
erstellt am: 17. Mrz. 2005 12:59 <-- editieren / zitieren --> Unities abgeben:
|
Kalle Mitglied Student
Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 17. Mrz. 2005 13:21 <-- editieren / zitieren --> Unities abgeben: Nur für Ralf Blokscha
Aheu Ralf, also bei mir hat's eben mit DrawingDoc.ChangeComponentLayer "-Kein-", True bei Teilen funktioniert. Wenn Du andere Sachen (Skizzen, Beschriftungen, etc.) auch ausgewählst hast, so musst Du vermutlich die einzelnen Befehle dafür benutzen. Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Blokscha Mitglied Konstrukteur
Beiträge: 175 Registriert: 10.07.2000 XEON 2x3.33GHz, 8.0GB Ram, nVidia Quadro FX 570 256 MB, WIN XP64 SP 2, SWX 2007_x64 SP 5.0
|
erstellt am: 18. Mrz. 2005 07:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Kalle, hallo SWX -User habe als Vorlage (How_to_move_all_dimensions_to_a_different_layer.bas) von der SWX-API Downloadseite genommen und etwas angepasst. Option Explicit Const ToLayer As String = "-Kein-" Sub main() Dim swApp As Object Dim swModel As Object Dim swDraw As Object Dim swView As Object Dim swAnn As Object Dim swDispDim As Variant Dim NumShts As Long Dim i As Long Dim n As Variant Set swApp = CreateObject("SldWorks.Application") Set swModel = swApp.ActiveDoc Set swDraw = swModel NumShts = swDraw.GetSheetCount For i = 1 To NumShts ' blindly go to the first sheet swDraw.SheetPrevious Next i For i = 1 To NumShts Set swView = swDraw.GetFirstView While Not swView Is Nothing Set swDispDim = swView.GetFirstDisplayDimension While Not swDispDim Is Nothing Set swAnn = swDispDim.GetAnnotation swAnn.Layer = ToLayer Set swDispDim = swDispDim.GetNext3 Wend Set swView = swView.GetNextView Wend swDraw.SheetNext Next i End Sub Warum funktioniert das mit jedem definierten Layer aber nicht mit Layer -Kein- ? Gruß Ralf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kalle Mitglied Student
Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 18. Mrz. 2005 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für Ralf Blokscha
Aheu Ralf, ich hab noch ein bisschen rumprobiert und festgestellt, dass swAnn.Layer einen leeren String zurückgibt wenn man es benutzt um den Layer von Beschriftungen abzufragen, die auf keinem Layer liegen. Leider kann man den leeren String nicht auch zuweisen, von daher ist es nicht möglich. Du kannst aber einfach einen neuen Layer mit dem Namen "-Kein-" erstellen und die Einstellungen nicht anrühren. Dann hast Du das Zeugs zwar trotzdem auf einem Layer, aber die visuellen Eigenschaften sind original. Falls Du verschiedene Eigenschaften der Elemente hast (man kann die ja auch einzeln zuweisen) gibt's da noch swAnn.LayerOverride. Schau Dir das doch auch mal an. Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Blokscha Mitglied Konstrukteur
Beiträge: 175 Registriert: 10.07.2000 XEON 2x3.33GHz, 8.0GB Ram, nVidia Quadro FX 570 256 MB, WIN XP64 SP 2, SWX 2007_x64 SP 5.0
|
erstellt am: 18. Mrz. 2005 10:33 <-- editieren / zitieren --> Unities abgeben:
|