Aller au contenu

yusukens82

Membres
  • Compteur de contenus

    486
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

Tout ce qui a été posté par yusukens82

  1. Bonjour @bonuscad C'est donc toi qui avait écrit la routine, merci cela m'a servi durant 2 décennies (déjà !) Je viens de le tester : c'est plus léger sans dcl / slb et nous demande moins de clic même pour le même résultat. il n'y a moins de fonctionnalité mais ce n'est pas grave car au final on n'utilise toujours le talus de base Merci beaucoup
  2. Bonjour Je me permet de relancer ma demande ! Si quelqu'un à un Lisp similaire pour créer facilement des talus ?
  3. Bonjour, J'ai un Lisp permettant de créer des talus qui fonctionnait bien jusqu'à lors. c'est depuis que je suis passé sur AutoCAD 2022 que j'ai un retour d'erreur après la sélection du 2eme point : ; erreur: une exception s'est produite: 0xC0000005 (Violation d'accès) ; avertissement: fonction unwind ignorée exception ; erreur: une exception s'est produite: 0xC0000005 (Violation d'accès) Je ne sais plus ou j'ai trouvé ce Lisp je mets en pj les fichiers... talus.dcl talus.lsp talus.slb
  4. C'est merveilleux tout ça, merci beaucoup @Olivier Eckmann Passez une très bonne fin d'année 😘
  5. Le but de l'amélioration n'est pas de positionner la cotation automatiquement mais de la visualiser avant de les positionner. Une petite vidéo pour bien l'expliquer: http://www.trinh-dota.com/CADXP/Video-Cotation-Ameliorer.mp4 Merci pour votre réponse en tout cas
  6. Bonjour, J'utilise régulièrement une routine qui fonctionne très bien permettant de mettre 2 cotations (horizontal et vertical) selon 2 points Voilà la routine : (defun c:T2 () (setq pt1 (getpoint "\nSelectionnez le premier point de cote : ")) (setq pt2 (getpoint "\nSelectionnez le second point de cote : ")) (if pt1 (progn ; Demander à l'utilisateur où placer la cote horizontale (setq pt3 (getpoint "\nSelectionnez le point de position de la cote horizontale : ")) ; Placer la cote horizontale (command "COTLIN" pt1 pt2 "h" pt3) ; Demander à l'utilisateur où placer la cote verticale (setq pt4 (getpoint "\nSelectionnez le point de position de la cote verticale: ")) ; Placer la cote verticale (command "COTLIN" pt1 pt2 "v" pt4) ) (princ "\nOpération annulée.") ) (princ) ) Je souhaite y apporter une amélioration permettant de visualiser sur l'écran la position de la cotation L'idée est contourner le problème en évitant de présélectionner les pts 3 et 4 (defun c:T2 () (setq pt1 (getpoint "\nSelectionnez le premier point de cote : ")) ; Demande le premier point (setq pt2 (getpoint "\nSelectionnez le second point de cote : ")) ; Demande le second point (command "COTLIN" pt1 pt2 "H") ; Cliquer sur l'écran pour positionner le cote horizontal ; Relancer la commande pour la cotation veticale ;(command "COTLIN" pt1 pt2 "V" ) ; Cliquer sur l'écran pour positionner le cote veticale ) je joins un fichier dwg pour faire les test test.dwg
  7. C'est peut être moi qui avait mal exposé le problème. Le seul souci avec la routine d'origine est qu'elle ne fonctionnait pas lorsqu'on édité le bloc dans (editref) Qu'est-ce qui fait que cette dernière est plus efficace ? c'est juste que ça marche dans "editref".
  8. @Olivier Eckmann Merci beaucoup, ça fonctionne dans tous les sens. qu'on soit dans dans editref ou pas. Merci beaucoup. vraiment. Passez de très bonnes fêtes de fin d'année.
  9. Bonjour @didier Merci pour ta réponse précis et de ton aide. Je ne suis pas l'auteur de cette routine, je l'ai trouvé sur le net il y a plus de 15ans Les 2 options (choix un par un ou sélection par calque) sont très intéressantes : Si je dois en choisir qu'un j'opte par le choix du sélection texte par texte En te remerciant par avance.
  10. Bonjour, J'utilise une routine permettant de cumuler les surfaces et l'inscrire dans un texte. En revanche elle ne fonctionne pas dans l'édition de référence (editref) quelqu'un pourrait m'aider à l'adapter ? voilà la routine et en pj un dwg pour le test (defun c:at (/ js somme ind st_ent type texte valtxt point surf) (setq cmdech (getvar "CMDECHO")) (setq iconscu (getvar "UCSICON")) (setq old_plan (getvar "clayer")) (setvar "CMDECHO" 0) (setvar "UCSICON" 0) (prompt "\nChoisir les textes a additionner") (setq js (ssget)) (setq somme 0.0) (setq ind 0) (if js (repeat (sslength js) (setq st_ent (entget (ssname js ind))) (setq type (cdr (assoc 0 st_ent))) (if (= type "TEXT") (progn ; on additionne la valeur du texte (setq texte (cdr (assoc 1 st_ent))) (setq valtxt (atof texte)) (setq somme (+ somme valtxt)) ) ) (setq ind (1+ ind)) ) ) (setq surf (strcat (rtos somme 2 2) )) (setq p3 (getpoint "\n Position pour le resultat de la somme : ")) (command "_layer" "l" "Z_Surf" "n" "Z_Surf" "e" "Z_Surf" "ch" "Z_Surf" "ac" "Z_Surf" "co" "" "" "") (command "texte" p3 20 0 surf) (setvar "CMDECHO" cmdech ) (setvar "UCSICON" iconscu ) (setvar "clayer" old_plan) ) Test.dwg
  11. Merci beaucoup @Olivier Eckmann cela fonctionne à merveille.
  12. Je ne sais pas si le fait également chez vous mais les commandes "-CALQUE" "A" "R" "ETAT02" "" "" ne s'applique pas dans la fenêtre active mais dans toute l'espace présentation.
  13. Bonjour @didier Si c'est pour gagner qu'un seul clic je ne chercherai pas à optimiser à ce point. plutôt que de parler de clic que préfère résonner en action en intégrant les frappes clavier et déplacement souris pour mieux optimiser Je sais que cela peut sembler dérisoire de gager 8 actions mais je peux t'assurer que c'est fait toute la différence quand on fait ça à longueur de journée. et aussi source de moins d'erreur quand on sait qu'on n'a plus besoin de bien positionner le double clic ou choisir le bon état de calque (quand on n'en aune multitude avec défilement de la fenêtre). en tout cas j'espère quand même avoir réussi à te convaincre que ma demande n'est pas inutile.
  14. Pardon ce n'était pas simple d'expliquer ma demande. j'ai monté une vidéo pour mieux expliquer le problème et surtout pour gagner du temps sur la gestion des états de calque Video.mp4
  15. Bonjour, Je travail beaucoup avec les ETAT de CALQUE que j'applique sur les fenêtres. Je cherche un moyen d'appliquer un état de calque sur une fenêtre sélectionnait préalablement sans activer la fenêtre (le double clic) voilà ce que j'ai déjà écrit mais on est très loin de ce dont je recherche, pire encore, les 2 routines s'applique sur les toutes les fenêtres. (defun c:APPE () (layerstate-restore "ETAT02" viewportId 5) ) (defun c:APPE2 () (command "-CALQUE" "A" "R" "ETAT02" "" "") ) Vous avez compris que je suis nul en écriture de routine. je joins un fichier dwg pour tester la routine Si quelqu'un veut bien m'aider s'ils vous plait APPE.lsp Test.dwg
  16. Bonjour, Depuis deux déclinés j'utilise un lisp pour créer mes isolations en polyligne mais depuis que je suis passé sous Autocad 2022 Il arrive parfois que ce lips bug sur des gros fichier ou lorsque je bouge la souris durant la routine Quelqu'un pourrait scruter cette routine, peut être que c'est l'effet du covid qui n'a pas supporté 🤣 (defun C:ISOv2 (/ svbm ;"BLIPMODE" sv_osmode ;"OSMODE" poi1 ;Points which calculate the arcs and lines of the ;first batt. poi2 poi3 poi4 poi5 poi6 poi7 iang ;Angle. idis ;Approximate insulation length iinc ;Increment distance. ;iwid ;Insulation width (global) poic ;Center point of arc. stpt ;Start point of insulation ) (graphscr) (setvar "CMDECHO" 0) (command "_UNDO" "_M") (setq svbm (getvar "BLIPMODE")) (setq sv_osmode (getvar "OSMODE")) (setq stpt (getpoint "\nPoint de départ de l'isolant: ")) (if iwid (setq prom (strcat " <" (rtos iwid) ">")) (setq prom "") ) (setq flag (getdist (strcat "\nEpaisseur de l'isolant" prom ": "))) (if flag (setq iwid flag) ) (setq endp (getpoint stpt "\nPointer ou donner le point d'arrivée: ") ) (setq iang (angle stpt endp)) (setq idis (distance stpt endp)) (setvar "OSMODE" 0) (princ "\nDessin de l'isolant en cours...") (setvar "BLIPMODE" 0) (setvar "TRACEWID" 0) (setq poi1 (polar stpt iang (* iwid 0.05))) (setq iinc (distance poi1 stpt)) (setq poi2 (polar poi1 (+ (dtor 90) iang) (* iwid 0.30))) (setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.05))) (command "_PLINE" poi1 poi2) (while (< iinc idis) (setq poic (polar poi2 iang (* iwid 0.20))) (setq iinc (+ (distance poic poi2) iinc)) (if (< iinc idis) (progn (setq poi3 (polar poic (+ (dtor 90) iang) (* iwid 0.20))) (setq poi4 (polar poic iang (* iwid 0.20))) (setq iinc (+ (distance poi4 poic) iinc)) (if (< iinc idis) (progn (command "_ARC" "CE" poic "A" "-180") (setq poi5 (polar poi4 (+ (dtor -90) iang) (* iwid 0.60))) (setq poi5 (polar poi5 (+ (dtor 180) iang) (* iwid 0.10))) (command "_Line" poi5) (setq poic (polar poi5 iang (* iwid 0.20))) (setq iinc (+ (* iwid 0.10) iinc)) (if (< iinc idis) (progn (setq poi6 (polar poic (+ (dtor -90) iang) (* iwid 0.20))) (setq poi7 (polar poic iang (* iwid 0.20))) (setq iinc (+ (* iwid 0.20) iinc)) (if (< iinc idis) (progn (command "_ARC" "CE" poic poi7) (setq poi2 (polar poi7 (+ (dtor 90) iang) (* iwid 0.60))) (setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.10))) (command "_Line" poi2) (setq iinc (- iinc (* iwid 0.10))) ) (command "_ARC" "CE" poic poi6) ) ) ) ) (command "_ARC" "CE" poic "A" "-90") ) ) ) ) (command "") (princ "\nDessin isolant terminé...") (setvar "BLIPMODE" svbm) (setvar "OSMODE" sv_osmode) (princ) ) ; ;*** End of Program ;*** Support Programs ;*** Function DTOR ;Converts degrees to radians, where degr is degrees; returns a ;radian value. ; (defun DTOR (degr) (/ (* degr pi) 180) )
  17. j'edite en effaçant le contenu car je voulais l'envoyer en message privé

    En savoir plus  
  18. Ca marche encore mieux. Merci beaucoup Patrick. j'espère que tu profites quand même de tes vacances avec les petits
  19. Merci @Luna et @didier, vous êtes vraiment des champion(e)s. Dommage qu'il y a d'épreuve de Visual LISP au JO, on aurait eu des médailles avec vous 😉 la prochaine fois je vais essayer de mieux exprimer ma demande. Merci encore
  20. Donc à ta question, non il n'y pas de "point" entre le A et la cotation. en revanche et tu l'auras compris que si c'est une autre valeur que "A" faudra le copier également. exemple la cotation indique "hauteur = 1.88", le copier coller deja être également "hauteur = 1.88"
  21. Je viens de remarquer que j'ai indiqué dans le fichier "A.188" alors que le but est juste de copier coller du texte soit "A 1.88" pardon pour la faute de frappe qui a du perturber le compréhension du problème
  22. en effet le "A" n'est pas un préfixe mais un texte il n'est pas nécessaire de l'inclure les préfixe / suffixe. après si il y a c'est mieux; pour le décimal. 2 chiffres suffira.
  23. Bonjour Didier Merci pour ton aide, oui il faut copier le texte complet avec les préfixes suffixes de la cotation Soit = A 1.88 Amicalement
  24. Bonjour, En cherchant dans le forum j'ai trouvé une routine qui pourrait me convenir mais ce dernier s'applique correctement à un attribut et non à une cotation. quelqu'un pourrait m'aider à l'adapter à une cotation ? je mets un dwg pour le faire le test (defun c:COPYATT (/ selatt selatt2 objatt objatt2) (setq selatt (nentsel (strcat "\nSélectionner l'attribut ou le texte à copier :"))) (setq objatt (vlax-ename->vla-object (car selatt))) (if (setq selatt2 (nentsel (strcat "\nSélectionner l'attribut ou le texte de destination :"))) (progn (setq objatt2 (vlax-ename->vla-object (car selatt2))) (if (and (or (= (vla-get-ObjectName objatt) "AcDbText") (= (vla-get-ObjectName objatt) "AcDbMText") (= (vla-get-ObjectName objatt) "AcDbAttribute") ) (or (= (vla-get-ObjectName objatt2) "AcDbText") (= (vla-get-ObjectName objatt2) "AcDbMText") (= (vla-get-ObjectName objatt2) "AcDbAttribute") ) ) (vla-put-textstring objatt2 (vla-get-textstring objatt)) )) (command "_TEXT" (getpoint) 4 100 (vla-get-textstring objatt)) ;Hauteur de texte et orientation à 4 et 100g, à ajuster ) (princ) ) Merci par avance Test.dwg
  25. Bonjour @Jobar21 Merci, je découvre les cotes superposées, c’est pas mal. En revanche ça ne pourra pas fonctionner dans ma façon de bosser car j’ai plusieurs coupes dans un même fichier. Mais un seul SCU. Merci quand même j’ai découvert une nouvelle fonctionnalité @Luna Super, une nouvelle façon de procéder, je suis preneur. C’est le même principe que le double bloc que propose Luna @La Lozère Merci pour ton retour, c’est ce que propose @Luna C’est une superbe idée de procéder ainsi. Je prends Merci à tous pour vos aides.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité