LElemurien
Membres-
Compteur de contenus
230 -
Inscription
-
Dernière visite
-
Jours gagnés
3
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par LElemurien
-
Des traits apparaissent en fonction de l'angle et de l'éloignement
LElemurien a répondu à un(e) sujet de Yurexa dans AutoCAD 2017
Bonjour, Essayez de modifier la variables FACETRES en la diminuant cela fonctionne parfois. Essayez aussi un autre style visuel cela va peut-être fonctionner aussi. -
[RESOLU] Est -il possible de refaire une boucle avec tblnext?
LElemurien a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Ouah j'ai trouvé! Coup de bol en fait je cherchais un autre moyen de parvenir à mes fins et en regardant ce post Mon lien j'ai vu un bout de code qui ressemblait à mon souci. Il suffisait de rajouter (null list1), bon le problème c'est qu'il faut que je comprenne maintenant le pourquoi du comment. L'apprentissage sera long et fatiguant Allez on y croit ! Bonne journée -
[RESOLU] Est -il possible de refaire une boucle avec tblnext?
LElemurien a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Merci Gilles, Et oui j'ai bien trouvé ces chapitres dans vos bibles que j'ai imprimés par ailleurs et elles me sont essentielles pour apprendre et c'est pour ça que je disais dans mon message "Si j'ai bien tout compris on ne pas relancer tblnext". Je vais essayer de trouver une autre solution que tblnext. -
[RESOLU] Est -il possible de refaire une boucle avec tblnext?
LElemurien a posté un sujet dans Débuter en LISP
Bonjour, j'essaie de faire un lisp mais je coince sur une chose au niveau de la fonction tblnext. Si j'ai bien tout compris on ne pas relancer tblnext lorsque la fonction a trouvée ce qu'elle devait trouvée selon mon exemple (qui sera plus parlant que des explications) : (defun c:nca (/ list1) (while (/= (substr (cdr (assoc 2 (setq list1 (tblnext "layer")))) 1 4) "ELEC") (tblnext "layer")) (setq nc0 (substr (cdr (assoc 2 list1)) 6)) ) Le but étant que je créer un texte avec le reste du nom du calque (après les 5 premières "lettres"). Donc jusque là le lisp fonctionne mais le problème c'est que si change le nom du calque j'aimerai que le texte ce mette à jour en faisant un regen mais si je relance le lisp du coup j'ai une erreur : ; erreur: type d'argument incorrect: stringp nil C'est pour ça que je parle de refaire la boucle avec tblnext (car je pense que c'est là que ça coince ...) Avez vous des pistes à me proposer? Je suis peut-être pas du tout parti sur le bon le chemin dès le départ? -
[RESOLU] LISP avec SCU dynamique?
LElemurien a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Merci Gilles, En fait je viens de me rendre compte que je cela fonctionne bien mais dans mon exemple cela ne pouvait pas fonctionner. En fait si je prends un exemple je voulais dessiner un rectangle et j'avais d'abord obtenu les coordonnées du point de départ avec getpoint et mapcar Et ensuite j'avais utiliser la fonction command donc cela ne pouvait pas fonctionner car il ne pouvait pas détecter la face à laquelle je faisais référence vu que j'avais déjà les coordonnées du point de départ. Vu que j'utilise très souvent les SCU de gauche dessus etc.. il faudrait peut-être que dans le programme je demande à l'utilisateur dans quel SCU on se trouve. Bon faut que j'étudie la question. Merci et bonne soirée -
Bonjour, Il y a t-il une chose particulière à faire dans le LISP pour qu'il prenne en compte le SCU dynamique? J'ai essayé de mettre la variable "ucsdetect" à 1 mais rien y fait. Merci pour vos pistes
-
Bonjour, C'est vrai mais cela reste assez long à réaliser et cela peut être problématique (plus chiant) avec des vues de dessins. Autrement j'ai une autre méthode si cela peu intéressé: Je crée toutes mes coupes et toutes mes fenêtres normalement puis je fais une photo de la 1ère fenêtre et je la réinsère dans le dessin à la place de la fenêtre. Ainsi de suite pour les autres fenêtres. Peut-être plus rapide à la réalisation, mais inconvénient dès qu'il y a des modif. il faut refaire la démarche. Bon j'ai l'impression qu'il n'y a pas de méthode miracle. En espérant que dans les prochaines versions d'AutoCAD (environ 10 ans ) que cela soit pris en compte (que l'on puisse activer une ou plusieurs coupe 3D dans une fenêtre sans que cela désactive d'autres coupes dans d'autres fenêtres )
-
Bonjour, Merci pour la réponse mais cette méthode ne fonctionne pas avec des coupes 3D (réalisé avec la commande _sectionplane) En fait en relisant l'aide d'AutoCAD j'ai bien l'impression qu'il n'est pas possible d'activer une coupe sans en désactiver une autre donc impossible de le faire dans les fenêtres à mon avis. Voici ce qu'il est dit dans l'aide d'AutoCAD 2021 : Un dessin peut contenu plusieurs objets de coupe. Toutefois, la coupe 3D ne peut être active que pour un seul objet de coupe à la fois. Prenons l'exemple d'un modèle comportant deux objets de coupe : Coupe A et Coupe B. Si la coupe 3D est activée pour Coupe A et que vous l'activez pour Coupe B, elle est automatiquement désactivée pour Coupe A. Merci quand même pour cette méthode Bernard Bonne journée!
-
Remarque sur des lignes de repère qui ne s'affichent pas
LElemurien a posté un sujet dans AutoCAD 2020-2024
Re J'ai remarqué une chose avec les lignes de repère c'est qu'elles ne s'affichent pas toujours lorsque que je suis dans l'espace présentation et que je sélectionne un objet à travers une fenêtre si j'ai l'accrochage aux objets d'activé. Par contre si je désactive l'accrochage aux objets cela fonctionne (Bizarre). Est-ce la même chose chez vous? -
[RESOLU] Sélectionner à travers une fenêtre
LElemurien a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Parfait cela fonctionne merci Luna! -
[RESOLU] Sélectionner à travers une fenêtre
LElemurien a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Peut-être que je me suis mal exprimé mais en fait quand je dis à travers une fenêtre je ne suis pas dans la fenêtre et du coup cela ne fonctionne pas. -
Bonjour, j'essaie de créer un LISP et mon souci est le suivant : Je me trouve dans l'espace présentation et je voudrais sélectionner un objet à travers une fenêtre (_-vports) J'ai donc essayé avec la fonction entsel mais AutoCAD m'indique erreur: type d'argument incorrect: lentityp nil Ma question est donc la suivante est-il possible de sélectionner une entité à travers une fenêtre? Je demande cela car avec la commande _CHAMP il est possible de sélectionner un objet à travers une fenêtre. Merci de votre aide
-
Bonjour, Je ré-ouvre cette discussion car elle pourrait bien m'aider. J'aimerai utiliser des coupes 3D dans certaine fenêtre et pas d'autre et j'ai essayé la méthode de "Bernard" mais sans succès. Quand j'active une vue enregistrée dans une fenêtre et que j'active une autre vue enregistrée dans une autre fenêtre alors là la 1ere fenêtre perd la coupe 3D active de la 1ere vue enregistrée et rend active la dernière coupe 3D de la dernière fenêtre. Quelqu'un a t-il une méthode pour que cela fonctionne ou cela n'est pas possible? Si Bernard pouvait m'éclairé pour savoir comment il fait j'en serai ravi. Bonne journée!
-
[RÉSOLU] comment utiliser la fonction getkword
LElemurien a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Bonjour, et je tiens à vous dire merci à toi et Didier pour vos sites que je consulte et qui c'est vrai à l'avantage d'être en Français ce qui pour moi est d'une grande aide. Bonne journée à tous! -
[RÉSOLU] comment utiliser la fonction getkword
LElemurien a répondu à un(e) sujet de LElemurien dans Débuter en LISP
Ok parfait! Merci Luna pour toutes ces infos! Bonne soirée -
Bonjour, J'essaie d'apprendre la programmation et j'aimerai avoir si possible votre aide sur un certain point. Je voudrais utiliser la fonction getkword et je pensais que si on faisait entrer dans la ligne de commande cela validait la réponse par défaut mais je dois mal l'utiliser car cela ne marche pas dans mon cas Se sera plus explicite avec un bout de code : (defun c:test001 (/ rep1 lg ac1 ac2) (initget "Avec Sans") (setq rep1 (getkword "\nLigne avec ou sans cercle ? [Avec/Sans] <Avec>: " ) ;_ Fin de getkword ) ;_ Fin de setq (setq lg (getdist "\nEntrez la longueur de la ligne (ou distance à l'écran) : " ) ;_ Fin de getdist ac1 (getvar "osmode") ac2 (getvar "3dosmode") ) ;_ Fin de setq (setvar "osmode" 0) (setvar "3dosmode" 0) (command "_ucs" "gé" "") (command "_line" '(0 0) (list lg 0) "" ) ;_ Fin de command (if (= rep1 "Avec") (progn (command "_circle" '(0 0 0) "5" "") ) ;_ Fin de progn ) ;_ Fin de if (command "_ucs" "gé" "") (setvar "osmode" ac1) (setvar "3dosmode" ac2) (princ) ) ;_ Fin de defun Dans ce bout de code si je clic sur "Avec" dans la ligne de commande j'obtiens bien mon cercle comme demandé. Par contre si je fais entrée dans la ligne de commande cela ne prend pas en compte "Avec " par défaut et ne dessine pas mon cercle. Ma question ou plutôt ce que je pensais c'était que si je validais je devais avoir "Avec" par défaut mais apparemment ce n'est pas le cas. Si quelqu'un peut me donner une piste sur mon erreur cela m'aiderai. Je ne sais pas si ma question est très clair et si j'emploie bien les bons mots mais faîtes le moi savoir si ce n'est pas le cas. Merci d'avance Bonne soirée PS : comment fait on pour insérer le code dans le message avec une fenêtre?
-
Bonjour désolé je n'ai pas de réponse à la question mais toutes mes félicitations! Garçon ou fille? En tout cas bienvenue à lui ou elle! Bon weekend
-
Bonjour, Est-il possible de modifier les éléments constituant l'icône personnalisation (voir image ci dessous). En fait j'aimerai ajouter des éléments par exemple (Groupe) ce qui me permettrai d'afficher ou non une icône (Groupe) en plus des icônes existantes. Je suis allé voir du coté du CUI mais je n'ai rien trouvé. Si quelqu'un à une idée je suis preneur. Je suis sur AutoCAD 2021 PS : Il faudrait peut-être créer un forum AutoCAD 2021 (Appel à l'administrateur ) Bon weekend!
-
Modification d'un LISP "CHAMPSOLIDE" de Gilles
LElemurien a répondu à un(e) sujet de LElemurien dans LISP et Visual LISP
Bonjour et merci (Gile)! Mais comme indiqué et montré sur la photo quand je sélectionne en faisant Ctrl + séléction du solide j'ai bien accès à mon solide primitif. Je suppose que même si je sélectionne le solide primitif, j'imagine qu'il prend en compte le solide 3D et non le solide primitif ? Dommage cela aurait été bien pratique -
Modification d'un LISP "CHAMPSOLIDE" de Gilles
LElemurien a répondu à un(e) sujet de LElemurien dans LISP et Visual LISP
Effectivement cela fonctionne bien comme cela. Mais malheureusement mon souci n'est pas régler pour autant (peut-être impossible à régler!?). Cela fonctionne bien pour un solide de type "boîte" qui n'a pas été modifié, mais moi dans mon cas j'apporte des modifications à mon solide (Précision que je n'avais pas apporté au départ et qui change tout apparemment). Pour être un peu plus précis lorsque je créer une boîte, j'active la fonction "enregistrement" (fonction qui se trouve dans la palette des propriétés puis tout en bas dans "historique du solide" et enfin "historique"), ce qui me permet d'enregistrer des modifications que j'effectue sur mon solide. Ensuite le solide devient un solide 3D et plus un solide de type boîte. Donc dans les faits je fais un Ctrl + sélection du solide 3D modifié ce qui me donne accès à mon solide de type "boîte" d'origine et enfin j'active la fonction "Champsolide" mais dans ce cas là cela ne fonctionne pas cela m'indique : J'avoue que c'est peut-être compliqué à régler le problème voir impossible!? Merci en tout cas de votre aide -
Modification d'un LISP "CHAMPSOLIDE" de Gilles
LElemurien a répondu à un(e) sujet de LElemurien dans LISP et Visual LISP
En fait je viens de faire le test aussitôt. J'ai bien vérifié la variable pickfirst et j'ai sélectionné qu'un solide 3D de type "boîte" Malheureusement cela ne fonctionne pas chez moi. Voilà ce que j'obtiens : Merci de votre aide! Je vais essayer d'approfondir la chose dans ces prochains jours. Bonne journée et bon courage à tous! -
Modification d'un LISP "CHAMPSOLIDE" de Gilles
LElemurien a répondu à un(e) sujet de LElemurien dans LISP et Visual LISP
Pour qu'une commande/fonction puisse prendre en compte une pré-sélection tu peux essayer de regarder du côté de (last (ssgetfirst)). Cela te retourne un jeu de sélection si des entités sont actuellement sélectionnées (sous réserve que la variable PICKFIRST soit définie à 1), nil sinon. Non testé mais cela devrait vérifier l'existence d'une pré-sélection, et effectue les mêmes vérifications que la sélection prévue par (gile) ainsi que le fait qu'il n'y ait qu'un unique objet dans le jeu de sélection. En revanche, si ta demande requiert de prendre en compte un jeu de sélection (contenant plusieurs objets) cela va modifier le programme davantage ! En espérant avoir répondu à tes attentes :) Bisous, Luna Merci pour ton aide! Je regarde tout ça dans la journée Bonne journée -
Bonjour à tous, Je voulais savoir si il était possible de modifier ce LISP que maître Gile à réalisé : ;; Affiche dans des champs les dimensions du solide primitif sélectionné ;; Version française uniquement (defun c:CHAMPSOLIDE (/ ent solidType str) (vl-load-com) (while (not (and (setq ent (car (entsel "\nSélectionnez un solide (primitive uniquement): "))) (= (cdr (assoc 0 (entget ent))) "3DSOLID") (not (vl-catch-all-error-p (setq solidType (vl-catch-all-apply 'getpropertyvalue (list ent "SolidType"))) ) ) (member solidType '("Boîte" "Cylindre" "Cône" "Sphère" "Pyramide" "Biseau" "Tore")) ) ) (prompt "\nSélection non valide.") ) (setq id (vla-GetObjectIdString (vla-get-Utility (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (vlax-ename->vla-object ent) 0 ) str (cond ((= solidType "Boîte") (strcat "Longueur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Length \\f \"%lu6\">%" "\\PLargeur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Width \\f \"%lu6\">%" "\\PHauteur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Height \\f \"%lu6\">%" ) ) ((= solidType "Cylindre") (if (zerop (getpropertyvalue (car (entsel)) "Elliptical")) (strcat "Rayon = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Radius \\f \"%lu6\">%" "\\PHauteur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Height \\f \"%lu6\">%" ) (strcat "Grand rayon = %<\\AcObjProp Object(%<\\_ObjId " id ">%).MajorRadius \\f \"%lu6\">%" "\\PPetit rayon = %<\\AcObjProp Object(%<\\_ObjId " id ">%).MinorRadius \\f \"%lu6\">%" "\\PHauteur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Height \\f \"%lu6\">%" ) ) ) ((= solidType "Cône") (if (zerop (getpropertyvalue (car (entsel)) "Elliptical")) (strcat "Rayon de base = %<\\AcObjProp Object(%<\\_ObjId " id ">%).BaseRadius \\f \"%lu6\">%" "\\PRayon supérieur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).TopRadius \\f \"%lu6\">%" "\\PHauteur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Height \\f \"%lu6\">%" ) (strcat "Grand rayon de base = %<\\AcObjProp Object(%<\\_ObjId " id ">%).BaseMajorRadius \\f \"%lu6\">%" "\\PPetit rayon de base = %<\\AcObjProp Object(%<\\_ObjId " id ">%).BaseMinorRadius \\f \"%lu6\">%" "\\PGrand rayon supérieur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).TopMajorRadius \\f \"%lu6\">%" "\\PPetit rayon supérieur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).TopMinorRadius \\f \"%lu6\">%" "\\PHauteur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Height \\f \"%lu6\">%" ) ) ) ((= solidType "Sphère") (strcat "Rayon = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Radius \\f \"%lu6\">%" ) ) ((= solidType "Pyramide") (strcat "Côtés = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Sides >%" "\\PRayon de base = %<\\AcObjProp Object(%<\\_ObjId " id ">%).BaseRadius \\f \"%lu6\">%" "\\PRayon supérieur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).TopRadius \\f \"%lu6\">%" "\\PHauteur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Height \\f \"%lu6\">%" ) ) ((= solidType "Biseau") (strcat "Longueur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Length \\f \"%lu6\">%" "\\PLargeur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Width \\f \"%lu6\">%" "\\PHauteur = %<\\AcObjProp Object(%<\\_ObjId " id ">%).Height \\f \"%lu6\">%" ) ) ((= solidType "Tore") (strcat "Rayon de tore = %<\\AcObjProp Object(%<\\_ObjId " id ">%).TorusRadius \\f \"%lu6\">%" "\\PRayon de tube = %<\\AcObjProp Object(%<\\_ObjId " id ">%).TubeRadius \\f \"%lu6\">%" ) ) ) ) (vl-cmdf "_.mtext" pause "_width" 0.0 str "") (princ) ) Comme il est indiqué au début du code il sert à insérer des propriétés d'un solide primitif dans un champ en le sélectionnant. Mon souci dans ma pratique c'est que je sélectionne d'abord le solide avant d'appuyer sur l'icône que j'ai créer avec le LISP et du coup cela ne fonctionne pas. Il faut que j'appuie sur mon icône et que je sélectionne ensuite le solide pour que cela marche. Donc m'a question est la suivante : peut on modifier le LISP pour que si je sélectionne un solide et qu'ensuite j'appuie sur mon icône cela fonctionne? Merci pour vos pistes. Bon week-end et bon courage à tous!
-
Bonjour, Si vous avez la possibilité d'installer AutoCad 2020 avec l'outil purger vous pouvez voir tous les éléments d'un style de texte. Sinon peut-être avec la sélection rapide? (Pas sûr) Bon courage
-
Bonjour, Merci c'est parfait! Vraiment incroyable tout ce que l'on peut faire avec de la programmation. Bonne journée
