eagle4 Posté(e) le 26 décembre 2004 Posté(e) le 26 décembre 2004 Salut à tous Voici un nouveau Casse-tête que Microsoft et Autodesk m'ont offert pour Noël : Je dois, par programme analyser les dimensions d'un dessin. Si celui-ci est plus haut que long => rotation de 90°. Ensuite je choisis une configuration de traceur (fichier PC3) puis je lance l'impression dans un fichier.Si j'exécute mon programme en "Pas à pas détaillé", tout se passe bien mais si je l'exécute en mode normal, la rotation n'est pas systématique et ne se produit qu'une fois sur 5 ou 6 essais. Est-ce la bûche ou le chapon qui me brouille l'esprit ? Je rame comme un malade et je n'avance pas, je ne trouve pas de solution,Serge, dans un post précédant disais que c'étais un problème de compatibilité entre Autocad version 2002, et Visual Basic.Net en version 2003, mais dans ce cas pourquoi le prog tourne en pas à pas ? @+ Eagle4 PS : Goûtez les huîtres de ma petite ville de MEZE, sur la rive de l'étang de THAU, elles sont excellentes.Bonnes fêtes à tous. Regarde devant, derrière apporte des regrets, les côtés envies et jalousie
CADSOLUTIONS Posté(e) le 28 décembre 2004 Posté(e) le 28 décembre 2004 Il semblerait que tu ais un problème de d'appel de procédure ou de fonction....Il faudrait voir les sources.... VB.net gère tout en interopérabilité. Aussi, la mise a jiour du dessin doit etre faite manuellement (avec la mise à jour des tables)Tu trouveras des exemples dans le guide du dev. En attendant, tu peux essayer de faire un doevent pour laisser la main à Windows (reste à voir les sources....) Sinon, n'ai-ce pas tout simplement un refresh qui manque ? Tu peux me balancer tes sources sur FGansoinat@cadsolutions.lu.Je te dirais, une fois réadaptées, si elles tournent sur 2005. Joyeuses fêtes.
Serge Posté(e) le 29 décembre 2004 Posté(e) le 29 décembre 2004 eagle4, Tu as un problème vicieux. J'ai déjà eu un tel problème en mélangeant des langages. Un cas classique est l'exécution d'un SendCommand en VBA pour faire du Lisp ou à l'inverse, faire du VBA à partir du Lisp. Il n'y a pas de garantie sur l'état de l'autre environnement. Le DoEvents peut peut-être corriger le problème. Ça ne coûte pas cher d'essayer. Tu peux aussi essayer ceci:' Au début de ta classe Private m_AcadState As AcadState ' Lorsque tu te lie à AutoCAD m_AcadApp = GetActiveObject("AutoCAD.Application.15.0") ' 15.0 == 2002 ; 16.0 == 2004 ; 16.1 == 2005 m_AcadState = m_AcadApp.GetAcadState ' Lorsque tu veux faire ta sélection Do Loop While (m_AcadState.IsQuiescent = False) En espérant que ce ci puisse t'aider. Sinon, tu peux carrément faire ce que tu as à faire dans un fichier AutoCAD.dvb qui sera auto-exécuté par AutoCAD, ou encore lancer une routine dans acaddoc.lsp où tu aura pris soin de définir un s::startup si tu utilise des appel à (command). En terminant, nous avons aussi les huitres de Malpèque. Je suis sur que Pako va nous donner son avis :-)) Serge
Serge Posté(e) le 29 décembre 2004 Posté(e) le 29 décembre 2004 oops, Ça irait mieux comme suit: ' Lorsque tu veux faire ta sélectionDom_AcadState = m_AcadApp.GetAcadStateLoop While (m_AcadState.IsQuiescent = False) Sinon, ça risque de boucler très longtemps :-)) Serge
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant