Fruity Posté(e) le 12 septembre 2019 Posté(e) le 12 septembre 2019 BonjourDepuis la mise à jour Autocad 2019, j'ai pas mal de lisp qui ne fonctionnent plus.Quelques variables ou raccourcis qui ont changé, j'arrive généralement a remettre en ordre, mais là je bloque.Quelqu'un pourrait-il m'aider sur celui-ci, qui consiste a couper 2 lignes qui se croisent (utile pour les schémas).Merci. ;cliquer a l'interesection, ca crée un cercle, ajuste ce qui passe dedans et supprime le cercle (defun c:cut ( / p cir) (command "_circle" (setq p (getpoint)) pause) (setq cir (entlast)) (command "_trim" cir "" p "") (entdel cir) ) https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
Fruity Posté(e) le 8 octobre 2019 Auteur Posté(e) le 8 octobre 2019 Un petit up, car j'ai quelques infos. Concernant l'erreur qui apparait de tps en tps, on dirait que c'est lié au niveau de zoom (et que le cercle est trop petit?). Sinon, j'ai remarqué que la coupure se fait dans un certain ordre, a savoir celui dans lequel les traits ont été dessinés. C'est toujours le 2eme qui sera coupé.Sauf que ca veut dire y penser au moment de faire le dessin, chose difficile au vu des multiples modifications qui ont souvent lieu en cours de route.Est-il alors possible de rajouter une option au début pour choisir quel ligne sera coupée? horizontale ou verticale. En utilisant "Différence x et y" par exemple ou autre. Merci https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
Elun Posté(e) le 8 octobre 2019 Posté(e) le 8 octobre 2019 Salut, Petite question : la commande CUT doit-elle couper les deux lignes qui se croisent ou une seule uniquement ?Ensuite concernant la commande _TRIM prend en compte l'ordre de tracé (et non l'ordre de création des lignes) donc tu peux jouer là dessus si besoin avant de lancer la commande _TRIM. En revanche, si les deux lignes doivent être coupées par la commande CUT, il suffit de lancer une seconde fois la commande _TRIM (ne prend pas en compte le fait qu'il peut y avoir N lignes passant par cette intersection) Si le but est de choisir la ligne que tu souhaites couper, le plus simple serait de faire une pause dans la commande _TRIM de mon point de vue. En espérant t'avoir aidé :P
Fruity Posté(e) le 8 octobre 2019 Auteur Posté(e) le 8 octobre 2019 BonjourAlors le but est d'en couper une seule des 2. C'est surtout pour utiliser dans des schémas dans lesquels pas mal de traits se croisent.Ce serait donc l'ordre de tracé qui compte, c'est bon à savoir, car ca offre un peu plus de possibilités.Quant a ton idée de faire une pause, ca signifie qu'il attendra une action (choix de la ligne a couper), ce que je voudrais éviter. J'aimerai lui dire que je veux que ce soit les lignes horizontales qui seront toujours coupées par exemple. Mais ca, je ne sais pas faire... https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
bonuscad Posté(e) le 8 octobre 2019 Posté(e) le 8 octobre 2019 Bonjour,Au cas ou cela puisse t’intéresser je t'oriente sur cette réponse dont le sujet semble similaire Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Fruity Posté(e) le 8 octobre 2019 Auteur Posté(e) le 8 octobre 2019 BonjourMerci pour le lien, c'est intéressant, en le mixant avec le mien, on devrait pouvoir faire quelque chose, mais c'est trop complexe pour moi... https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
Elun Posté(e) le 8 octobre 2019 Posté(e) le 8 octobre 2019 Malheureusement, il n'existe pas vraiment de solution simple pour définir qu'une partie de la polyligne est horizontale et passe par un point spécifié par l'utilisateur. Il n'est pas possible de récupérer l'angle d'un segment de polyligne par rapport au SCU/SCG sans passer par du lisp complexe. Je viens de regarder d'ailleurs de passer par (dumpallpropertiesvalue) mais aucune ligne ne semble correspondre à l'angle d'un segment...(question à part, pour ceux qui utilise la fonction (getpropertyvalue), comment on accède aux propriétés des ItemX qui correspondent aux points de la polyligne ? j'ai eu beau chercher, je n'ai reçu que des "demandes ADS erronée"...) Pour en revenir à nos moutons, à chaque fois que l'on souhaite automatiser encore un peu plus un programme (même simple), il faut forcément ajouter des lignes de codes (parfois imbuvables) pour que ça fonctionne. Je me demande si pour ton problème il n'y aurait pas moyen de "tricher" un peu...Essaye avec ça pour voir :(defun c:cut ( / p cir) (while (setq p (getpoint "\nCliquer sur une intersection : ")) (command "_circle" p pause) (setq cir (entlast)) (setq p (list (+ (car p) 0.001) (cadr p) (caddr p))) (command "_trim" cir "" p "") (entdel cir) ) (princ) ) Il ne s'agit là que d'un test car il est fort probable que ce programme rencontre des erreurs et il ne prend pas vraiment en compte les petits ajustements d'un dessin, mais disons que ça peut servir de base sans modifier complètement ton programme ou devoir créer un programme complexe. Il rencontrera une erreur si la ligne horizontale ne dépasse pas l'intersection de 1mm dans le sens positif de l'axe x ou si la ligne en question n'est pas parfaitement horizontale. En espérant que cela puisse t'aider dans tes recherches. :P
didier Posté(e) le 9 octobre 2019 Posté(e) le 9 octobre 2019 Coucou Je te propose ce qui suit :Sélection de la ligne du côté qui devra disparaitreMontrer l'intersection à laquelle il faudra couper l'entité Si la première ligne sélectionnée est horizontale car son gisement (AutoCAD) est égal à 0.00 ou 3.1415..)elle sera effacée.Testé en SCG sans souci Tiens-moi au courant s'il te plaît Amicalement (defun c:cc () (setq oldosmode (getvar "osmode")) (setvar "osmode" 32) (setq ent(entsel"ENTITE ?")) (redraw (car ent) 3) (setq pt (osnap (cadr ent)"_nea")) (setq pt2(getpoint"\nPoint de coupure ?")) (command "_break" pt "_f" pt2 pt2 ) (if (or (equal (angle pt2 pt) 0.00 0.00001) (equal (angle pt2 pt) pi 0.00001) ) (command "_erase" pt "") ) (setvar "osmode" oldosmode) ) Éternel débutant… Mon site perso : Programmer dans AutoCAD
Fruity Posté(e) le 28 octobre 2019 Auteur Posté(e) le 28 octobre 2019 Merci d'avoir pris le tps de faire ce lisp, mais ca ne correspond pas a ma recherche.Là ça ressemble beaucoup à Ajuster, et ca supprimer toute la ligne après le croisement. Ce que je souhaiterais, c'est passer de la gauche a la droite (coupé horizontalement ou verticalement selon mon choix): https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
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