Hoe verplaats ik een dimensie in een PEM met behulp van een macro?

Hallo

Ik wil dimensies in mijn tekening verplaatsen. Als autodidact op SolidWorks-macro's gebruik ik macro-opname om me te begeleiden, maar hier struikel ik. Inderdaad, na de beweging van een dimensie, geeft de opgenomen macro me terug:

boolstatus = Part.Extension.SelectByID2("Tekening D1@Vue 1", "AFMETING", 3.20196294133094E-02, 0.121152137881271, 0, Onwaar, 0, Niets, 0)'Start dimensiepositie

boolstatus = Part.Extension.SelectByID2("Tekening D1@Vue 1", "DIMENSIE", 8.08807508164743E-02, 0.118580499912683, 0, Onwaar, 0, Niets, 0)'Positie van de dimensie bij verplaatsing

Ik concludeer dan ook dat de vetgedrukte getallen de positie van de dimensie bepalen. Wanneer ik deze opdrachtregels echter uitvoer, wordt de dimensie helemaal niet verplaatst, zelfs niet als het getal verandert. Ik moet het slecht opvatten. Kunt u mij helpen?

Bij voorbaat dank.

Hallo

In feite is de gebruikte instructie SELECT: dus het wordt alleen gebruikt om de dimensie te selecteren!

Om het te verplaatsen, moet je SETPOSITION gebruiken:
http://help.solidworks.com/2011/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IAnnotation~SetPosition.html

Bekijk hier de voorbeelden:

https://forum.solidworks.com/thread/49057

http://help.solidworks.com/2011/English/api/sldworksapi/Insert_a_Note_Example_VB.htm

 

Hallo

Gewoon uit nieuwsgierigheid: wat heeft het voor zin om een dimensie via een macro te verplaatsen? Mijn veldmuis doet dit heel goed!

 

3 likes

+ 1000 naar @ TicTic

Ik zie het nut van een macro niet om een dimensie te verplaatsen in een tekening op SW

Is het uit nieuwsgierigheid wat te doen???

de te verplaatsen dimensie is een dimensie die in de mép is gemaakt of een dimensie die afkomstig is van de 3 D

@+

 

Hallo

Bedankt ".PL" voor je antwoord, ik ben op zoek naar hoe ik "SETPOSITION" kan gebruiken. Ik geef toe dat ik een beetje problemen heb, maar ik sta nog maar aan het begin van mijn onderzoek.

Om de vraag te beantwoorden over het nut van het verplaatsen van de positie van een dimensie in een MEP, is het in feite een kwestie van het altijd positioneren van dimensies op dezelfde plaats, die van positie verandert volgens de afmetingen van het onderdeel terwijl dezelfde naam behouden blijft. Om precies te zijn: ik heb een onderdeel met meerdere actieve of niet-actieve functies en afmetingen die ook veranderen. Alles wordt geconfigureerd vanuit een Excel-bestand dat een macro uitvoert die de juiste afmetingen van elke dimensie plaatst. Ik maak geen gebruik van kamergezinnen. Zodra de import van deze dimensies en functies actief is of niet, wordt het onderdeel opnieuw opgebouwd en geïmporteerd in mijn MEP. Afmetingen worden ook geïmporteerd, maar verschijnen willekeurig (zelfs met de optie "zoals op schets"). Dus besloot ik hun standpunt over het plan vast te stellen. Omdat de gemiddelde gebruiker alleen het Excel-bestand hoeft te configureren en een afdrukbaar plan heeft zonder afmetingen te hoeven verplaatsen.

Dank u allen

Ik weet niet of het je kan helpen, maar in de tekenopties raad ik je aan om het vinkje weg te halen:

Verklein de afstand bij het verwijderen of wijzigen van afmetingen (toleranties, tekst, enz.) toevoegen of wijzigen

 

http://help.solidworks.com/2012/french/SolidWorks/sldworks/HIDD_OPTIONS_DRAWINGS_GENERAL.htm

 

En waarom niet gewoon nemen

de automatische offerte-optie van S W 

als het in wezen identieke onderdelen zijn

De cijfers zouden in theorie op dezelfde plaats  moeten staan, tenzij de ribrefs worden toegevoegd

Bedankt voor je suggesties, maar ik heb al veel van de softwaremogelijkheden getest op het importeren of formatteren van dimensies en geen van hen staat een gestandaardiseerd resultaat toe dat kan worden gebruikt zonder retoucheren, in feite overlappen de automatische afmetingen elkaar en lijken ze niet in overeenstemming met de regels van industrieel ontwerp. Dit maakt het alleen mogelijk om het scherm ruw te maken, maar niet om het gestandaardiseerd te maken. Daarnaast heb ik ook hoekafmetingen die het slechtst automatisch te importeren zijn, omdat afhankelijk van de hoek de afmeting aan de andere kant van het vlak kan zijn^^

Ik probeer nog steeds "SetPosition" te gebruiken, maar ik heb moeite met declaraties. Als iemand een eenvoudig voorbeeld heeft, waarvoor bijvoorbeeld de selectie van een dimensie met de naam "N" en een positie "X,Y" nodig is om het naar de positie "X',Y'" te laten gaan, ben ik geïnteresseerd ^^

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

boolstatus = Part.ActivateView("Lay-out View1")

boolstatus = Part.Extension.SelectByID2("N", "DIMENSIE", X, Y, 0, True, 0, Niets, 0)

….

boolstatus = ............. SetPosition(X', Y', 0)

......

Einde Sub