Współrzędne kasety przez VBA

Witam

Pozwólcie, że przedstawię mój problem:

Po nieudanych pracach badawczych zwracam się do Państwa z prośbą o pomoc, aby móc uzyskać współrzędne (x,y) za pomocą VBA elementu nabojowego tego rysunku.

Plik początkowy to plik dxf zaimportowany za pośrednictwem SolidWorks 2012.

Z góry dziękuję za odpowiedzi.

 


image_1.png

Witam

Co udało Ci się do tej pory zrobić ze swoim makro?

 

Oto makro, które pozwala na wykonanie polecenia "get" na każdym z elementów rysunku, a następnie na wykonanie debug.print o jego nazwie:

http://help.solidworks.com/2012/English/api/sldworksapi/Get_All_Visible_Components_in_Drawing_View_Example_VB.htm

Następnie, gdy znajdziesz się na właściwym elemencie (w zależności od tego, co debug.print wyświetla w każdym wierszu z IF), wystarczy pobrać pozycję, czerpiąc inspirację z proponowanych tutaj makr:

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

 

1 polubienie

Dziękujemy PL za tę szybką informację zwrotną! 

Szczerze mówiąc, próbowałem użyć wielu makr w sieci, ale bezskutecznie. 

Moje osobiste makro stoi w miejscu z powodu braku wystarczającej wiedzy.

Podczas korzystania z  dwóch połączonych makr otrzymuję następujące komunikaty o błędach:

Makro linku 1 :

Błąd w:

'Pobierz wszystkie widoczne komponenty w widoku

vComps = swView.GetVisibleComponents

/sites/domyślne/pliki/from_ckeditor/macro1.png

Link makro nr 2 :

Na poziomie 5 linii ręki makro :

Ustaw swSketch = swView.GetSketch

Runtime Error 91 Zmienna obiektu lub Z niezdefiniowaną zmienną blokową.

/sites/domyślne/pliki/from_ckeditor/macro2_1.png

/sites/domyślne/pliki/from_ckeditor/macro2_2.png

Dziękuję za pomoc!

Pierwszy link nie był dobry, spójrz tak:

http://help.solidworks.com/2016/English/api/sldworksapi/Get_Title_Block_Tables_Example_VBNET.htm

Ale jaki jest twój poziom w VBA?

1 polubienie

Biegle posługuję się programami Excel, Powerpoint i Outlook, ale nie jestem zaznajomiony z Solidworks.

Przede wszystkim mam następujące instrukcje na czerwono, więc w pirori niepoprawne: 

Klasa częściowa SolidWorksMacro

Klasa końcowa

Podczas aktywowania makra w pierwszym wierszu pojawia się komunikat o błędzie:

Błąd kompilacji: nieprawidłowa instrukcja poza procedurą.

Czy mówimy o makrze uruchamianym z SolidWorks?

Jeśli tak jest, możesz zwolnić klasy, myślę, że to bezużyteczne

1 polubienie

Ok, to zrobione, jednak problem nadal występuje na poziomie:

SolidWorks importuje. Interop.SldWorks

Powoduje błędy w SolidWorks pogrubione powyżej z komunikatem o błędzie  :

Błąd kompilacji: nieprawidłowa instrukcja poza procedurą.

Masz jakiś pomysł na pochodzenie problemu?

Czy możesz umieścić swój kod w pliku txt jako załącznik na Lynkoa?

1 polubienie

Oto kod


code.txt

Jaki link z tego zaczerpnąłeś?

Bo wydaje mi się, że w ostatniej linijce jest błąd:   

Publiczny swApp jako SldWorks

Nie powinno go być w tym miejscu.

1 polubienie

Zaczerpnąłem go z ostatniego linku, który mi przesłałeś: 

 

Pierwszy link nie był dobry, spójrz tak:

http://help.solidworks.com/2016/English/api/sldworksapi/Get_Title_Block_...

Ale jaki jest twój poziom w VBA?

Twój kod to nie VBA, ale VB.net.

To nie może się udać...

Do zobaczenia.

1 polubienie

To wyjaśnia wiele rzeczy.

W tym przypadku jestem naprawdę w impasie.

Jeśli ktoś ma pomysł, jest mile widziany.

 

Tak, ostatni link jest z VB.NET do modyfikacji, aby go dostosować, dlatego zapytałem Cię o Twój poziom.

VB.NET i VBA to dwa języki, które są dość zbliżone, ale nie są kompatybilne.

1 polubienie

Przykład jest również dostępny w języku VBA: http://help.solidworks.com/2016/english/api/sldworksapi/get_title_block_tables_example_vb6.htm

1 polubienie

Cóż, próbowałem zamienić koniec adresu URL na VB zamiast VB6...

Bardzo dziękuję za pomoc.

Użyłem kodu vba podanego w linku, jednak pojawia się komunikat o błędzie na poziomie  :

 Set feat = tbtAnno.TitleBlockTableFeature

Komunikat o błędzie : Błąd wykonania 91 Zmienna obiektu lub z niezdefiniowaną zmienną blokową.

Dwa szybkie pytania:

Czy masz tło, w którym znajduje się twój wkład, czy jest ono bezpośrednio na mapie? Czy możesz go wybrać?

Czy możesz wybrać kartridż za pomocą przedniej myszy, czy chcesz współrzędne bez ingerencji użytkownika?

 

W zasadzie, o co w tym chodzi?

Plany są wyodrębniane z plików DXF wykonanych w innym oprogramowaniu.

Nie ma tła. Właściwie mogę wybrać tabelkę rysunkową.

Celem jest automatyczne dodanie obrazu do tabelki rysunkowej w zestawie plików, które nie mają wspólnego układu ze względu na różnicę rozmiarów.

W związku z tym chciałbym wiedzieć, jak uzyskać współrzędne tabelki rysunkowej (lub ogólniej elementu) bez ingerencji użytkownika i w kontekście rysunku.

Dziękuję za pomoc.