[RESOLU]probleme macro angle complementaire

vos questions concernant les API SolidWorks

[RESOLU]probleme macro angle complementaire

Messagepar GWYGWY » Mer 05 Oct 2011, 8:45

Bonjour a tous.
j'ai un petit probleme sur la macro "angle complementaire"


Code: Tout sélectionner
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModel2 As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swAnn As SldWorks.Annotation
Dim swAnnNote As SldWorks.Note
Dim TexteNote As String
Dim longueurAngle As Long
Dim valeurAngle As String
Dim angleComplementaire As Double
Dim positionPoint As Long
Dim Fin As String
Dim Initialiser As String
Dim boolstatus As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModel2 = swApp.ActiveDoc
Const PaperSize As Long = SwConst.swDwgPaperA1size

'----Se placer dans la mise en plan avant de lancer la macro
If swModel.GetType <> swDocDRAWING Then
    MsgBox "Veuillez vous placer dans la mise en plan avant de lancer la macro."
Else
    Set swDraw = swModel
    Set swView = swDraw.GetFirstView

'-----Mise en plan
'ElseIf swModel.GetType = swDocPART Then
    '--------2)Création de la mise en plan ( se placer sur le document pièce avant de lancer la macro)
    'Set swModel = swApp.NewDocument("D:\SolidWorks 2001\d000928.042.SWC\data\temp_a.slddrt", PaperSize, 0#, 0#)
    'Dim myModelView As Object
    'Set myModelView = swModel.ActiveView
    'myModelView.FrameState = swWindowState_e.swWindowMaximized
    'boolstatus = swModel.Extension.SelectByID2("Feuille1", "SHEET", 0.05013081345927, 0.1444796682409, 0, False, 0, Nothing, 0)
    'swModel.ClearSelection2 True
    'boolstatus = swModel.CreateFlatPatternViewFromModelView(swModel2.GetPathName, "Défaut", 0.1205901735537, 0.1283598146399, 0)
    'boolstatus = swModel.Extension.SelectByID2("Vue de mise en plan11", "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0)
    'boolstatus = swModel.ActivateView("Vue de mise en plan11")
    'swModel.ClearSelection2 True
    'Set swDraw = swModel
    'Set swView = swDraw.GetFirstView
'End If
'------

'-----Boucle 1, pour chaque vue
Do While Not swView Is Nothing
    swView.ShowSheetMetalBendNotes = False
    swView.ShowSheetMetalBendNotes = True
    Set swAnn = swView.GetFirstAnnotation3
   
    '------Boucle2, pour chaque note
    Do While Not swAnn Is Nothing
        If swAnn.GetType = swNote Then
            Set swAnnNote = swAnn.GetSpecificAnnotation
            If swAnnNote.IsBendLineNote Then
                '----Initialisation de chaque bendlinenote en cas de modification de cotes
                Initialiser = "<bend-angle>"
                swAnnNote.SetText Initialiser
                TexteNote = swAnnNote.GetText
                valeurAngle = Mid(TexteNote, 1, Len(TexteNote) - 2)
                '-----Transforme le point en virgule
                'positionPoint = InStr(valeurAngle, ".")
                'Mid(valeurAngle, positionPoint, 1) = ","
                angleComplementaire = CStr(180 - CDbl(valeurAngle))
                '-----On injecte la valeur de notre angle complémentaire dans la note
                Fin = "<bend-direction>" & angleComplementaire & "° " & "<bend-radius>"
                swAnnNote.SetText Fin
                swAnnNote.PropertyLinkedText = " " & swAnnNote.GetText
                swAnnNote.SetHeight (0.0025)
                swModel.EditRebuild3
            End If
        End If
        Set swAnn = swAnn.GetNext
    Loop
    Set swView = swView.GetNextView
Loop
End If
End Sub


la macro bloque ici
Code: Tout sélectionner
angleComplementaire = CStr(180 - CDbl(valeurAngle))

l'erreur est imcompatibilite de type.

pouvez vous me dire si c'est un probleme de language?

rappel: SW2011 sp4
Dernière édition par GWYGWY le Jeu 06 Oct 2011, 8:34, édité 1 fois.
Avatar de l’utilisateur
GWYGWY
Chevalier Jedi SolidWorks
 
Messages: 405
Inscription: Jeu 10 Avr 2008, 10:03
Localisation: epinac.....SW2012 SP4

Messagepar DotNET74 » Mer 05 Oct 2011, 10:45

C'est certainement que dans valeurAngle il y a un caractère non numérique puisque tu fais une extraction dans une chaîne de caractère.

Faut mettre un Debug.print juste après la création de valeurAngle pour voir les valeurs que cela te calcul.
C'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air con !
Avatar de l’utilisateur
DotNET74
Chevalier Jedi SolidWorks
 
Messages: 247
Inscription: Mer 22 Oct 2008, 18:37

Messagepar GWYGWY » Mer 05 Oct 2011, 12:09

Le petit souci c'est que cette macro marchait très bien sur la version sw2010.c'est pour ca je ne comprend pas pourquoi ca ne marche plus.je regarde ca.

et meme sur sw2011 sp1
Avatar de l’utilisateur
GWYGWY
Chevalier Jedi SolidWorks
 
Messages: 405
Inscription: Jeu 10 Avr 2008, 10:03
Localisation: epinac.....SW2012 SP4

Messagepar GWYGWY » Jeu 06 Oct 2011, 8:15

Bonjour,
bon j'ai regarder la macro dans tout les sens,elle ne fonctionne toujours pas.
elle met juste la valeur de l'angle sur la premiere annotations de pliage de la mise en plans.c'est a dire 90° au lieu de HAUT 90° R6 par exemple.
quelqu'un a une idée?
:wink:
Avatar de l’utilisateur
GWYGWY
Chevalier Jedi SolidWorks
 
Messages: 405
Inscription: Jeu 10 Avr 2008, 10:03
Localisation: epinac.....SW2012 SP4

Messagepar GWYGWY » Jeu 06 Oct 2011, 8:34

Bon c'est resolu.dans valeurangle il mettai un point apres 90 donc elle ne pouvai faire le calcul.cela doit venir de changement dans les decimales que je laissait apres la virgule.
Avatar de l’utilisateur
GWYGWY
Chevalier Jedi SolidWorks
 
Messages: 405
Inscription: Jeu 10 Avr 2008, 10:03
Localisation: epinac.....SW2012 SP4


Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

banniere