• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

Macro che modifica 2 Custom Properties in base allo Sheet Formats

Matt_

Utente poco attivo
Professione: Programmatore
Software: SW
Regione: Piemonte
#1
Buongiorno a tutti,
stò sviluppando una Macro che ha lo scopo di modificare il valore di 2 Custom Properties.
Codice:
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
Set swcuspro = Part.Extension.CustomPropertyManager("")

Dim valoreY As String

valoreY = swcuspro.Set("VarPosition_y", "123456")

Dim valoreX As String

valoreX = swcuspro.Set("VarPosition_x", "123456")


End Sub
Ora devo trovare come modificare dinamicamente queste variabili;
È possibile ricavare il nome dello Sheet Format?
In questa maniera potrei valorizzare quste due variabili a seconda del nome dello sheet format.
Questa Macro verrebbe usata solo dopo aver cambiato lo sheet format.
Idee?Suggerimenti?
Grazie a tutti :)
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#2
Ciao,
ti ho sbozzato una macro che dovrebbe fare quello che ti serve, forse di più.
A cosa ti viene utile sapere le dimensioni del foglio?
Attenzione a quando hai più fogli nello stesso file, la macro lo puo gestire, ma attualmente associa le proprietà dell'ultimo.
Ovviamente se è un solo foglio mette quelle dell'unico foglio.
Ciao
 

Allegati

Matt_

Utente poco attivo
Professione: Programmatore
Software: SW
Regione: Piemonte
#3
Grazie jenuary dell' ottimo esempio.
Io personalmente avevo poi sviluppato questa:
Codice:
Dim swApp           As Object
Dim Part            As Object
Dim myModelView     As Object
Dim swModel         As SldWorks.ModelDoc2
Dim swDraw          As SldWorks.DrawingDoc
Dim swSheet         As SldWorks.Sheet
Dim swCusPro        As SldWorks.CustomPropertyManager
Dim nome_template   As String
Dim valoreY         As String
Dim valoreX         As String
Dim boolstatus      As Boolean
Dim longstatus      As Long, longwarnings As Long
Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
Set swCusPro = Part.Extension.CustomPropertyManager("")
Set swDraw = Part
Set swSheet = swDraw.GetCurrentSheet

'Debug.Print " TemplateName = " & swSheet.GetTemplateName

nome_template = swSheet.GetTemplateName

If nome_template <> "" Then
   If InStr(nome_template, "a4 (ok)") <> 0 Then
      valoreX = swCusPro.Set("var_x", "0.02490")
      valoreY = swCusPro.Set("var_y", "0.0764")
   ElseIf InStr(nome_template, "a3 (ok)") <> 0 Then
      valoreX = swCusPro.Set("var_x", "0.2349")
      valoreY = swCusPro.Set("var_y", "0.0764")
   ElseIf InStr(nome_template, "a2 (ok)") <> 0 Then
      valoreX = swCusPro.Set("var_x", "0.4089")
      valoreY = swCusPro.Set("var_y", "0.0764")
   ElseIf InStr(nome_template, "a1 (ok)") <> 0 Then
      valoreX = swCusPro.Set("var_x", "0.6559")
      valoreY = swCusPro.Set("var_y", "0.0764")
   ElseIf InStr(nome_template, "a0 (ok)") <> 0 Then
      valoreX = swCusPro.Set("var_x", "1.0039")
      valoreY = swCusPro.Set("var_y", "0.0764")
   End If
End If

End Sub
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#4
Ciao Matt_
ottimo...il fatto comunque di ricavare le dimensioni mediante l'oggetto, ti permetterebbe di confrontare se il tuo formato è allungato o è per esempio un A4 orizzontale anzichè verticale, ecc.
Ma ovviamente se le tavole le hai fatte tu, tutti questi controlli allora possono essere saltati.
Se ti serve qualcosa fammi sapere, quando posso aito volentieri.
Buona giornata a tutti