Azerty Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Voilà, c'est tout bête, j'aimerai savoir s'il est possible dans Autocad de dessiner un cercle d'un diamètre voulu, en désignants 2 point par lesquels le cercle doit passer. Une seule chose à dire : MERCI CADxp !
Tramber Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 CERCLE -- ENTREE ("C" tout court est le raccourci).2P -- ENTREE Et voilà.... Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 bonjour Azerty,non, ce n'est pas possible dans AutoCad.il faut que tu fasses ton cercle normalementet ensuite tu le déplaces avec les accrochagespuis rotation.car lorsque tu choisis l'option 2 Pointsla distance de ces deux points sera le diamètre du cercle,donc tu ne peux pas faire un cercle, d'un diamètre choisiET passant par deux pointsamicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Azerty Posté(e) le 13 mai 2004 Auteur Posté(e) le 13 mai 2004 @ TramblerJe suis un éternel incompris on dirait ... :casstet: Promis, un jour j'apprendrai a poser des questions claires ... @ DidierOui voilà, on est daccord.Mais je demandais au cas où un autocadien aurait combler cette lacune en ecrivant 'qq lignes'. Une seule chose à dire : MERCI CADxp !
bonuscad Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Salut, Tu peux ruser avec l'option 3P de la commande cercle Tu donne ton 1er point de passage obligé, pour le 2eme point tu donne le diamètre en relatif ex:@0,50 (pour un diamètre de 50et pour le 3eme point, tu clique sur ton 2eme point de passage obligé. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Tramber Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Tu marques "débutant", alors moi j'y crois à fond :exclam: Et dans l'usage des arcs, y a pas une solution, je crois que si ! (pas DIA mais rayon) Après l'arc, le cercle est facile.Je dis ç comme ça car je me déconnecte dans 5 minutes. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Reconnecté ^C^Carc \f \r; Pas de mystère, ca correspond au bouton Arc -> pointFinal -> Rayon. Ensuite on peut lancer : ^C^Ccercle;cen \ ext; *************** Mais j'ai essayé de glisser un peu de de DIESEL après, je n'ai pas réussi.Le code était: ^C^Carc \f \r $(/,$(getvar,USERS1),2); Après un (setq USERS1 (getreal)) dans le dessin. :casstet: *************** Au fait, ton diametre, Azerty, c'est toujours le même, ou il change à chaque fois ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Invité Patrick Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Voilà, c'est tout bête, j'aimerai savoir s'il est possible dans Autocad de dessiner un cercle d'un diamètre voulu, en désignants 2 point par lesquels le cercle doit passer. C'est non seulement impossible dans AutoCAD, mais ailleurs aussi... car avec les contraintes que tu proposes, il est toujours possible de créer deux cercles, et non pas un seul. Une telle commande ne fonctionnerait pas par manque de contraintes géométriques.
didier Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 helloçà m'amuse bien ton trucje termine ma journée, et je me suis VRAIMENT pris la têtemerci de me proposer une récréation, :P bon venons en au fait ,essaie ce petit lisp, tapé à la va-vitemais qui doit fonctionner (setq p1(getpoint"\nPoint1\n"))(setq p2(getpoint"\nPoint2\n"))(setq dia (getreal"\nDiametre\n"))(setq dist(distance p1 p2))(if (> dist dia) (progn (alert"Impossible") (quit) ) (progn (setvar "CECOLOR" "1") (command "arc" p1 "FI" p2 "r" (/ dia 2)) (setq arcrouge(entlast)) (setq centrerouge (cdr(assoc 10 (entget arcrouge)))) (command "_circle" centrerouge "d" dia) (setq cerclerouge (entlast)) (entdel arcrouge) (setvar "CECOLOR" "5") (command "arc" p2 "FI" p1 "r" (/ dia 2)) (setq arcbleu(entlast)) (setq centrebleu (cdr(assoc 10 (entget arcbleu)))) (command "_circle" centrebleu "d" dia) (setq cerclebleu(entlast)) (entdel arcbleu) ) )(setvar "CECOLOR" "256")(setq rep (strcase (getstring "\nLequel veux tu garder, Azerty ?\n le Bleu, Taper B\n le Rouge, n'importe quelle autre touche\n")))(if ( = rep "R") (entdel cerclebleu) (entdel cerclerouge) )(command "chprop" (entlast) "" "co" "duc" "") tiens moi au courant si tu veux des améliorations ...amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Azerty Posté(e) le 14 mai 2004 Auteur Posté(e) le 14 mai 2004 • Cela me sera bien utile (pr projection de rd-point presque aux normes ;) ) alors si en plus vous vous amusez ... elle est pas belle la vie. • Oui, oui, j'ai mis débutant, parcque c'est le cas, dailleurs en lisant les cours de LISP et une 10aine de sujets sur le forum, je n'est pas trouvé (pas compris...) une chose essentielle :comment fait-on pour définir un nom de commande dans un lisp ?(en clair, j'aimerai taper par ex. CCC pr executer CCC.lsp) @ Bonuscad• C'était la 1ère idée qui m'étais venue à l'esprit la première fois que je me suis posé la question. Mais cela ne fonctionne pas, il me dit que le 2eme point est inccorecte si j'essaye de lui specifier un diametre avec @0.5. @ Didier• En fesant AutoLisp/Charger... le lisp s'exécute.Cela fonctionne, mais à moitié : pt1 pt2 et diamètre, mais pas de questionnement sur rouge/bleu. Donc ca pose effectivement un souci si c'est le "2eme cercle possible" qui m'intéresse. (Mais ca vient surement plus du fait que je ne sache pas correctement lancer la routine, plutôt que d'une erreur de ta part.) Une seule chose à dire : MERCI CADxp !
Tramber Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 T'es pas très sympa avec moi car avec mes 2 macros, on va vachement vite.Tu ne prends pas. C'est vrai qu'on ne peut pas choisir le côté d'exécution du cercle, mais il suffit de choisir l'ordre de saisie des points en fonction. Après il faut effacer l'arc,c'est vrai. Mais le macrotage le + simple peut rendre de bons services, non ? La routine de Didier n'est pas terminé, c'est vrai, mais je ne devrais rien dire car il a su débugger tellement de mes codes. Je pourrais prendre 5 minutes. ;) Azerty, uiop (c'est la suite de azerty), tu trouveras souvent cela au début d'un code LSP : (defun c:mafunction ()...bla bla bla....) Alors, tu peux lancer mafunction dans AutoCAD . Mais le code (defun mafunction ()...bla bla bla....) t'oblige à lancer (mafunction) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 bonjour à tout le mondeeh azerty ! file moi ton mail et tu recevras une versionplus travaillée, car hier soir j'ai fait çà sans vraiment de contrôle.c'était juste pour expliciter la faisabilité.maintenant il faut vérifier les cas impossibles et tutti quanti.les jours se suivent, les "Lisp" restent...à bientôt :) :D ;) Éternel débutant... Mon site perso : Programmer dans AutoCAD
Azerty Posté(e) le 14 mai 2004 Auteur Posté(e) le 14 mai 2004 • Mon courriel devrait t'arriver par MP. @Tramber• Alors là oui, exact, je suis impardonnable. Tu me donnes une solution tt simple et je passe à côté. :( J'ai telement l'habitude d'utilise les polylignes ou les cercles que j'ai même pas cherché du côté des Arcs. Dans tous les cas, merci bcp, avec tout ça je devrais m'en sortir. Une seule chose à dire : MERCI CADxp !
Invité Patrick Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 Une solution "Quick and dirty", en français, à la va-vite, sans contrôle d'erreurs: (defun DTR (angle_degre) (* pi (/ angle_degre 180.0)) ) ;_ Fin de defun (defun CERCLE2PDIA (/P1 P2 diametre rayon corde demicorde mediane P3) (setq P1 (getpoint "\nSpécifiez le premier point :") P2 (getpoint "\nSpécifiez le deuxième point :") diametre (getreal "\nSpécifiez le diamètre :") rayon (/ diametre 2.0) corde (distance P1 P2) demicorde (/ corde 2) mediane (sqrt (abs(- (* rayon rayon) (* demicorde demicorde)))) P3 (polar P1 (angle P1 P2) demicorde) P3 (polar P3 (+ (angle P1 P2) (DTR 90.0)) mediane) ) (command "_CIRCLE" P3 rayon) ) (CERCLE2PDIA) Instructions: copiez/collez le code dans un fichier texte nommé CERCLE2PDIA.LSP et glissez/déposez ce LISP dans AutoCAD.
bonuscad Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 Comme j'ai dis une "connerie" avec cercle 3p qui ne marche pas.Je donne ma solution qui réalise les 2 cercles coupés aux intersections (se sont des arc)(defun c:CD2P (/ p1 p2 rad) (initget 1) (setq p1 (getpoint "\n1er point obligé: ")) (initget 1) (setq p2 (getpoint p1 "\n2eme point obligé: ")) (initget 3) (while (< (setq rad (getdist p1 "\nDiamètre ?: ")) (distance p1 p2)) (princ " **Incorrect** ") (initget 3)) (setq rad (/ rad 2.0)) (setvar "cmdecho" 0) (command "_.arc" p1 "_en" p2 "_radius" rad) (command "_.arc" p1 "_en" p2 "_radius" (- rad)) (command "_.arc" p2 "_en" p1 "_radius" rad) (command "_.arc" p2 "_en" p1 "_radius" (- rad)) (setvar "cmdecho" 1) (princ "\n*Cercles coupés aux intersections * by me!!") (princ)) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Tramber Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 Quel déchainement d'inventivité ! Tous + forts les uns que les autres ! :cool: Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 Pour le "Fun" j'ai rajouté le choix de la solution qu'on veut retenir.Et puis ça peut donner des idées pour d'autre fonction!. (defun c:CD2P ( / p1 p2 rad ss1 ss2 s_osm key) (initget 1) (setq p1 (getpoint "\n1er point obligé: ")) (initget 1) (setq p2 (getpoint p1 "\n2eme point obligé: ")) (initget 3) (while (< (setq rad (getdist p1 "\nDiamètre ?: ")) (distance p1 p2)) (princ " **Incorrect** ") (initget 3)) (setq rad (/ rad 2.0)) (setvar "CMDECHO" 0) (setq s_osm (getvar "OSMODE")) (setvar "OSMODE" 0) (if (zerop (getvar "PICKFIRST")) (setvar "PICKFIRST" 1)) (command "_.arc" p1 "_en" p2 "_radius" rad) (setq ss1 (ssget "_L")) (command "_.arc" p2 "_en" p1 "_radius" (- rad)) (ssadd (entlast) ss1) (command "_.arc" p1 "_en" p2 "_radius" (- rad)) (setq ss2 (ssget "_L")) (command "_.arc" p2 "_en" p1 "_radius" rad) (ssadd (entlast) ss2) (setvar "OSMODE" s_osm) (if (and ss1 ss2 (= 0 (getvar "CMDACTIVE"))) (progn (sssetfirst nil ss2) (princ "\n touche 1 ou 2 pour choisir |Entrée| pour fin.") (while (not (member (setq key (grread)) '((2 13) (2 32)))) (cond ((equal key '(2 49)) (sssetfirst nil ss1) ) ((equal key '(2 50)) (sssetfirst nil ss2) ) ) ) ) ) (setvar "CMDECHO" 1) (princ "\n*Cercles coupés aux intersections * by me!!") (princ)) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
didier Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 helloquand on voit ce qu'on voitet qu'on entend ce qu'on entend on a raison de penser ce qu'on pense :D :D :D dans tous les cas :se référer à l'article UN :dès que la porte est ferméeessaie de rentrer par la fenêtre :) :D ;) ;) vous êtes une belle bande de joyeux Lispeursciao Éternel débutant... Mon site perso : Programmer dans AutoCAD
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