Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro für Toleranz-Definition

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
  
Hoffmann Expertenseminar "Digitale Prozess- und Fertigungslösungen"
Autor Thema:  Makro für Toleranz-Definition (602 mal gelesen)
from scratch
Mitglied
Techniker TS

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

Beiträge: 5
Registriert: 25.05.2023

erstellt am: 25. Mai. 2023 10: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

Hallo zusammen

Ich habe ein Reihe Makros erstellt, mit dem ich Bemassungswerte mit wiederkehrenden symmetrischen Toleranzen (z.B. ±0.1, siehe Code) versehen kann.

Code:

Option Explicit
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.EditDimensionProperties2(4, 0.0001, 0, "", "", False, 1, 1, True, 12, 12, "", "", True, "", "", False)
Part.ClearSelection2 True
End Sub


Soweit funktioniert das so. Das Unschöne daran ist, dass wenn vor dem Bemassungswert z.B. das Ø-Zeichnen steht (<MOD-DIAM> ),
es diesen Text beim Ausführen des Makros herauslöscht. Der Befehl Part.EditDimensionProperties2 definiert die Bemassungstexte 
(mit den vier "" am Ende der Zeile) neu. Gibt es eine Möglichkeit, diesen Befehl so anzupassen, dass die Bemassungstexte nicht überschrieben werden?


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

Heiko Soehnholz
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. (FH) Maschinenbau



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

Beiträge: 5463
Registriert: 03.07.2002

SOLIDWORKS 2001 - 2024SP0.1
Elite AE Award 2023
SOLIDWORKS Premium,
Simu, Flow, Plastics, Composer, MBD,
Inspection, PDMP, Visualize, TopsWorks,
DPS Tools, JobBox, MacroSheet, etc.
Passungstabelle von Heinz
WIN10x64 22H2 | HP ZBook 17 Fury G8

erstellt am: 25. Mai. 2023 10:12    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 from scratch 10 Unities + Antwort hilfreich

Moin,

(ohne irgendwas geprüft zu haben): Ich würde versuchen, den bisherigen Bemaßungstext zuvor auszulesen, dann wieder korrekt reinzuschreiben. Ich denke, wo man was schreiben kann, sollte man auch etwas lesen können...

------------------
Einen schönen Gruß von Heiko
www.dps-software.dewww.dps-akademie.dewww.iknow-solidworks.dewww.youtube.de/dpssoftwaregmbh

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

from scratch
Mitglied
Techniker TS

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

Beiträge: 5
Registriert: 25.05.2023

erstellt am: 25. Mai. 2023 14:28    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

In meinem Fall benötige ich nur den Präfix.
Geht das mit swDispDim.GetText(swDimensionTextPrefix) ?
Wie muss die Befehlsfolge aussehen?

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 06. Jun. 2023 11:14    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 from scratch 10 Unities + Antwort hilfreich

ich würde die Toleranzen
über das "DimensionTolerance" Objekt mit "SetValues" setzen
dann bleibt die Bemaßung unberührt

Hinweis:
- mit "SetValues2" hab ich es nicht geschafft
- nicht vergessen ModelDoc2.GraphicsRedraw2 aufzurufen, damit die Ändeurng sichtbar wird

------------------
Grüße
Heinz

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

Winni-two
Mitglied
Ing. Maschb.


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

Beiträge: 154
Registriert: 12.03.2010

SW 2021 SP5
Intel Xenon W2135 @3.7GHz
Win 10 64 bit
Graka: Nvidia Quadro P4000
32 GB Ram

erstellt am: 12. Jun. 2023 08:21    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 from scratch 10 Unities + Antwort hilfreich

Hallo Scratch,

falls das Thema noch aktuell ist:

Dim swApp As Object
Dim ModelDoc As Object
Dim SelectionMgr As SelectionMgr
Dim DispDim As Object
Dim swDim                  As SldWorks.Dimension

Dim i, retval As Long

Const swSelDIMENSIONS = 14

Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set ModelDoc = swApp.ActiveDoc
Set SelectionMgr = ModelDoc.SelectionManager

 
For i = 1 To SelectionMgr.GetSelectedObjectCount
       
        If SelectionMgr.GetSelectedObjectType(i) = swSelDIMENSIONS Then        ' wenn es eine Bemaßung ist
           
            Set DispDim = SelectionMgr.GetSelectedObject3(i)                  ' an die Bemaßung anklinken
            Set swDim = DispDim.GetDimension
                   
            retval = DispDim.GetAlternatePrecision2()
            Call DispDim.SetPrecision2(retval, retval, 1, 3)                  'Dezimalstellen = Mass Doppelmass Tol Doppeltol
            retval = swDim.SetToleranceType(4)
            retval = swDim.SetToleranceValues(0, 0.0001)
           
            retval = DispDim.GetType()                                                  '2=normale Bem. 3= Grad Bem
            If retval = 3 Then Call swDim.SetToleranceValues(0, 3.14159265358979 / 180)  ' Pi/180 = 1 Grad-Tol
           
        End If
Next i

Call ModelDoc.WindowRedraw          ' und einmal den Bildschirm neu zeichnen lassen


End Sub

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

from scratch
Mitglied
Techniker TS

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

Beiträge: 5
Registriert: 25.05.2023

erstellt am: 15. Jun. 2023 09: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

Hallo Winni-two

Anhand deinem detaillierten Beispiel hat es tipptopp geklappt, danke!

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