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ę.
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.
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?
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ę.
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.
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
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
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 ;)
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