Téma: Odsazení plochy – Flip - MůjSolidworks.cz

Autor
Příspěvky

22. 1. 2010 v 6:55

Odsazení plochy – Flip #51742

swpavelapi
Člen
3 příspěvky

Níže můžete vidět kód, který vypíše a poté by měl také změnit směr odsazení plochy.
Kód by měl být správný, avšak po změně směru a zpětně po jeho vypsání, je dle výpisu směr „true or false“
jenže na modelu se obrácení směru nezmění! Prosím o radu, která by mi pomohla změnit směr odsazení plochy.
V případě zájmu mohu také s menšími problémy pomoci.

‚ Preconditions:

‚ (1) Model document is open.

‚ (2) Surface offset feature is selected.

‚ Postconditions: None


Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelData As SldWorks.SelectData
Dim swOffset As SldWorks.SurfaceOffsetFeatureData
Dim swFeat As SldWorks.Feature
Dim swFace As SldWorks.Face2
Dim swEnt As SldWorks.Entity
Dim vFace As Variant
Dim i As Long
Dim bRet As Boolean

Set swApp = CreateObject(„SldWorks.Application“)
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swSelData = swSelMgr.CreateSelectData
Set swFeat = swSelMgr.GetSelectedObject5(1)
Set swOffset = swFeat.GetDefinition

Debug.Print „File = “ & swModel.GetPathName
Debug.Print “ “ & swFeat.Name
Debug.Print “ Distance = “ & swOffset.Distance * 1000# & “ mm“
Debug.Print “ FacesCount = “ & swOffset.GetFacesCount

Debug.Print “ Flip = “ & swOffset.Flip

‚Tady mění směr odsazení a poté jej vypíše

swOffset.Flip = True
swOffset.Flip = False

Debug.Print “ Flip = “ & swOffset.Flip

swOffset.ReleaseSelectionAccess

End Sub

3. 2. 2010 v 21:27

Re:Re: Odsazení plochy – Flip #53612

ludvikv
Člen
1 příspěvek

Dobrý den,
do kódu je třeba přidat ještě příkaz pro změnu definice prvku: swFeat.ModifyDefinition swOffset.
Přidal bych ještě rozhodování směru odsazení viz code

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelData As SldWorks.SelectData
Dim swOffset As SldWorks.SurfaceOffsetFeatureData
Dim swFeat As SldWorks.Feature
Dim swFace As SldWorks.Face2
Dim swEnt As SldWorks.Entity
Dim vFace As Variant
Dim i As Long
Dim bRet As Boolean

Set swApp = CreateObject(„SldWorks.Application“)
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swSelData = swSelMgr.CreateSelectData
Set swFeat = swSelMgr.GetSelectedObject5(1)
Set swOffset = swFeat.GetDefinition

Debug.Print „File = “ & swModel.GetPathName
Debug.Print “ “ & swFeat.Name
Debug.Print “ Distance = “ & swOffset.Distance * 1000# & “ mm“
Debug.Print “ FacesCount = “ & swOffset.GetFacesCount

Debug.Print “ Flip = “ & swOffset.Flip

‚Tady mění směr odsazení a poté jej vypíše
‚Rozhodování podle směru

If 1 = swOffset.Flip Then
swOffset.Flip = False
ElseIf 0 = swOffset.Flip Then
swOffset.Flip = True
End If

Debug.Print “ Flip = “ & swOffset.Flip

‚ tady se aplikuje změna směru ofsetu
swFeat.ModifyDefinition swOffset, swModel, Nothing
swOffset.ReleaseSelectionAccess

End Sub

8. 2. 2010 v 6:44

Re:Re: Odsazení plochy – Flip #53611

swpavelapi
Člen
3 příspěvky

Rád bych touto formou poděkoval za radu panu Ludvíkovi. Doufám, že se toto fórum trochu rozroste a bude možné jej využít více. Pokud bych i já mohl být nějak nápomocen budu rád…

Odpověď na téma

Reklama

Reklama