lecrabe Posté(e) le 21 février 2019 Posté(e) le 21 février 2019 Hello TOUT est dans le titre ! Cela est facile avec MicroStation ! ... Et donc comment faire VITE sous AutoCAD ?? J'aimerais montrer un segment ou arc (eventuellement de Polyligne) montrer un AUTRE segment ou arc (eventuellement de Polyligne) et monter un point precis (avec accrochage si possible) L'ordre des parametres n'a pas d'importance ! MERCI de vos lumieres, Bye, lecrabe Autodesk Expert Elite Team
didier Posté(e) le 21 février 2019 Posté(e) le 21 février 2019 Coucou Un petit schéma peut-être ?Les points de tangence de l'arc et des segments ne seront pas obligatoirement aux extrémités de ces derniers, c'est pas grave ? Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lecrabe Posté(e) le 21 février 2019 Auteur Posté(e) le 21 février 2019 Hello YES l'ideal serait d'avoir les accrochages d'AutoCAD (proche par exemple, !?) Mais bon parfois (plus rarement) j'aurais peut envie d'accrocher un point particulier sur le segment/arc (Extremite ou milieu par exemple)quand on glisse sur les 2 arcs/segments voulus ... Ca m'enerve grave car AutoCAD est capable de faire un cercle avec 3 tangences ou 2 tangences avec rayon impose ! Bye, lecrabe Autodesk Expert Elite Team
Matt666 Posté(e) le 21 février 2019 Posté(e) le 21 février 2019 Salut, en passant par la commande cercle, option 3 points, 2 points en tangeante et le 3ème avec le point donné, puis ajuster ? "Chacun compte pour un, et nul ne compte pour plus d'un."
lecrabe Posté(e) le 21 février 2019 Auteur Posté(e) le 21 février 2019 Hello BOF c long !! Car apres il faut construire une ligne 2 points avec uniquement les accrochages INTersection pour avoir la ligne "entre" les 2 points de tangence puis AJUSTER : CLIC sur la ligne et CLIC sur le cote du cercle a supprimer ... De plus si j'accroche un point precis (par INT/EXT/MIL/etc) je perds la tangence !! Bye, lecrabe Autodesk Expert Elite Team
didier Posté(e) le 21 février 2019 Posté(e) le 21 février 2019 Coucou J'ai retrouvé le moyen de le dessiner "à la main", je savais pas que j'avais géométrie ce matin en me levant !Suivant mes disponibilités je vais regarder pour lisper ça, je vois rien en natif... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 22 février 2019 Posté(e) le 22 février 2019 Coucou Je suis enquiquiné car il y a deux solutions en sélectionnant deux droites et un point de passage et j'ai essayé de programmer un truc qui ne marche pas encore très bien.Je te tiens au courant... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 22 février 2019 Posté(e) le 22 février 2019 Image : Éternel débutant... Mon site perso : Programmer dans AutoCAD
Matt666 Posté(e) le 22 février 2019 Posté(e) le 22 février 2019 Tu dois sûrement pouvoir garder l'arc en fonction des clics sur les lignes de tangeance, non ? Ou alors questionner l'utilisateur pour confirmer le coté d'arc à conserver.. "Chacun compte pour un, et nul ne compte pour plus d'un."
lecrabe Posté(e) le 22 février 2019 Auteur Posté(e) le 22 février 2019 Hello Merci de vos efforts ! Ne pas oublier que depart & arrivée peuvent être soit sur un segment soit sur un arc... Bon WE, Bye, lecrabe Autodesk Expert Elite Team
Matt666 Posté(e) le 23 février 2019 Posté(e) le 23 février 2019 Salut, Voici un jet, vite fait, sans contrôle de cmdecho ni gestion d'erreur.En espérant que les options des commandes cercle et ajuster sont les mêmes sur autocad que sur bricscad.(defun c:ttp ( / e1 e2 pt elast) (if (and (setq e1 (entsel "\n1ère entité de tangeance : ")) (setq e2 (entsel "\n2nde entité de tangeance : ")) (setq pt (getpoint "\nPoint d'intersection : ")) ) (progn ;(setvar 'cmdecho 0) (command "_.circle" "_3P" "_tan" (cdr e1) "_tan" (cdr e2) pt) (setq elast (entlast) ctr (cdr (assoc 10 (entget elast))) ) (command "_trim" e1 e2 "" "_E" "_E" (polar ctr (angle pt ctr) (distance pt ctr)) "") ) ) (princ) ) "Chacun compte pour un, et nul ne compte pour plus d'un."
lrdb@home Posté(e) le 24 février 2019 Posté(e) le 24 février 2019 Bonjour,J'interviens juste pour indiquer un avisà partir du moment où l'on ajoute un arc de tangence , ça va être compliqué car 4 solutions , PCC et PDC .Voir sur ce site , J'applaudis des deux mains celui qui saura résoudre intégralement ce problème Bon week-end à tous write a book about what ??
didier Posté(e) le 24 février 2019 Posté(e) le 24 février 2019 Coucou Je ne cherche pas les applaudissements, des deux mains ou dès demain mais j'ai commencé à travailler sur le sujetJ'ai atteint la vitesse fulgurante de l'escargot un jour de canicule donc les applaudissements risquent d'attendre...J'ai bien l'intention d'y arriver, mais je manque de temps libre...Par contre je veux bien que Lecrabe, puisqu'il est l'auteur de la question, nous fasse un gif ou un film ou une image de ce que MicroStation fait et comment il le fait, des fois que ça aide aux recherches... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lecrabe Posté(e) le 24 février 2019 Auteur Posté(e) le 24 février 2019 Hello Desole mais la routine se casse la figure sur cette ligne : (command "_trim" e1 e2 "" "_E" "_E" (polar ctr (angle pt ctr) (distance pt ctr)) "") Au fait c quoi l'option "_E" sur Briscad !? Je n'ai pas Microstation ... Je vais essayer d'avoir plus d'Infos ... Bye, lecrabe Autodesk Expert Elite Team
Matt666 Posté(e) le 24 février 2019 Posté(e) le 24 février 2019 Pourrais-tu me donner ton message d'erreur ?La 1ere commande "_E" au sein de la commande "_trim" sert à sélectionner l'option "_EDGE" La 2ème sert à sélectionner l'option "_EXTEND"Cette option étend les "limites" à partir desquelles ajuster.EN attendant, essaie de remplacer la ligne de commande "_trim" par celle ci : (command "_trim" e1 e2 "" "_Edge" "_Extend" (polar ctr (angle pt ctr) (distance pt ctr)) "") "Chacun compte pour un, et nul ne compte pour plus d'un."
didier Posté(e) le 24 février 2019 Posté(e) le 24 février 2019 Coucou C'est sans doute que suivant la distance par rapport au point 0 (zéro) l'ajustement d'un cercle tangent sur une droite pose des soucis de précision de décimales.C'est pas un programme, c'est plus une association de commandes, je en manque de respect à personne en disant çà, je pense par contre qu'il est tout à fait possible de "programmer" cette commande, si on a le temps, de mon côté j'avance mais je viens de me faire doubler par une limace... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Matt666 Posté(e) le 24 février 2019 Posté(e) le 24 février 2019 Je n'arrive pas à reproduire l'erreur, la routine fonctionne chez toi ?Et j'avoue aimer utiliser les commandes natives quand on peut, plus par manque de temps justement que de flemme. "Chacun compte pour un, et nul ne compte pour plus d'un."
lrdb@home Posté(e) le 24 février 2019 Posté(e) le 24 février 2019 Une petite vidéo,On s'accroche par les 2 éléments de tangence, puis , dynamiquement , on choisi le Point Je n'ai pas d'hébergeur vidéo... donc supprimée dans quelques jours write a book about what ??
lecrabe Posté(e) le 24 février 2019 Auteur Posté(e) le 24 février 2019 Hello ---------------------------------------------------------------------- MERCI pour la Video MicroStation qui est DEMONSTRATIVE ! Je "pleure" en voyant le Dynamisme et l'Efficacite de MicroStation !---------------------------------------------------------------------- Voici ce que donne la derniere version du LSP ... je clique sur un segment ou un arc/cercle puis je clique sur un segment ou arc/cercle puis Clic sur le point voulu ... Bye, lecrabe Commande: TTP 1ere entite de tangeance :2nde entite de tangeance :Point d'intersection/passage : _.circleSpécifiez le centre du cercle ou [3P/2P/Ttr (tangente tangente rayon)]: _3P Spécifiez un premier point sur le cercle: _tan àCommande: _tan Commande inconnue "TAN". Appuyez sur F1 pour obtenir de l'aide. Commande:Commande:Commande: _trimParamètres courants: Projection=SCU, Côté=ProlongementSélectionnez les arêtes sécantes...Sélectionnez les objets ou : 1 trouvé(s) Sélectionner des objets: 1 trouvé(s), 2 au total Sélectionner des objets:Sélectionnez l'objet à ajuster ou utilisez la touche Maj pour le prolonger ou[Trajet/cApture/Projection/Côté/eFfacer/annUler]: _EdgeEntrez un mode de prolongement du côté implicite [PRolongement/PAs de prolongement] : _ExtendSélectionnez l'objet à ajuster ou utilisez la touche Maj pour le prolonger ou[Trajet/cApture/Projection/Côté/eFfacer/annUler]: Spécifiez le coin opposé: Spécifiez le coin opposé:Spécification de fenêtre non valable.; erreur: Fonction annuléeSpécifiez le coin opposé: Spécifiez le coin opposé:Ne coupe pas l'arête sécante.Spécifiez le coin opposé: *Annuler* Autodesk Expert Elite Team
bonuscad Posté(e) le 24 février 2019 Posté(e) le 24 février 2019 Je vais tenter une approche avec cercle et 3 points et automatiser le reste.... (vl-load-com)(defun C:Arc-TT-PT ( / p1 e1 t1 p2 e2 t2 px cx) (setvar "cmdecho" 0) (while (not (setq e1 (nentsel "\n1er point de tangence: ")))) (setq p1 (cadr e1)) (setq t1 (osnap p1 "_near")) (while (not (setq e2 (nentsel "\n2ème point de tangence: ")))) (setq p2 (cadr e2)) (setq t2 (osnap p2 "_near")) (cond ((and t1 t2) (initget 9) (setq px (getpoint "\nPoint passage obligé: ")) (command "_.circle" "_3p" "_tan" t1 "_tan" t2 "_none" px) (setq cx (entlast)) (setq t1 (vlax-invoke (vlax-ename->vla-object cx) 'IntersectWith (vlax-ename->vla-object (car e1)) acextendotherentity ) ) (setq t2 (vlax-invoke (vlax-ename->vla-object cx) 'IntersectWith (vlax-ename->vla-object (car e2)) acextendotherentity ) ) (entdel (entlast)) (if (and t1 t2) (command "_.arc" "_none" (trans t1 0 1) "_none" px "_none" (trans t2 0 1)) (princ "\nPas de solution") ) ) ) (setvar "cmdecho" 1) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lecrabe Posté(e) le 25 février 2019 Auteur Posté(e) le 25 février 2019 Hello WAOUH cela marche ! Bien sur on ne voit pas en temps reel LES solutions comme sur MicroStation (Voir la Video de lrdb@home) !MAIS au moins un arc correct se dessine !! Peut etre y aura t-il d'autres propositions ... MERCI Bruno, Bye, lecrabe Autodesk Expert Elite Team
bonuscad Posté(e) le 25 février 2019 Posté(e) le 25 février 2019 T'emballe pas, d'après mes tests, des soucis avec des grandes coordonnées (problème récurent: comme la commande raccord par exemple) les intersections ne sont pas calculées avec assez de précision pour faire l'ajustement...Si on utilisait pas de nom d'entité, on pourrait soustraire la partie entière (arrondie) aux coordonnés, faire les calculs, puis à la fin restituer les coordonnées originales en rajouter la partie soustraite pour obtenir une précision correcte. Ou alors en prenant cette technique de soustraction, appliquer par un (entmod) aux entités (ce qui revient au déplacement provisoire proche du zéro) faire le raccord et faire un (entmod) inverse après les calculs.C'est dans ma tête, mais je n'ai pas encore expérimenté si c'est possible de l'appliquer relativement simplement sans couac et sans trop de lourdeur de code !...NB: J'ai simplifier un peu le code précédent (sélection des tangentes qui était un peux tortueux), cela ne change rien au fonctionnements qui reste identique. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lecrabe Posté(e) le 25 février 2019 Auteur Posté(e) le 25 février 2019 Hello Suggestion d une Truffe en Lisp/VLisp:- Marquer le Undo - Si X ou Y > 100000 ou meme 10000 !? alors ...- Déplacer les 2 entités accrochées (si entités accrochees) en Zéro Zéro... et se déplacer...- Traitement...- Renvoyer les Entités et Arc(s) au bon endroit- Marquer le Undo D ailleurs il pourrait être intéressant de dessiner 2 arcs (si possible) !?L opérateur choisira après... Bye, lecrabe Autodesk Expert Elite Team
Matt666 Posté(e) le 25 février 2019 Posté(e) le 25 février 2019 Bonuscad, déjà bravo pour le Lisp, et aussi saurais tu me dire ce que ne va pas dans mon Lisp, par hasard ? Sur bricscad ça fonctionne très bien, alors peut être l'histoire de manque de précisions évoqué plus Haut ? J'ai aussi remarqué un pb d'accroche sur le cdr du entsel (il manque juste un osnap je pense) potentiellement déclencheur d'erreur. Merci. "Chacun compte pour un, et nul ne compte pour plus d'un."
bonuscad Posté(e) le 25 février 2019 Posté(e) le 25 février 2019 saurais tu me dire ce que ne va pas dans mon Lisp En restant dans un exemple "bateau", ce qui ne vas pas est cette ligne: (command "_.circle" "_3P" "_tan" (cdr e1) "_tan" (cdr e2) pt) au lieu du (cdr) il faut prendre le (cadr): le retour de (entsel) n'est pas une paire pointée. Après _trim peut être hasardeux: le cercle peut être tangent sans pour autant couper celle-ci -> l'ajustement échoue, ou aussi si l'utilisateur est dans un SCU, ce que tu ne gère pas.Mais la la grosse erreur reste le CDR ou lieu du CADR, je me demande d'ailleurs comment cela pouvait fonctionner sous bricscad ?!?! Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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