Invité Patrick Posté(e) le 4 janvier 2005 Posté(e) le 4 janvier 2005 Y a-t-il moyen de supprimer l'echo des commandes lorsqu'on utilise un SendCommand?
Serge Posté(e) le 5 janvier 2005 Posté(e) le 5 janvier 2005 Patrick, Je n'ai jamais réussi même avec Nomutt. La commande utilise un canal différent. Probablement un AcApDocManager::sendStringToExecute Serge
GUIGOS85 Posté(e) le 5 janvier 2005 Posté(e) le 5 janvier 2005 bonjour jsui un nouveau dans autocad et je ne connais que le minimum mais je me suis vite rendu a l'évidence:on peu accelerer le boulot en faisant du code soit en vb ou en c++ avec arx.quel est le plus avantageux?et comment utiliser les programmes faits? merci de vos reponse et bonne année guigos À qui sait attendre, le temps ouvre les portes. proverbe chinois
Pako Posté(e) le 5 janvier 2005 Posté(e) le 5 janvier 2005 Serge, Peux-tu êtres plus explicatif ? Est-ce l'appel d'une Class en C++ ? Probablement un AcApDocManager::sendStringToExecute Bonne Année 2005 ! l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
Invité Patrick Posté(e) le 5 janvier 2005 Posté(e) le 5 janvier 2005 Il semble que le nombre minimum de lignes de l'historique soit de 25: preferences.DISPLAY.HistoryLines = 25 (fonctionne) preferences.DISPLAY.HistoryLines = 24 (ne fonctionne pas) J'avais pensé mettre ce nombre à zéro mais ce n'est pas possible.
Serge Posté(e) le 5 janvier 2005 Posté(e) le 5 janvier 2005 Patrick, Alors envoie 25 lignes vides consécutives :)Mais qu,est-ce que tu veux faire avec ton SendCommand ? Tu peux m'envoyer ton code en privé si tu préfère. Serge
Serge Posté(e) le 5 janvier 2005 Posté(e) le 5 janvier 2005 GUIGOS85, Pour répondre à ta question, l'usage des Express Tools te donneras un bon coup de main. Pour la programmation, le plus simple selon moi est encore AutoLISP, même si pas parfait. De nombreux exemples sont disponibles sur ce site ou sur d'autres. Serge
Invité Patrick Posté(e) le 5 janvier 2005 Posté(e) le 5 janvier 2005 Patrick, Alors envoie 25 lignes vides consécutives :)Mais qu,est-ce que tu veux faire avec ton SendCommand ? Tu peux m'envoyer ton code en privé si tu préfère. Serge Certes, c'est ce que je m'apprêtais à faire faute de mieux, seulement je perds aussi l'historique produit "manuellement" par l'utilisateur avant l'envoi de mon SendCommand. J'envoie un SendCommand pour utiliser la calculatrice géométrique d'AutoCAD. (CAL). J'ai besoin de calculer l'angle entre trois points (sommet, point1, point2). Je n'ai pas trouvé de meilleure méthode pour cela, mais je suis persuadé qu'il en existe... Serge? ;) ;)
Serge Posté(e) le 6 janvier 2005 Posté(e) le 6 janvier 2005 Patrick, Au lieu de chercher le moyen en VBA, j'ai cherché du coté de comment exécuter le calculateur à aprtir de vba. Je n'y suis pas arrivé parce que geomcal.arx n'expose aucune interface que j'aurais souhaité capturé. Entre 2 programme de même nature, i.e. un programme arx qui aurait voulu se servir du calculateur, c'eut été facile avec un acedInvoke. À la fin de ce message se trouve les début de mes recherche qui n'ont abouties à rien mais qui montre comment charger un fichier arx, si ça peut aider quelqu'un. Donc, ou bien tu utilise le SendCommand, ou bien tu ouvre une nouvelle instance d'AutoCAD et tu y envoie tes SendCommand en cachette (je blague), ou encore tu le fais dans les règle de l'art. La résolution du problème peut être complexes selon que tu es en 2D seulement, en 3D mais que tu projette tes 2 droites sur le plan XY, ou encore que tu projette dans un plan arbitraire. La fonction ang du calculatteur t'offre les 3 choix. Quelle est ta situation ? Sui c'est la dernière, consulte l'exemple Example_AngleFromXAxis. En passant, pour passer des coordonnées au calculateur, on utilise des crochets. Exemple: (cal "ang([0,0],[10,10])"), retourne 45 degrés. Exemple VBA inutile dans le contexte pour charger un arx.Sub toto() LoadArxFile "geomcal.arx"End Sub Function LoadArxFile(Filename As String) ' Charge un fichier arx au besoin. Faire un On error au besoin Dim appList As Variant appList = ThisDrawing.Application.ListArx If VarType(appList) <> vbEmpty Then Dim I As Integer For I = LBound(appList) To UBound(appList) If StrComp(appList(I), Filename, vbTextCompare) = 0 Then Exit Function Next End If ThisDrawing.Application.LoadArx (Filename) ' À utiliser si le chemin est connuEnd Function Serge
Invité Patrick Posté(e) le 6 janvier 2005 Posté(e) le 6 janvier 2005 J'ai besoin de calculer l'angle entre trois points seulement en 2D. J'utilise actuellement la syntaxe de la CAL (sommet,point1,point2)L'idéal est que je puisse faire cela sans la calculatrice.
Serge Posté(e) le 6 janvier 2005 Posté(e) le 6 janvier 2005 Patrick, Ceci devrait faire l'affaire. Public Const PI = 3.14159265358979Sub Example_AngleFromXAxis() ' This example finds the angle, in radians, between the X axis ' and a line defined by two points. Dim pt1(0 To 2) As Double Dim pt2(0 To 2) As Double Dim sommet(0 To 2) As Double Dim retAngle1 As Double Dim retAngle2 As Double Dim message As String pt1(0) = 10: pt1(1) = 0: pt1(2) = 0 pt2(0) = 10: pt2(1) = 10: pt2(2) = 0 sommet(0) = 0: sommet(0) = 2: sommet(0) = 0 ' Return the angle retAngle1 = ThisDrawing.Utility.AngleFromXAxis(sommet, pt1) retAngle2 = ThisDrawing.Utility.AngleFromXAxis(sommet, pt2) ' Display the angle found message = "L'angle les 2 points et le sommet est: " & vbCrLf & _ "En radians: " & retAngle2 - retAngle1 & vbCrLf & _ "En degrés: " & 180# * (retAngle2 - retAngle1) / PI MsgBox message, , "AngleFromXAxis Example" End Sub Serge
Serge Posté(e) le 6 janvier 2005 Posté(e) le 6 janvier 2005 Oops, J'ai été chanceux que VBA initialise les variables à 0.C'eut été ceci: sommet(0) = 0: sommet(1) = 0: sommet(2) = 0 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