lecergysois Posté(e) le 26 septembre 2008 Posté(e) le 26 septembre 2008 bonjour,j'essaye de dessiner deux lignes avec un angle en introduisant des coordonnées polaires relativess. le souci c'est que l'angle relatif est calculé à partir de l'axe des x et non pas de la première ligne dessinée. j'aimerais bien que quelqu'un m'explique ce que je dois fairemerci santé et bonheur
Tramber Posté(e) le 26 septembre 2008 Posté(e) le 26 septembre 2008 Si tu cliques droit sur POLAIRE et que tu actives tous les angles necessaires et coche "par rapport au dernier segment", tu t'enléveras déjà une épine du pied. Seulement, tu ne seras toujours pas libre de spécifier des angles particuliers mais juste incrémentaux.... Sinon, 5 minutes de reflexion..... [NB, ca serait sympa de supprimer ton message en doublon dans le forum VBA] [Edité le 26/9/2008 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lovecraft Posté(e) le 26 septembre 2008 Posté(e) le 26 septembre 2008 Bonjour, En ce qui me concerne lorsque je veux un certain angle entre deux lignes, j'utilise la commande DROITE puis A pour angle puis R pour référence "là tu sélectionnes ta ligne de référence" puis tu donnes ton angle. J'espère que ça pourra t'aider. @plus LB http://www.youtube.com/user/CADMINATOR?feature=mhee
Tramber Posté(e) le 26 septembre 2008 Posté(e) le 26 septembre 2008 Pour répondre, je pense que le souci est de le faire en direct, sans interrompre la commande.Sinon, effectivement, les méthodes sont nombreuses. J'essaie de bidouiller en mode dynamique mais le vieil ours que je suis n'a pas l'habitude.De plus, ca fait 2 fois que je plante AutoCAD 2006 parce que je fais des réglages du mode DYN.Dans les paramètres de la saisie du pointeur, il y a Polaires et Relatives, essayez voir les collègues.Chez moi, ca n'est d'aucun effet (toujours aussi merdique, ca reste polaire mais absolu) et ca plante. super :mad: [EDITION] tu peux peut-être nous dire ce que tu dessines, lignes poly,...etc ?C'est facile de faire des macros ou des lisp. [Edité le 26/9/2008 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lecergysois Posté(e) le 26 septembre 2008 Auteur Posté(e) le 26 septembre 2008 j'ai déja paramétré l'onglet polaire en cochant la case"" par rapport au dernier segment" mais j'arrive pas à faire la manip en une seule fois. l'angle qui est pris en compte c'est l'angle par apport à l'axe des X c'est a dire l'angle absolu et non pas relatif. NB: je n'arrive pas a effacer le message qui est sur le forum VBA. santé et bonheur
didier Posté(e) le 26 septembre 2008 Posté(e) le 26 septembre 2008 hello, une solution à deux balles mais qui a le mérite de fonctionneravec les segments de ligne, toutefois, copier le segment sur lui-mêmepuis rotation du dernier élément par rapport à une extrémitéet donner la valeur de l'angle souhaité. à deux balles, que je disais, j'ai pas menti... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Tramber Posté(e) le 26 septembre 2008 Posté(e) le 26 septembre 2008 j'ai déja paramétré l'onglet polaire en cochant la case"" par rapport au dernier segment" mais j'arrive pas à faire la manip en une seule fois. l'angle qui est pris en compte c'est l'angle par apport à l'axe des X c'est a dire l'angle absolu et non pas relatif. Je regrette : ça, ca marche, avec le mode polaire activé et en rentrant juste la longueur, l'angle étant celui donné par les incréments en pointillés. je n'arrive pas a effacer le message qui est sur le forum VBA Pour effacer un message sur CADxp, il faut l'éditer afin d'avoir l'option. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 27 septembre 2008 Posté(e) le 27 septembre 2008 Essentiellement pour des lignes, tu peux essayer le code qui suit voir si celui-ci pourrait te convenir. (écrit rapidement, sans test dans différent SCU) (defun c:angle_relatif ( / js oldsnap oldortho dxf_ent aalpha ang_supp) (princ "\nChoix de la ligne de référence.") (setq js (ssget "_+.:E:S" '((0 . "LINE")))) (cond (js (setq oldsnap (getvar "snapang") oldortho (getvar "orthomode") dxf_ent (entget (ssname js 0)) alpha (angle (trans (cdr (assoc 10 dxf_ent)) 0 1) (trans (cdr (assoc 11 dxf_ent)) 0 1)) ) (initget 1) (setq ang_supp (getangle "\nAngle à ajouter: ")) (setvar "snapang" (+ alpha ang_supp)) (setvar "orthomode" 1) (command "_.line" pause "_none" pause "") (setvar "orthomode" oldortho) (setvar "snapang" oldsnap) (command "_.line" "") ) ) (princ) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 27 septembre 2008 Posté(e) le 27 septembre 2008 Salut bonuscad, Si je peux me permettre une suggestion, avec vl-cmdf on peut utiliser la syntaxe " EDIT : j'ajoute aussi un angle par défaut (90° ou 100gr) (defun c:angle_relatif (/ js oldsnap oldortho dxf_ent aalpha ang_supp) (princ "\nChoix de la ligne de référence.") (setq js (ssget "_+.:E:S" '((0 . "LINE")))) (cond (js (setq dxf_ent (entget (ssname js 0)) alpha (angle (trans (cdr (assoc 10 dxf_ent)) 0 1) (trans (cdr (assoc 11 dxf_ent)) 0 1) ) ) (or (setq ang_supp (getangle (strcat "\nAngle à ajouter (angtos (/ pi 2)) ">: " ) ) ) (setq ang_supp (/ pi 2)) ) (vl-cmdf "_.line" pause (strcat " (angtos (+ alpha ang_supp) (getvar "AUNITS") 15) ) pause "" ) ) ) (princ) )[Edité le 27/9/2008 par (gile)] [Edité le 29/9/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 27 septembre 2008 Posté(e) le 27 septembre 2008 Salut (gile), Ce qui me gêne un peu dans ta proposition, est l'utilisation de (angtos) On va dire que je pinaille, mais par ce procédé on peu perdre de la précision car la conversion de réel en chaine va être régie par d'autres variables et faire perdre plus ou moins de précision, imprécision qui peut totalement passer inaperçue (c'est ce que je n'aimes pas) Cumuler de l'imprécision abouti a la longue à une erreur, c'est mon point de vue... [Edité le 27/9/2008 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 27 septembre 2008 Posté(e) le 27 septembre 2008 Tu as raison pour angtos, je modifie le code pour lui donner la précision maximale. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 29 septembre 2008 Posté(e) le 29 septembre 2008 Salut, Une version plus aboutie qui fonctionne aussi avec les segments droits de polylignes.La ligne ou la polyligne doit être parallèle au plan XY du SCU courant.L'angle de référence est calculé dans le premier ou dernier quadrant (entre -90° et 90°) par rapport à l'axe X du SCU courant quel que soit le sens de la ligne ou de la polyligne. ;;; PolarRel (gile) ;;; Dessine une ligne suivant un angle relatif au segment sélectionné (defun c:polarel (/ ent pt typ pa p0 ang1 ang2) (vl-load-com) (if (and (setq ent (entsel "\nSélectionnez le segment de référence: ")) (setq pt (trans (osnap (cadr ent) "_nea") 1 0)) (setq ent (vlax-ename->vla-object (car ent))) (setq typ (vla-get-ObjectName ent)) (or (and (= typ "AcDbLine") (setq pa (vlax-curve-getParamAtPoint ent pt)) ) (and (= typ "AcDbPolyline") (setq pa (vlax-curve-getParamAtPoint ent pt)) (zerop (vla-GetBulge ent (fix pa))) ) ) ) (if (or (and (= typ "AcDbLine") (equal (caddr (trans (vlax-curve-getStartPoint ent) 0 1)) (caddr (trans (vlax-curve-getEndPoint ent) 0 1)) 1e-9 ) ) (and (= typ "AcDbPolyline") (equal (vlax-get ent 'Normal) (trans '(0 0 1) 1 0 T) 1e-9 ) ) ) (progn (setq ang0 (- (angle '(0 0 0) (vlax-curve-getFirstDeriv ent pa) ) (angle '(0 0 0) (getvar "UCSXDIR")) ) ) (and (minusp (cos ang0)) (setq ang0 (+ ang0 pi))) (or (setq ang1 (getangle (strcat "\nAngle à ajouter (angtos (/ pi 2)) ">: " ) ) ) (setq ang1 (/ pi 2)) ) (vl-cmdf "_.line" pause (strcat " (angtos (+ ang0 ang1) (getvar "AUNITS") 15) ) pause "" ) ) (princ "\nLe segment sélectionné n'est pas parallèle au SCU courant." ) ) (princ "\nEntité ou segment non valide.") ) (princ) ) [Edité le 29/9/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecergysois Posté(e) le 2 octobre 2008 Auteur Posté(e) le 2 octobre 2008 merci bcp pour vos reponses les garsc'est tres sympa cordialement santé et bonheur
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