Hinzufügen von (2x) oder (4x) bei M8- oder Ø6,5-Abmessungen

Hallo

Gestern habe ich 2 Makros erstellt, um mein Leben beim Zeichnen zu vereinfachen, indem ich das (2x) oder (4x) zu einer Dimension hinzugefügt habe.
Es funktioniert sehr gut, wenn die Bewertung blank ist, d.h. nur 95.
Auf der anderen Seite, wenn ich einen M6 oder Ø12 habe, ersetzt er meine Bewertung durch 6 (2x) und 12 (2x), ich verliere das Präfix jedes Mal. Wie geht das, gibt es eine Lösung? Auf Creo habe ich diese Variable (2x) in das Suffixfeld eingefügt, aber sie existiert nicht auf Solidworks.
Vielen Dank im Voraus

Viel Erfolg beim Übergang von Créo zu Solidworks. Ich habe mich nach dem 1. bereuten Sldw viel ... und jetzt mache ich das Gegenteil :smiley:

Wenn nicht, können Sie Ihren VBA-Code freigeben, damit die Experten Ihnen bei mehr Anpassungen als im allgemeinen Fall helfen können?

Aber aus der Ferne habe ich den Eindruck, dass Sie das Geschriebene überschreiben, um es durch die Dimension (x2) oder die Dimension (x4) zu ersetzen
Um es richtig zu machen, sollten Sie ihm lieber sagen, dass er die Anzahl der Zeichen in Ihrer Dimension zählen soll, und dann Ihr (x2) oder (x4) an das Ende Ihres Zählers hinzufügen

Hallo coin37coin

In der Tat überschreibe ich, was geschrieben steht...
Aber ein Makro zu erstellen, um die Anzahl der Zeichen zu zählen und meine (2x) hinzuzufügen, die ich nicht beherrsche...
Hier ist mein Anfängermakro:
2x.swp (23.5 KB)

Zu Ihrer Information, 25 Jahre Creo liegen hinter mir, ich habe mit der 2000i-Version begonnen

Gut gemacht für die Software-Umstellung nach so langer Zeit. Das ist eine ganze Logik, die in Frage gestellt werden muss!

Sie können Ihren Code erheblich erleichtern
Die ersten 4 Zeilen von boolstatus sind nur die Schritt-für-Schritt-Anleitung des Schreibens (2x). So können Sie einfach die letzte Zeile behalten.
Dies würde

Dimmen swApp als Objekt

Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long

Sub main()

Legen Sie swApp = Application.SldWorks fest

Set Part = swApp.ActiveDoc
myModelView als Objekt dimmen
Festlegen von myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
boolstatus = Part.EditDimensionProperties2(0, 0, 0, "  ", "", False  , 1, 2, True, 12, 12, "  ", " (2x)", True, "  ", "", True  )
Part.ClearSelection2 Wahr
Ende Sub

Und dann trockne ich ein bisschen aus.
Der Part.EditDimensionProperties2-Code ruft die Parameter der Dimension auf, in der Sie die Dimension gespeichert haben.
Sie müssten also herausfinden, wie Sie Ihre aktuellen Einstellungen speichern und sie daran erinnern können, wenn Sie (2x) ... oder wie Sie einfach den 13. Parameter Ihrer Funktion ändern

EditDimensionProperties2-Methode (IModelDoc2) - 2012 - SOLIDWORKS API-Hilfe

Für alle Löcher, die mit Hilfe der Seite mit dem Symbol für das Bohren gemacht werden, wird die Menge von selbst ohne Makro angegeben.

2 „Gefällt mir“

Hallo sbadenis
Vielen Dank für die Antwort
Ja, ich kenne diese Lösung, aber sie gefällt mir nicht und außerdem ist es nicht ISO.

1 „Gefällt mir“

Hier, nachdem ich ein wenig im Netz geschaut habe, eine Lösung, die funktionieren sollte
Ich erlaubte mir, sie ein wenig zu " pimpen".  Wenn Sie auf das Makro klicken, werden Sie gefragt, wie oft Sie wiederholen möchten, und am Ende wird das (x) hinzugefügt.

Sub QteRepetition()

Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Sun swSelMgr As SldWorks.SelectionMgr
Dim swDispDim As SldWorks.DisplayDimension
Dim swDim As SldWorks.Dimension

Dimmen SuffixStrom als Zeichenfolge
Dim: NeoSuffix als String

Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc

Legen Sie swSelMgr = swModel.SelectionManager fest
Set swDispDim = swSelMgr.GetSelectedObject6(1, 0)
Festlegen von swDim = swDispDim.GetDimension

"Setzt das derzeitige Suffix um.
SuffixCurrent = swDispDim.GetText(swDimensionTextSuffix)
"Auszufüllender Text
NeoSuffix = InputBox(" Anzahl der Wiederholungen ")
NeoSuffix = " (" & NeoSuffix & " x) "
"ändert das Suffix für die Bemaßung
swDispDim.SetText, swDimensionTextSuffix, NeoSuffix
'Weist der ausgewählten Dimension das Suffix zu'
swDispDim.SetText, swDimensionTextSuffix, SuffixCurrent & NeoSuffix

swModel.GraphicsRedraw2
Ende Sub

Wenn Sie das Fragefeld nicht möchten, ersetzen Sie es einfach

NeoSuffix = InputBox("Anzahl der Wiederholungen")
NeoSuffix = " (" & NeoSuffix & "x)"

bis

NeoSuffix = " (2x) "

2 „Gefällt mir“

Vielen Dank coin37coin
Aber hier habe ich einen Fehler
NeoSuffix = InputBox("Anzahl der Wiederholungen")
NeoSuffix = " (" & NeoSuffix & "x)"

Kannst du mir helfen?

Hallo @_Cricri

Der Fehler kommt von den französischen Anführungszeichen, die durch die englischen Anführungszeichen ersetzt werden müssen."

2 „Gefällt mir“

Der Fehler liegt auf dem " " um x, denke ich.

Beim Kopieren gab es eine Änderung im Format, daher muss man

NeoSuffix = " (" & NeoSuffix & " x) "

Mal sehen, ob es das Problem löst?

1 „Gefällt mir“

Ja, und sie müssen im gesamten Makro ausgetauscht werden :wink:

2 „Gefällt mir“

Ja es ist gut, es funktioniert, tolles DANKESCHÖN an coin37coin und an Sylk am Ende