Suppression d'une image d'esquisse (erreur macro)

vos questions concernant les API SolidWorks

Suppression d'une image d'esquisse (erreur macro)

Messagepar TOM_@ » Mar 13 Sep 2011, 7:10

Bonjour.

Il y a un certains temps, j'ai crée (avec votre aide) une macro me permettant d'insérer une image mentionnant " bon pour fabrication" en filigrane sur une mise en plan.

http://www.logiciel-cao.com/forum/viewtopic.php?t=8658&highlight=filigrane

Je souhaite maintenant créer une macro me permettant de la supprimer.
A l'aide du fichier journal de Solidworks (swxJRNL), j'ai réussi à récupérer les lignes de code suivantes :

Code: Tout sélectionner
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Set swApp = _
Application.SldWorks

boolstatus = Part.Extension.SelectByID2("Image d'esquisse2", "SKETCHBITMAP", 0.2140430124272, 0.1483460630342, 0, False, 0, Nothing, 0)
Part.EditDelete

Set swApp = Application.SldWorks
End Sub


Malheureusement, une erreur programme se produit (Erreur d'exécution 91), Variable objet ou variable de bloc With non définie.
Pouvez-vous m'aider sur ce problème, sachant que mes connaissances en macro sont plutôt de l'ordre du novice
(Solidworks 2011 SP 4.0).

Merci d'avance pour votre aide.
TOM_@
Ewok SolidWorks
 
Messages: 31
Inscription: Jeu 01 Oct 2009, 13:06

Re: Suppression d'une image d'esquisse (erreur macro)

Messagepar Annwn » Mar 13 Sep 2011, 11:41

Ecit plutôt ça :
Code: Tout sélectionner
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("Image d'esquisse2", "SKETCHBITMAP", 0.2140430124272, 0.1483460630342, 0, False, 0, Nothing, 0)
Part.EditDelete

End Sub
Programmer, c'est bien; programmer utile, c'est mieux........
Venez faire un tour ici !
Annwn
Site Admin
 
Messages: 4938
Inscription: Lun 18 Déc 2006, 22:35

Messagepar TOM_@ » Mar 13 Sep 2011, 12:41

Merci pour la réponse & pour la correction de mes erreurs de programmation.

La macro ne marche que si je sélectionne au préalable mon image manuellement. :shock:

Pourtant le code suivant sélectionne bien l'image d'esquisse 2 au point cartésien suivant :
X=214mm et Y=148mm (Si je comprends bien la ligne de code)???
Code: Tout sélectionner
boolstatus = Part.Extension.SelectByID2("Image d'esquisse2", "SKETCHBITMAP", 0.2140430124272, 0.1483460630342, 0, False, 0, Nothing, 0)


Je pense que la sélection de l'image ne se fait pas car Solidworks me répond : "Aucune de ces entités ne peut être supprimée"

Une autre alternative de programme peut-être envisagé : supprimer toutes les images de MEP active. La seule image qui doit impérativement rester est le logo de l'entreprise ("Image d'esquisse1") présente dans le cartouche intégré au fond de plan.
TOM_@
Ewok SolidWorks
 
Messages: 31
Inscription: Jeu 01 Oct 2009, 13:06

Messagepar Chico » Mer 14 Sep 2011, 2:43

Vérifie la valeur de Boolstatus. Si la sélection ne se fait pas, il devrait égaler False.
Ajoute la ligne
Code: Tout sélectionner
MsgBox Boolstatus

pour vérifier sa valeur.

Essaie en écrivant:
Code: Tout sélectionner
boolstatus = Part.Extension.SelectByID2("Image d'esquisse2", "SKETCHBITMAP", 0, 0, 0, False, 0, Nothing, 0)


En écrivant 0,0,0, il ne tiendra plus compte de la position. C'est moins restrictif. :wink:
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar TOM_@ » Mer 14 Sep 2011, 7:39

Après avoir vérifié la valeur de Boolstatus en insérant :
Code: Tout sélectionner
MsgBox Boolstatus

Cette dernière est bien égale à False.

J'ai tenté avec la commande suivante :
Code: Tout sélectionner
boolstatus = Part.Extension.SelectByID2("Image d'esquisse2", "SKETCHBITMAP", 0, 0, 0, False, 0, Nothing, 0)

Mais la sélection ne se fait toujours pas car SolidWorks renvoit : "Aucune de ces entités ne peut être supprimée" :(
TOM_@
Ewok SolidWorks
 
Messages: 31
Inscription: Jeu 01 Oct 2009, 13:06

Messagepar Chico » Jeu 15 Sep 2011, 12:03

Salut,

Tout d'abord, est-ce que tu pourrais changer d'avatar, car il est déjà utilisé par un autre forumeur : Pierro.

D'ailleurs, j'avais pas fait attention et je croyais que je répondais à pierro...

Pour ce qui est de ton problème, vérifie que le nom de l'image est vraiment "Image d'esquisse2". En tous cas, il est clair que le problème est à la sélection. Je vais essayer de voir s'il n'y aurait pas d'autres méthodes pour sélectionner l'image. :wink:
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar TOM_@ » Lun 19 Sep 2011, 8:04

Bonjour.

Désolé pour l'avatar, je l'ai supprimé pour éviter toutes confusion.

Pour le problème d'esquisse, je vous confirme bien que le nom de l'image est vraiment "Image d'esquisse2".
Pour information, si je sélectionne manuellement l'image d'esquisse2 et que j'applique le code suivant, l'image se supprime correctement :
Code: Tout sélectionner
boolstatus = Part.Extension.SelectByID2("Image d'esquisse2", "SKETCHBITMAP", 0, 0, 0, False, 0, Nothing, 0)
TOM_@
Ewok SolidWorks
 
Messages: 31
Inscription: Jeu 01 Oct 2009, 13:06

Messagepar Chico » Mar 20 Sep 2011, 3:17

Salut,

J'ai essayé de faire ce que tu voulais et je rencontre le même problème. Je suis surpris, car habituellement, ce genre de code fonctionne bien.

Je dois avouer que je sèche sur ce problème.

Désolé
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar TOM_@ » Mar 20 Sep 2011, 13:17

Merci tout de même pour tes recherches Chico.

Si d'autres personnes arrive à solutionner ce problème, je suis toujours preneur. :lol:
TOM_@
Ewok SolidWorks
 
Messages: 31
Inscription: Jeu 01 Oct 2009, 13:06

Messagepar liryc » Mar 20 Sep 2011, 17:50

Sauf erreur de ma part, la sélection en automatique d'un élément ne fonctionne pas avec ce que propose SW à l'enregistrement de la macro.
Pour le problème, il me semble qu'il faut lancer un comptage du nombre d'entité de type image d'esquisse et ensuite sélectionner l'esquisse souhaitée.
Je n'ai pas SW sous la main, mais il me semble qu'il y a des choses sur les images d'esquisse dans l'aide de l'API (je ne me souviens plus du nom en anglais).
Je jette un oeil demain sur le nom de la fonction si j'ai le temps.
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar Chico » Mar 20 Sep 2011, 23:47

Il me semblait aussi, mais je n'ai rien trouvé en cherchant dans l'aide... :roll:
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar liryc » Mer 21 Sep 2011, 7:57

C'est les commandes SketchManager.
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar TOM_@ » Mer 05 Oct 2011, 15:40

Je ne connais malheureusement pas cette fonction et l'aide ne m'a rien apporté de plus.
Si quelqu'un connait la commande SketchManager, pourrait-il m’expliquer dans les grandes lignes quel est son rôle et comment l'utiliser.

Merci d'avance pour vos efforts. :roll:
TOM_@
Ewok SolidWorks
 
Messages: 31
Inscription: Jeu 01 Oct 2009, 13:06


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 2 invités

banniere