Wiązania zespołu

Witam

W vba tworzę program, który otwiera się w zespole części (butelki) i składa je (kompletna butelka).

Mój problem polega na tym, aby ograniczyć kawałki w nich. 

Ponieważ to użytkownik wybiera te części, mieszanie między otwartymi kawałkami będzie się zmieniać, np.: płaskie dno, zaokrąglone dno, zaokrąglona kwadratowa krawędź, prosta kwadratowa krawędź itp.

To, od czego zacząłem, to ograniczenie planów każdego pomieszczenia.

 

Kod rejestracyjny makra

Ustaw swApp = Application.SldWorks

Ustaw część = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("Wieniec face@Bague płaszczyzny 26-1@Assemblage Okrągła krawędź", "PŁASZCZYZNA", 0, 0, 0, Prawda, 1, Nic, 0)

boolstatus = Part.Extension.SelectByID2("Plan face@EP-BR-ST-1@Assemblage Okrągła krawędź", "PŁASZCZYZNA", 0, 0, 0, Prawda, 1, Nic, 0)

Przyciemnij mojego partnera jako obiekt

Ustaw myMate = Part.AddMate3(0, 0, False, 0, 0, 0, 0,001, 0,001, 0, 0,5235987755983, 0,523598775983, False, longstatus)

Part.ClearSelection2 Prawda

Part.EditRebuild3 (Edycja części)

 

boolstatus = Part.Extension.SelectByID2("Prawy plan", "PŁASZCZYZNA", 0, 0, 0, Prawda, 1, Nic, 0)

boolstatus = Part.DeSelectByID("Prawy plan", "PŁASZCZYZNA", 0, 0, 0)

boolstatus = Part.Extension.SelectByID2("Wieniec droite@Bague płaszczyzny 26-1@Assemblage Okrągła krawędź", "PŁASZCZYZNA", 0, 0, 0, Prawda, 1, Nic, 0)

boolstatus = Part.Extension.SelectByID2("Plan droite@EP-BR-ST-1@Assemblage Okrągła krawędź", "PŁASZCZYZNA", 0, 0, 0, Prawda, 1, Nic, 0)

Ustaw myMate = Part.AddMate3(0, 0, False, 0, 0, 0, 0,001, 0,001, 0, 0,5235987755983, 0,523598775983, False, longstatus)

Part.ClearSelection2 Prawda

Part.EditRebuild3 (Edycja części)

 

boolstatus = Part.Extension.SelectByID2("korona Plan_inf@Bague 26-1@Assemblage Zaokrąglona krawędź", "PŁASZCZYZNA", 0, 0, 0, Prawda, 1, Nic, 0)

boolstatus = Part.Extension.SelectByID2("Plan_sup@EP-BR-ST-1@Assemblage Okrągła krawędź", "PŁASZCZYZNA", 0, 0, 0, Prawda, 1, Nic, 0)

Ustaw myMate = Part.AddMate3(0, 1, False, 0.071, 0, 0, 0.001, 0, 0.5235987755983, 0.5235987755983, False, longstatus)

Part.ClearSelection2 Prawda

Part.EditRebuild3 (Edycja części)

 

Widzimy, że między dwoma częściami " 0,071"m jest spacja i nie wiem, jak ją zdefiniować. (zmieni się dla każdego zestawu części, więc jest to zbyt restrykcyjne, zwłaszcza, że biblioteka części będzie rosła w miarę postępów)

W moim makro celowo umieszczam przestrzenie w kształcie litery Y, aby oddzielić części podczas ich importowania (por. obraz), dzięki czemu znam przestrzeń między początkiem zespołu a środkiem ciężkości mojej części. (Czy to środek ciężkości jest brany pod uwagę przy imporcie części?)

Czy możliwe jest odzyskanie wysokości pomieszczenia? (Zmienne VBA)

 

Lub wszelkie inne pomysły są również mile widziane!

 

Dziękuję 

JB


assemblage_bouteille.png

Witam

 

Aby poznać wartość wymiaru, musiałby on mieć tę samą nazwę we wszystkich częściach, na przykład:

D1@Extrusion1

 

W tym przypadku nie jest to bardzo skomplikowane, zobacz ten link:

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

 

Albo aby przejść przez wszystkie wymiary części:

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

1 polubienie

Zajrzyj do pomocy interfejsu API

Metoda GetBox (IComponent2) 

lub 

Metoda GetPartBox (IPartDoc)

 

Zwracają one tablicę współrzędnych odpowiadających sześcianowi zawijającemu

dla wysokości następującej po z => wartości(5) - wartości(2)

 

 

8 polubień

Witam

 

Z drugiej strony, o ile się nie mylę, to początki są domyślnie nakładane podczas importowania. Nie środek ciężkości.

Cześć @ Jean-bapt

 

Zadaję sobie pytanie?

Prosisz w mieszance, aby móc mieć wybór konfiguracji #

 

Jeśli utworzysz zespół z parametrem X

  • masz 4 sekcje
  1. Funduszy
  2. Organy
  3. Karnety
  4. Wąskich gardeł
  • W sekcji 1 masz # typów

 a_ płaskie dno

 b_ zaokrąglone dno

 c_ zaokrąglona kwadratowa krawędź

 d_ prosta kwadratowa krawędź itp.

  •  W sekcji 2 masz # typów
  • a_b_c_d
  •  W sekcji 3 masz # typów
  • a_b_c_d
  •  W sekcji 4 masz # typów
  • a_b_c_d

Dlaczego nie pobawić się montażem z pofragmentowanymi częściami

Typowa oś dla tego przykładowego przypadku (odniesienie do ograniczenia)

Składasz to wszystko w całość

Robisz plusk, pozując w każdej sekcji (kropkowany prostokąt)

Rodzaje odpowiadające tym sekcjom

ukrywasz niechciane typy

Zbierasz swój zespół, aby go zwizualizować

jeśli jest to dla Ciebie w porządku, rejestracja 

Nadal musisz usunąć niechciane fragmenty (które są ukryte) na tym nagraniu

enregistrement_ plan_nomenclature_ itp

 

(Mam nadzieję, że moje wyjaśnienie było wystarczająco jasne)

 

@+ ;-)

 

Witaj Gt22,

 

Dziękuję za odpowiedź!

(Przez ostatnie dwa tygodnie pracowałem nad kilkoma innymi rzeczami)

 

Nie do końca zrozumiałem, co masz na myśli, mówiąc:

"Robisz plusk, pozując w każdej sekcji (kropkowany prostokąt)

Rodzaje odpowiadające tym sekcjom

Ukrywasz niepożądanych facetów"

 

To, co zrobiłem w moim makrze, to wstawienie elementów, z wyjątkiem tego, że chcę je wstawić połączone.

 

Kiedy wpiszesz słowo "ty", chciałbym, aby zrobił to interfejs API vba.

 

Jeśli chcesz, mogę ci pokazać, co zrobiłem, nie ma nic tajnego.

 

Lubię co:

Czy możliwe jest wstawienie elementów w zamówienie i powiązanie ich z poprzednio wstawionym elementem?

 

Czy możliwe jest powiązanie ze sobą wymiarów części za pomocą API?

 

Dziękuję za odpowiedzi,

 

JB

1 polubienie

na której wersji oprogramowania jesteś?

@+ ;-)

Korzystam z SolidWorks 2012 w wersji 64-bitowej

Witam

 

Oto specyfikacja mojego programu, chcę, aby użytkownik :

-          Wybieranie predefiniowanych elementów z biblioteki

-          Wybierz wysokość każdego elementu

-          Wybierz szerokość lub średnicę butelki

-          Wybierz pojemność butelki

-          Wybierz rodzaj szkła (materiału)

 

Są rzeczy, które widzę później, najważniejsza to modyfikacja wysokości elementów oraz szerokości i długości.

 

W załączeniu znajduje się zespół butelki, która mogłaby istnieć i której parametry chciałbym zmienić.


assemblage_bouteille_carre_droit.sldasm