Witam
Czy możliwe jest utworzenie makra dla następującej funkcji:
Chciałbym, aby wybierając część "A" lub zespół "B" w zespole "C", górna płaszczyzna "A" lub "B" była ograniczona równolegle do górnej płaszczyzny "C".
Dziękuję
Witam
Czy możliwe jest utworzenie makra dla następującej funkcji:
Chciałbym, aby wybierając część "A" lub zespół "B" w zespole "C", górna płaszczyzna "A" lub "B" była ograniczona równolegle do górnej płaszczyzny "C".
Dziękuję
Jaki jest cel programu ???
Już na początku, jeśli początki były nadal dobrze umiejscowione
To by ogromnie pomogło w montażu
@+
Nie pracujemy według miejsca docelowego z pochodzeniem. Ale podczas naszych projektów upewniamy się, że w większości przypadków szanujemy fakt, że górna płaszczyzna jest pozioma na wszystkich naszych częściach i zespołach.
2 rozwiązania do zbadania:
1- Ograniczenia magnetyczne (w szczególności ograniczenie "uziemienia", które w Twoim przypadku będzie ograniczeniem "powyżej")
Zobacz tutaj, o czym rozmawialiśmy jakiś czas temu: https://www.lynkoa.com/forum/solidworks/contrainte-magn%C3%A9tique-sw?page=0#answer-1027848
2 - lub narzędzie "Odniesienie do ograniczeń", którego używam do dociskania elementów biblioteki do ścian.
Właśnie próbowałem z odwołaniami do ograniczeń, które wydają się nie działać.
I przyznam, że nie znam się zbytnio na ograniczeniach magnetycznych. Ale jeśli wymaga to pracy na wcześniejszym etapie, "przeniesiemy" pracę.
O tak, nie powiedziałem, że odniesienie do ograniczeń działa w trybie zestawu. (do potwierdzenia)
Witam. Spróbuj tego:
Uwaga: W razie potrzeby zastąp nazwy rysunków zespołów i komponentów
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swComp As SldWorks.Component2
Dim boolstatus As Boolean
Dim swMate As Mate2
Dim longstatus As Long
Dim NomPlanAssy As String
Dim NomPlanComp As String
NomPlanAssy = "Plan de dessus"
NomPlanComp = "Plan de dessus"
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swComp = swSelMgr.GetSelectedObjectsComponent3(1, 0)
If swComp Is Nothing Then
MsgBox "Sélectionner une pièce"
Exit Sub
End If
NomPlanComp = NomPlanComp & "@" & swComp.Name2 & "@" & swModel.GetTitle
If InStr(LCase(swModel.GetTitle), ".sldasm") > 0 Then
NomPlanComp = Left(NomPlanComp, Len(NomPlanComp) - 7)
End If
boolstatus = swModel.Extension.SelectByID2(NomPlanComp, "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2(NomPlanAssy, "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Set swMate = swModel.AddMate5(swMateType_e.swMatePARALLEL, swMateAlign_e.swMateAlignALIGNED, False, 0, 0, 0, 0, 0, 0, 0, 0, False, False, 0, longstatus)
swModel.EditRebuild3
swModel.ClearSelection2 True
End Sub
Witam
Groźny! Dziękuję JeromeP. Dokładnie tak.