jfcantin1977 Posté(e) le 16 octobre 2009 Posté(e) le 16 octobre 2009 Bonjour à tous J'ai 3 étapes dans le programme que j'essais de coder. Je saisi une coordonnée (setq ptj1 (getpoint "Piquer le Point de Départ:")) Je saisi une angle (ca me donne un angle en raidan) (setq AngleRad (Jeff2Rad AngleDMS)) (defun Jeff2Rad (a / p) (setq p (vl-string-position 46 a)) (* (/ pi 180.) (+ (atoi (substr a 1 p)) (/ (atoi (substr a (+ 2 p) 2)) 60.) (/ (atoi (substr a (+ 4 p) 2)) 3600.) ) ) ) Je saisi un distance: (setq Dist (getdist "\n Entrez une Distance: ")) Ma question: Comment utiliser la command Line afin de tracer une ligne à partir de la coordonnée de départ en utilisant l'angle et la distance ?? (command "LINE" ptj1 AngleRad "") Meric de votre aide
PHILPHIL Posté(e) le 16 octobre 2009 Posté(e) le 16 octobre 2009 HELLO ( polar point angle distance ) donc pour toi (command "LINE" ptj1 (polar ptj1 AngleRad dist) ) ca devrait marcher [Edité le 16/10/2009 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
usegomme Posté(e) le 16 octobre 2009 Posté(e) le 16 octobre 2009 Salut Je saisi une angle (ca me donne un angle en raidan) (setq AngleRad (Jeff2Rad AngleDMS)) Je suis peut être déjà endormi , mais je ne pige pas le truc car "getangle" retourne aussi un angle en radian . J'aurai vu un truc tout simple avec polar comme a indiqué Philphil (defun c:pad (/ p a d) (setq p (getpoint "\n point de départ :") a (getangle "\n Angle :") d (getdist "\n Distance :") ) (command "_line" "_non" p "_non" (polar p a d) "") (princ) )
jfcantin1977 Posté(e) le 17 octobre 2009 Auteur Posté(e) le 17 octobre 2009 Bonjour usegomme Je suis loin d'être un Pro en Lisp donc je ne sais pas si tu as raison.... Mais le "Bug" que j'avais c'est que je ne veux pas taper un angle en inscrivant <12d11'12" mais 12.1112 et j'ai donc du faire une convertion en Lisp afin de convertir mon angle 12.1112 en <12d11'12. Dis moi si c'est ok ??? tu peux aller voir le code que j'utlise ici http:// http://www.cadxp.com/sujetXForum-25486.htm merci P.S. Je ne susi pas au bureau, j'essais ca lundi matin et je vous redonne des nouvelles... A+
usegomme Posté(e) le 17 octobre 2009 Posté(e) le 17 octobre 2009 Escuse-moi mais j' étais vraiment endormi et je ne me suis même plus rappellé de ton post sur les degrés , minutes etc.. que j'avais pourtant lu ! Je m'en suis souvenu ce matin dans le lit . Pour la peine j'ai arrangé le lisp avec le code que t'avait fait (gile). (defun Jeff2Rad (a / p) (setq p (vl-string-position 46 a)) (* (/ pi 180.) (+ (atoi (substr a 1 p)) (/ (atoi (substr a (+ 2 p) 2)) 60.) (/ (atoi (substr a (+ 4 p) 2)) 3600.) ) ) ) (defun c:pad (/ pt AngleDMS AngleRad d) (setq pt (getpoint "\n point de départ :") AngleDMS (getstring "\n Entrez une Angle DD.MMSS: ") AngleRad (Jeff2Rad AngleDMS) d (getdist "\n Distance :") ) (command "_line" "_non" pt "_non" (polar pt AngleRad d) "") (princ) ) Tu peux remplacer d (getdist "\n Distance :")pard (getdist pt "\n Distance :")pour avoir " l élastique". Sinon j'ai noté un petit problème : si on veut par exemple un angle de 45° tout rond , il faut taper 45.entréesi on ne met pas le point après 45 , il se produit une erreur qu'on a égalementavec le lisp "jeff". [Edité le 17/10/2009 par usegomme]
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