Równanie Solidworks w VBA

Cze wszystkim

 

Jak dokonać transkrypcji równania Solidworks tego typu:

 

"hauteur@Esquisse1"    =     "largeur@Esquisse1"   *  2

 

z makrami pod VBA? Kod, do którego się tworzy?

Celem jest skonfigurowanie części przy użyciu tylko języka VBA.

 

Z góry dziękuję.

 

 

Witam

Pomoc online oprogramowania to bogactwo informacji. W przypadku interfejsów API oto link: http://help.solidworks.com/2015/english/api/sldworksapiprogguide/Welcome.htm

Znajdziesz tu przykład dodawania równań w pomieszczeniu o kilku konfiguracjach : http://help.solidworks.com/2015/english/api/sldworksapi/Add_Equations_Example_VB.htm

Do zobaczenia.

3 polubienia

W najgorszym przypadku, jeśli nie znajdziesz tego, czego szukasz, może spróbujesz nagrać makro, wykonując równanie, wejdź do kodu i zobacz, co robi oprogramowanie?

1 polubienie

Witam

Przede wszystkim dziękuję za odpowiedzi.

Już zajrzałem do pomocy SW, ale podane przykłady są z warunkami, w moim przypadku ich nie potrzebuję.

Nie mając zbyt dużej wiedzy w programowaniu, próbowałem majstrować przy kodzie, ale na próżno nic nie działa :(

Z rejestratorem makr to nie działa, nie bierze pod uwagę równania zapisanego w solidworks.

 

Z góry dziękuję.

 

1 polubienie

Więc w tym przypadku trzeba było to powiedzieć od razu.

Ponieważ, aby opracować dla Ciebie funkcjonalne makro, potrzebujemy znacznie więcej informacji na temat celu i zastosowania, jakie chcesz z niego zrobić.

A to zajmuje dużo czasu.

1 polubienie

To, czego potrzebuję, to makro zdolne do wykonania tego typu równania:

 

 "hauteur@Esquisse1"    =     "largeur@Esquisse1"   *  2

Jeśli to tylko dlatego, dlaczego nie robić równań za każdym razem?

 

Ponieważ wtedy będziesz musiał nadać odpowiednie imię odpowiedniej ocenie, aby wiedział, jak się do tego zabrać. Nie jestem do końca przekonany do zaoszczędzonego czasu :s

1 polubienie

Utworzyłem formularz za pomocą VBA, aby skonfigurować model 3D.

Ten formularz pozwala mi zmienić długość, szerokość, wysokość szablonu.

Istnieją również przypadki, które należy sprawdzić, aby usunąć lub cofnąć usunięcie komponentu (w zależności od wybranych opcji).

Jeśli tworzę równania na moich komponentach w moim złożeniu, to gdy je usuwam (wraz z przypadkami kontrolnymi),  solidworks informuje mnie o błędach w moich równaniach. Dlatego chcę zabronić równań SW w moim modelu

 

1 polubienie

O tak, oczywiście.

 

Cóż, w przeciwnym razie, aby odpowiedzieć ci na równanie w VBA, robię to w ten sposób

 

Komórki(i, "I"). Wartość = Arkusz3.Komórki(a, "E"). Wartość * Komórki(i, "C"). Wartość

 

Więc dla ciebie byłoby to

largeur@esquisse1" =  Komórki(i, "C"). Wartość* 2

 

gdzie Komórki(i, "C") odpowiadałyby polu programu Excel do ustawiania wartości "hauteur@esquisse1"

 

 

Z drugiej strony, w ogóle nie wiem, jak stworzyć powiązanie między Excelem a wartością wymiaru (ale chyba wiesz, jak to zrobić?). Więc pozwolę ci zintegrować go tak, jak uznasz za stosowne.

 

To powiedziawszy, miło jest umieścić swój fragment kodu w odpowiedzi dla kolejnych czytelników, którzy będą szukać tego samego typu odpowiedzi ;)

1 polubienie

Nie pracuję z Excelem, ale z modułem VBA Solidworks.

Poniżej znajduje się kod, który muszę zmodyfikować moje wartości, niezależnie od tego, czy jest to długość, szerokość czy liczba powtórzeń.

Szukam tego samego typu kodu, ale do tworzenia relacji między pewnymi częściami

 

Set SwApp = CreateObject("SldWorks.Application")  ' @Corps CamVane 100.sldasm
Ustaw część = SwApp.ActiveDoc

Part.Parameter("D1@Lg traverse@Traverse dolna CamVane.part"). SystemValue = (dimension.width.value - 3) / 1000
Part.ClearSelection
Part.ForceRebuild

Part.Parameter("D1@Distance2@Corps CamVane 100.sldasm"). SystemValue = wymiar. Wartość.wysokości / 1000
Part.ClearSelection
Part.ForceRebuild


Part.Parameter("D5@Lg traverse@Traverse dolna łopatka.część"). SystemValue = wymiar.grubość.wartość / 1000
Part.ClearSelection
Part.ForceRebuild

Part.Parameter("liniowy D1@Répétition locale1@Corps CamVane 100.sldasm"). SystemValue = Formularz użytkownika1.Pole tekstowe1.wartość
Part.ClearSelection
Part.ForceRebuild

 

Part.ViewZoomtofit2

Part.ForceRebuild

 

boolstatus = Part.EditRebuild3()

 

Nadal nie jestem w stanie rozwiązać mojego problemu:(

Witam

 

Znalazłem odpowiedź na moje pytanie.

Dla tego, co mnie interesuje, umieszczam poniższy kod.

 

Sub main()

Ustaw swApp = CreateObject("SldWorks.Application")
Ustaw część = swApp.ActiveDoc


Part.Parameter("hauteur@Esquisse1"). SystemValue =  Part.Parameter("largeur@Esquisse1"). Wartość systemowa *2


Part.ClearSelection
Part.ForceRebuild

 


Part.ViewZoomtofit2

Part.ForceRebuild

 

boolstatus = Part.EditRebuild3()

Koniec subwoofera

Witam

 

Znalazłem odpowiedź na moje pytanie.

Dla tego, co mnie interesuje, umieszczam poniższy kod.

 

Sub main()

Ustaw swApp = CreateObject("SldWorks.Application")
Ustaw część = swApp.ActiveDoc


Part.Parameter("hauteur@Esquisse1"). SystemValue =  Part.Parameter("largeur@Esquisse1"). Wartość systemowa *2


Part.ClearSelection
Part.ForceRebuild

 


Part.ViewZoomtofit2

Part.ForceRebuild

 

boolstatus = Part.EditRebuild3()

Koniec subwoofera