Gisteren heb ik 2 macro's gemaakt om mijn leven in het tekenen te vereenvoudigen, door de (2x) of (4x) op een dimensie toe te voegen. Het werkt heel goed als de beoordeling kaal is, d.w.z. slechts 95. Aan de andere kant, als ik een M6 of Ø12 heb, vervangt deze mijn beoordeling door 6 (2x) en 12 (2x), ik verlies elke keer het voorvoegsel. Hoe het te doen, is er een oplossing? Op Creo heb ik deze variabele (2x) in het achtervoegsel gezet, maar het bestaat niet op solidworks. Bij voorbaat dank
Veel succes met de overgang van Créo naar Solidworks. Ik klaagde veel na de 1e spijt van Sldw ... en nu doe ik het tegenovergestelde
Zo niet, kunt u uw VBA-code delen zodat de experts u kunnen helpen met meer aanpassingen dan in het algemene geval?
Maar, van een afstand gezien, heb ik de indruk dat je overschrijft wat er staat om het te vervangen door de dimensie (x2) of de dimensie (x4) Om het goed te doen, moet je hem liever vertellen om het aantal tekens in je dimensie te tellen, en dan je (x2) of (x4) aan het einde van je teller toe te voegen
Inderdaad, ik overschrijf wat er geschreven staat... Maar een macro maken om het aantal tekens te tellen en mijn (2x) optellen die ik niet beheers... Hier is mijn beginnende macro: 2x.swp (23,5 kB)
Goed gedaan voor de softwarewijziging na zoveel tijd. Dit is een hele logica die in twijfel moet worden getrokken!
U kunt uw code aanzienlijk verlichten De eerste 4 regels van boolstatus zijn slechts de stap-voor-stap van het schrijven (2x). Je kunt dus gewoon de laatste regel aanhouden. Dit zou geven
Dim swApp als object
Deel dimmen als object Dim boolstatus als Booleaanse Dim longstatus As Long, longwarnings As Long
Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Deel instellen = swApp.ActiveDoc myModelView dimmen als object Stel myModelView = Deel.ActiveView in myModelView.FrameState = swWindowState_e.swWindowMaximized boolstatus = Part.EditDimensionProperties2(0, 0, 0, " ", "", Onwaar , 1, 2, Waar, 12, 12, " ", " (2x)", Waar, " ", "", Waar ) Deel.ClearSelection2 Waar Einde Sub
En dan droog ik een beetje uit. De code Part.EditDimensionProperties2 roept de parameters op van de dimensie waarin u de dimensie hebt opgeslagen. Je zou dus moeten uitzoeken hoe je je huidige instellingen kunt opslaan en ze eraan moet herinneren wanneer je (2x) toevoegt ... of hoe u eenvoudig de 13e parameter van uw functie kunt wijzigen
Hier, na een beetje op het net te hebben gekeken, een oplossing die zou moeten werken Ik stond mezelf toe om haar een beetje te " pimpen". Wanneer u op de macro klikt, wordt u gevraagd hoe vaak u wilt herhalen en aan het einde wordt de (x) toegevoegd
Sub QteRepetition()
Dim swApp als SldWorks.SldWorks Dim swModel als SldWorks.ModelDoc2 Zon swSelMgr As SldWorks.SelectionMgr Dim swDispDim als SldWorks.DisplayDimension Dim swDim als SldWorks.Dimension
Dim achtervoegsel Stroom als snaar Dim NeoSuffix Als String
Stel swApp = Toepassing.SldWorks in Stel swModel = swApp.ActiveDoc in
Stel swSelMgr = swModel.SelectionManager in Stel swDispDim in = swSelMgr.GetSelectedObject6(1, 0) Stel swDim in = swDispDim.GetDimension
'Implementeert het huidige achtervoegsel AchtervoegselCurrent = swDispDim.GetText(swDimensionTextSuffix) "Tekst in te vullen NeoSuffix = InputBox(" Aantal herhalingen ") NeoSuffix = " (" & NeoSuffix & " x) " 'wijzigt het achtervoegsel van de dimensie swDispDim.SetText swDimensionTextSuffix, NeoSuffix 'wijst het achtervoegsel toe aan de geselecteerde dimensie' swDispDim.SetText, swDimensionTextSuffix, SuffixCurrent & NeoSuffix
swModel.GraphicsRedraw2 Einde Sub
Als u het vraagvak niet wilt, vervangt u het gewoon