Hot News aus dem CAD.de-Newsletter:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  
  Bemaßungstext per Makro

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
Autor Thema:   Bemaßungstext per Makro (323 mal gelesen)
Klopfer195
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 05.02.2019

SolidWorks 2019 SP4

erstellt am: 21. Okt. 2019 07: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

Guten Morgen an alle,

ich bräuchte mal wieder eure Hilfe bezüglich eines Makros. Ich hätte gerne ein Makro geschrieben das mir in eine Bemaßung auf der Zeichnung den Bemaßungstext ausfüllt.
Bekomme das auch über EditDimensionProperties2 hin, aber bei diesem Befehl muss ich ja Toleranz usw. auch neu festlegen. Hier würde ich aber gerne alles so lassen und nur noch etwas dem Text hinzufügen ohne diesen komplett zu ändern. Also als Beispiel hinter dem "<DIM>" noch ein "<C#-1>" hinzu.

Vielen dank schonmal

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: 123
Registriert: 12.03.2010

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

erstellt am: 21. Okt. 2019 08: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 Klopfer195 10 Unities + Antwort hilfreich

Hallo Klopfer,

schau mal in der API-Hilfe unter:  SetText Method (IDisplayDimension)

Gruss Winni

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

Klopfer195
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 05.02.2019

SolidWorks 2019 SP4

erstellt am: 21. Okt. 2019 09: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

Super vielen Dank.
Über das Beispiel in der API Hilfe hab ich es zum laufen gebracht, weiß zwar nicht genau für was folgender Abschnitt gut ist,

    selCount = swSelMgr.GetSelectedObjectCount
    For i = 1 To selCount
        selType = swSelMgr.GetSelectedObjectType2(i)
        If selType = swSelDIMENSIONS Then
            Set swDisplayDim = swSelMgr.GetSelectedObject6(i, -1)
            swDisplayDim.SetText swDimensionTextSuffix, "<C#-1>"
        End If
    Next i

aber ohne funktioniert es irgendwie nicht.

Leider überschreibt es immernoch den Suffix Text und fügt nicht nur einen neuen hinzu.
Könnte das Problem mit swDimensionTextCalloutAbove umgehen, aber vielleicht hat von euch jemand noch einen besseren Vorschlag.

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: 123
Registriert: 12.03.2010

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

erstellt am: 21. Okt. 2019 09:24    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 Klopfer195 10 Unities + Antwort hilfreich

mit GetText(swDimensionTextSuffix) erst den vorhanden Text holen und mit dem neuen addieren

Gruss Winni

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 2323
Registriert: 04.04.2001

SWX 2016sp5 WIN7-64
proAlpha6.2e/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19) CSWP 12/2015

erstellt am: 21. Okt. 2019 09:52    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 Klopfer195 10 Unities + Antwort hilfreich

Zitat:
…  weiß zwar nicht genau für was folgender Abschnitt gut ist,

aber ohne funktioniert es irgendwie nicht.

Leider überschreibt es immernoch den Suffix Text und fügt nicht nur einen neuen hinzu …


Grob:
im Beispiel werden
a) zuerst Maße angelegt,
b) diese in Selection Manager genommen,
c) und dort per Schleife verändert.
du bist bei c) und ohne den kann es auch nicht tun.

Detail:
Mit SetText überschreibst du natürlich, sonst müsste es AddText heißen.
Ich glaube "AddDisplayText" macht aber noch etwas anderes.
würde deshalb experimentieren mit

Code:
sNewSuffix = swDisplayDim.GetText(swDimensionTextSuffix) & "C#-1"
swDisplayDim.SetText swDimensionTextSuffix, sNewSuffix


Gruß, Christian

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

Klopfer195
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 05.02.2019

SolidWorks 2019 SP4

erstellt am: 21. Okt. 2019 12:13    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

Danke für die grobe Erklärung, aber was davon brauch ich für den Befehl unbedingt?
Oder anders gefragt, wieso Funktioniert er alleinstehend nicht in einem Code?

Dim swApp As SldWorks.SldWorks

Dim Part As SldWorks.DisplayDimension
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc


Part.SetText swDimensionTextSuffix, "AB"


End Sub

Das Zusammenfügen von dem alten und dem neuen Suffix hat super geklappt, hatte Anfangs nur vergessen den Wert für sNewSuffix zu Löschen am Anfang des Makros. 

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 2323
Registriert: 04.04.2001

SWX 2016sp5 WIN7-64
proAlpha6.2e/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19) CSWP 12/2015

erstellt am: 21. Okt. 2019 12:45    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 Klopfer195 10 Unities + Antwort hilfreich

Dein Objekt "Part" ist das aktive Dokument - in dem Fall die Zeichnung.
Die kennt nicht den Befehl setText Dimensiontexte

Auf der Zeichnung müssen erstmal die Bemaßungsobjekte gefunden werden.
Das passiert in dem Beispiel über den "selektionmanager".

Dann werden alle gefundenen Objekte durchgegangen
"set swDisplayDim = …"
und bei denen funktioniert dann die Textänderung.

Warum du den Wert löschen musst versteh ich nicht ganz, deklarieren mit dim müsste doch reichen?

alternativ kann man mit 2 Schleifen arbeiten.
- im Blatt durch alle views durchlaufen
- in den views durch alle Beschriftungen gehen.
- dann musst du prüfen, ob die Bemerkung schon drin ist, oder nicht ...

Gruß, Christian

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

Klopfer195
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 05.02.2019

SolidWorks 2019 SP4

erstellt am: 22. Okt. 2019 07:15    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

Hm ok dann werde ich mal noch ein wenig ausprobieren bis ich es ohne das Beispiel zum laufen bekomme.
Vielen Dank dir 

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