Odsazení plochy - Flip

Odsazení plochy - Flip

Příspěvekod swpavelapi » pát 22. led 2010 7:55:44

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
swpavelapi
 
Příspěvky: 3
Registrován: pát 22. led 2010 7:40:30

Re: Odsazení plochy - Flip

Příspěvekod ludvikv » stř 03. úno 2010 22:27:43

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
S pozdravem
Vladimír Ludvík
ludvik@top-tech.cz
ludvikv
 
Příspěvky: 1
Registrován: stř 03. úno 2010 21:56:20

Re: Odsazení plochy - Flip

Příspěvekod swpavelapi » pon 08. úno 2010 7:44:39

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...
swpavelapi
 
Příspěvky: 3
Registrován: pát 22. led 2010 7:40:30


Zpět na API

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


cron