Jak przesunąć wymiar w PEM za pomocą makra?

Witam

Chcę przesunąć wymiary na rysunku. Będąc samoukiem w zakresie makr SolidWorks, używam nagrywania makr, aby mnie prowadzić, ale tutaj się potykam. Rzeczywiście, podążając za ruchem wymiaru, zarejestrowane makro zwraca mi się:

boolstatus = Part.Extension.SelectByID2("Rysunek D1@Vue 1", "WYMIAR", 3.20196294133094E-02, 0.121152137881271, 0, Fałsz, 0, Nic, 0)'Pozycja wymiaru początkowego

boolstatus = Part.Extension.SelectByID2("Rysunek D1@Vue 1", "DIMENSION", 8.08807508164743E-02, 0.118580499912683, 0, False, 0, Nic, 0)'Pozycja wymiaru po przesunięciu

W związku z tym wnioskuję, że liczby pogrubione określają położenie wymiaru. Jednak po uruchomieniu tych wierszy poleceń, nawet jeśli liczba się zmieni, wymiar w ogóle się nie porusza. Chyba źle to odbieram. Czy mógłbyś mi pomóc?

Z góry dziękuję.

Witam

W rzeczywistości używana instrukcja to SELECT: więc służy tylko do wyboru wymiaru!

Aby go przesunąć, musisz użyć SETPOSITION:
http://help.solidworks.com/2011/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IAnnotation~SetPosition.html

Zobacz przykłady tutaj:

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

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

 

Witam

Tak z ciekawości: jaki jest sens przesuwania wymiaru za pomocą makra? Moja mysz polna robi to bardzo dobrze!

 

3 polubienia

+ 1000 do @ TicTic

Nie widzę zastosowania makra do przesuwania wymiaru na rysunku w oprogramowaniu

Czy to z ciekawości, co robić???

wymiar, który ma zostać przeniesiony, jest wymiarem utworzonym w mép lub wymiarem pochodzącym z 3D

@+

 

Witam

Dziękuję ".PL" za odpowiedź, szukam sposobu na użycie "SETPOSITION". Przyznaję, że mam trochę kłopotów, ale jestem dopiero na początku moich badań.

Odpowiadając na pytanie o przydatność przesuwania pozycji wymiaru w MEP, w rzeczywistości chodzi o to, aby zawsze umieszczać wymiary w tym samym miejscu, które zmienia położenie zgodnie z wymiarami części, zachowując tę samą nazwę. Dokładniej: mam część z kilkoma aktywnymi lub nieaktywnymi funkcjami i wymiarami, które również się zmieniają. Wszystko jest konfigurowane z pliku Excel, który uruchamia makro, które umieszcza odpowiednie wymiary każdego wymiaru. Nie korzystam z rodzin pokojowych. Gdy import tych wymiarów i funkcji jest aktywny lub nie, część jest przebudowywana i importowana do mojego MEP. Wymiary są również importowane, ale pojawiają się losowo (nawet z opcją "jak na szkicu"). Postanowiłem więc ustalić ich pozycję na planie. Ponieważ przeciętny użytkownik musi tylko skonfigurować plik Excel i mieć plan do wydrukowania bez konieczności zmiany położenia wymiarów.

Dziękuję Wam wszystkim

Nie wiem, czy to może ci pomóc, ale w opcjach rysowania radzę odznaczyć:

Zmniejsz odstępy podczas usuwania lub zmiany wymiarów (dodawanie lub zmienianie tolerancji, tekstu itp.)

 

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

 

A dlaczego po prostu nie wziąć

opcja automatycznej wyceny S W 

jeśli są to zasadniczo identyczne części

Teoretycznie stopnie powinny znajdować się w tym samym miejscu,  chyba że dodaje się referencje żeber 

Dziękuję za sugestie, jednak przetestowałem już wiele możliwości oprogramowania dotyczących importu lub formatowania wymiarów i żadna z nich nie pozwala na ustandaryzowany wynik, który można wykorzystać bez retuszu, w rzeczywistości automatyczne wymiary nakładają się na siebie i nie wydają się zgodne z zasadami wzornictwa przemysłowego. To po prostu umożliwia zgrubne zgrubienie wyświetlacza, ale nie ustandaryzowanie go. Oprócz tego mam też wymiary kątowe, które najgorzej jest importować automatycznie, bo w zależności od kąta, wymiar może być na drugim końcu płaszczyzny^^

Nadal próbuję użyć "SetPosition", ale mam problemy z deklaracjami. Jeśli ktoś ma jakiś prosty przykład, który wymagałby np. wyboru wymiaru o nazwie "N" i pozycji "X,Y" aby przejść do pozycji "X',Y" jestem zainteresowany ^^

Dim swApp As Object

Przyciemnij część jako obiekt

Dim boolstatus As Boolean

Dim longstatus As Long, longwarnings As Long

Sub main()

Ustaw swApp = Application.SldWorks

Ustaw część = swApp.ActiveDoc

boolstatus = Part.ActivateView("Widok układu1")

boolstatus = Part.Extension.SelectByID2("N", "WYMIAR", X, Y, 0, Prawda, 0, Nic, 0)

….

boolstatus = ............. UstawPozycję(X', Y', 0)

......

Koniec subwoofera