NANARD Posté(e) le 15 juillet 2008 Posté(e) le 15 juillet 2008 J'aimerais savoir si quelqu'un connait la fonction VBA équivalente à "GENERERCOUPE" d'autocad.J'ai essayé d'écrire : thisdrawing.sendcommand "-GENERERCOUPE", mais le signe "-" n'est pas accepté pour cette fonction.Merci pour vos renseignements.
sechanbask Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 quelle la version de ton autocad ? ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
sechanbask Posté(e) le 20 juillet 2008 Posté(e) le 20 juillet 2008 je ne te serais d'aucune aide car je ne trouvais pas cette fonction sur ma version et pour cause je travaille sur 2006... désolé ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
NANARD Posté(e) le 20 juillet 2008 Auteur Posté(e) le 20 juillet 2008 Plus généralement, plusieurs fonctions n'acceptent pas le signe "-", celui-ci permet de ne pas faire apparaitre les boites de dialogue et donc de travailler uniquement avec la ligne de commande. Avec le vba, on peut utiliser une fonction autocad avec le signe"-", et écrire toutes les réponses attendues, avec sendcommand, Mais quand la fonction n'accepte pas le signe "-", j'aimerais savoir comment on peut s'en sortir, en vba? :casstet:
sechanbask Posté(e) le 24 juillet 2008 Posté(e) le 24 juillet 2008 alors c'est super simple car en vba tu peux faire des questions qui apparaissent dans la ligne de commande en faisant :si la réponse que tu attends est une chaine de caractères : thisdrawing.utility.getstring ou getpoint, getreal.... donc tu peux stocker les réponses puis lancer non pas la commande avec sendcommand mais intenter autocad en cherchant (sous VBA F2) les options de l'objet (ce qui correspond à peux près une la commande mais non pas sous forme interface mais sous forme de code)... je ne sais pas si je suis bien clair mais sinon un exemple.... pour remplacer voilà une façon pas très bien écrite d'intenter autocad pour faire une rotation de 180 sans alors à spécifier l'angle et sans passer pas la commande rotation. Au mileu de faire un sendcommand, j'envoie mes options à l'objet : objreturn.Rotate varpointR, rotationAngle Sub rotation180() Dim objreturn As AcadObject Dim varPoint As Variant Dim varpointR As Variant On Error GoTo gestion ThisDrawing.Utility.GetEntity objreturn, varPoint, "Sélectionner l'objet qui subira une rotation à 180°" varpointR = ThisDrawing.Utility.GetPoint(, "Selectionner le point pour la rotation") Dim rotationAngle As Double rotationAngle = 3.1415957 objreturn.Rotate varpointR, rotationAngle objreturn.Update Exit Sub gestion: Select Case Err.Number Case "-2147352567" ThisDrawing.Utility.Prompt "Annulée par l'utilisateur." Case Else Debug.Print Err.Number, Err.Description ThisDrawing.Utility.Prompt "Une erreur inconnue est survenue, veuillez contacter le développeur." End Select End Sub Il n'y a pas toujours de méthode pour faire intenter autocad comme ça par exemple, je n'ai pas trouver la methode pour synchroniser les attribut d'un bloc sans envoyer un send command mais je ne trouve pas ça pratique car je le fait un fin de procédure et donc je ne peux pas reprendre ma procédure en faisant un ESPACE car autocad à retenu ma dernière commande comme étant -attsync... donc c'est parfois merdique.... Si tu as besoin... je pourrais d'aider... je vais essayer de m'aménager du temps pour être un peu plus présent ici car depuis 6 mois je suis à l'ouest total... bon courage.... [Edité le 24/7/2008 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
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