@ OBI WAN
Tak, za pomocą narzędzia pomiarowego mogę wizualnie odzyskać długości, odległości, współrzędne, które chcę zobaczyć na ekranie. Ale chcę zrobić za nim jakieś obliczenia, aby równomiernie rozłożyć punkty na trajektorii i wszystko to automatycznie. Więc potrzebuję do tego funkcji vba/vbnet
@ .PL
Rozwiązałem problem z funkcjami znajdującymi się w pomocy API solidworks (pierwszy link, który podałem dla vbnet, a ten, który wskazałeś dla vba). Aby móc zmierzyć byty, musiałem wyjść ze szkicu za pomocą polecenia:
swDoc.SketchManager.Insert3DSketch(Prawda)
Do reszty wybrałem odpowiednią encję i skorzystałem z funkcji/poleceń znajdujących się w pomocy API:
Przykład pomiaru linii, splajnu, a następnie dwóch elementów:
' Zmierz długość linii
boolstatus = swDoc.Extension.SelectByID2("Line1@Esquisse3D1", "EXTSKETCHSEGMENT", 0.0, 0.0, 0.0, Fałsz, 0, Nic, 0)
swMeasure = swDoc.Extension.CreateMeasure
swMeasure.ArcOption = 0
boolstatus = swMeasure.Calculate(Nic)
Ll = swMeasure.Length
Debug.Print("długość linii=" & ll * 1000 & " mm")
swDoc.SketchManager.Insert3DSketch(Prawda)
swDoc.ClearSelection2(Prawda)
' Długość pomiaru: splajn 1
boolstatus = swDoc.Extension.SelectByID2("Spline1@Esquisse3D1", "EXTSKETCHSEGMENT", 0.0, 0.0, 0.0, False, 0, Nic, 0)
swMeasure = swDoc.Extension.CreateMeasure
swMeasure.ArcOption = 0
boolstatus = swMeasure.Calculate(Nic)
LS1 = swMeasure.ArcLength
Debug.Print("długość splajnu1=" & LS1 * 1000 & " mm")
swDoc.SketchManager.Insert3DSketch(Prawda)
swDoc.ClearSelection2(Prawda)
• Pomiar całkowitej długości neutralnego włókna siatki
boolstatus = swDoc.Extension.SelectByID2("Line1@Esquisse3D1", "EXTSKETCHSEGMENT", 0.0, 0.0, 0.0, Fałsz, 0, Nic, 0)
boolstatus = swDoc.Extension.SelectByID2("Spline1@Esquisse3D1", "EXTSKETCHSEGMENT", 0.0, 0.0, 0.0, Prawda, 0, Nic, 0)
swMeasure = swDoc.Extension.CreateMeasure
swMeasure.ArcOption = 0
boolstatus = swMeasure.Calculate(Nic)
Lt = swMeasure.TotalLength
Debug.Print("Długość Lt=" & Lt * 1000 & " mm")
Dziękuję za pomoc