Red
Membres-
Compteur de contenus
65 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Red
-
Solution trouvé par Bonuscad, (defun c:boraxt ( / REP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (if (not (tblsearch "LAYER" "Bordure_A1_AVANT")) (command "_.layer" "_new" "Bordure_A1_AVANT" "") ) (if (not (tblsearch "LAYER" "Bordure_A1_ARRIERE")) (command "_.layer" "_new" "Bordure_A1_ARRIERE" "") ) (if (not (tblsearch "LAYER" "Bordure_A2_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A2_AVANT" "") ) (if (not (tblsearch "LAYER" "Bordure_A2_ARRIERE")) (command "_.layer" "_new" "Bordure_A2_ARRIERE" "") ) (prin1 "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>") (command "_.pline" pause "_width" 0.02 0.02) (while (not (zerop (getvar "CMDACTIVE"))) (command pause) ) (cond ((= REP "A1")(command "_.chprop" (entlast) "" "_layer" "Bordure_A1_AVANT" "") (setq DC 0.2) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "Bordure_A1_ARRIERE" "") (prin1) ) ((= REP "A2")(command "_.chprop" (entlast) "" "_layer" "SBordure_A2_AVANT" "") (setq DC 0.15) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "Bordure_A2_ARRIERE" "") (prin1) ) ) ) c'est la commande (command "_.chprop" (entlast) "" "_layer" "SBordure_A2_AVANT" "") qui à résolu mon soucis. Pour ma part le sujet est clos et résolu un grand MERCI à tous !!! :D
-
Polyligne avec largeur personnalisable et texte centré
Red a répondu à un(e) sujet de Red dans LISP et Visual LISP
En le modifiant quelque peu j'arrive à ce que je voulais pour cette commande ci (defun c:boraxt ( / REP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A1_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A1_AVANT" "") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A1_ARRIERE")) (command "_.layer" "_new" "SRMV_Bordure_A1_ARRIERE" "") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A2_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A2_AVANT" "") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A2_ARRIERE")) (command "_.layer" "_new" "SRMV_Bordure_A2_ARRIERE" "") ) (prin1 "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>") (command "_.pline" pause "_width" 0.02 0.02) (while (not (zerop (getvar "CMDACTIVE"))) (command pause) ) (cond ((= REP "A1")(command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A1_AVANT" "") (setq DC 0.2) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A1_ARRIERE" "") (prin1) ) ((= REP "A2")(command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A2_AVANT" "") (setq DC 0.15) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A2_ARRIERE" "") (prin1) ) ) ) J'ai ajouté la vérification et la création du calque pour la bordure A2 si elle n'existe pas puis en déplaçant (command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A2_AVANT" "") après le choix de sélection du type de bordure, j'arrive à dire à ma polyligne principale de se caler dans le calque AVANT et celle décalée dans le calque ARRIERE Pour aller plus loin admettons que je veuille y rajouter une couleur en créant ce calque, ou est ce que je peut trouver la démarche (if (not (tblsearch "LAYER" "SRMV_Bordure_A1_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A1_AVANT" "") Je me doute qu'il doit y avoir une commande dans _.layer color etc mais comment trouver quel chemin faire ? Ne me donne pas le code directement j'aimerai essayer de trouver seul :D , mais je ne suis pas contre une explication de pourquoi tu écrit "_.layer" moi en temps normal je fais la commande, lis en bas dans la ligne de commande et je progresse pas à pas en gros j'aurai fais (command "-calque" "n" "SRMV_bordure" "" "") (command "-calque" "ch" "SRMV_bordure" "") (command "-calque" "co" "u" "0,165,41" "" "" "") Car quand j'écris "_.LAYER" c'est une fenêtre qui s'ouvre du coup je ne sais pas quelle commande écrire pour changer la couleur d'un calque particulier :blink: -
Polyligne avec largeur personnalisable et texte centré
Red a répondu à un(e) sujet de Red dans LISP et Visual LISP
G.E.N.I.A.L. merci pour l'astuce du code :D Je suis en train de scrutter tes modifs, de ce que je comprend tu met (if (not (tblsearch "LAYER" "SRMV_Bordure_A1_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A1_AVANT" "") pour dire si il n'y à pas dans > tblsearch > layer > le calque nommé srmv... Alors lance moi la commande layer nouveau il s'appelle srmv .... Simple mais efficace, je ne savais pas que l'on pouvais faire comme ça. Par contre le (while (not (zerop (getvar "CMDACTIVE"))) (command pause) est un mystère pour moi Dans le fichier introduction à autolisp de (giles), que j'ai imprimé et relié, stabiloté, griffonné, il y à écrit (p14) que c'est utilisé pour laisser la main à l'utilisateur tant que la commande est active c'est à dire ? C'est ce qui m’empêchai la commande de placement dans un calque de fonctionner ? ta façon de tracer des polyligne aussi, quel est la différence avec ma commande ? (command "_.pline" pause "_width" 0.02 0.02) -
Polyligne avec largeur personnalisable et texte centré
Red a répondu à un(e) sujet de Red dans LISP et Visual LISP
Et voici un exemple de ce que je tente de faire en me dépatouillant pour un autre projet, c'est histoire de montrer comment de lisp (sans se moquer hein) je suis encore un novice en la matière, il y à des règles élémentaires que je ne maîtrise pas <_< A savoir que la aussi j'ai un soucis ou je n'arrive pas à bien placer ma commande pour donner la première polyligne dans un calque et la polyligne décalée dans un autre mais sa ... c'est un autre problème <_< (defun c:borax (/ ent REP EP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (cond ((= REP "A1") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint de Départ: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant ou fin (Return pour FIN): ")) (command pt) ) [b](command "_chprop" (entlast) "" "_la" SRMV_Bordure_A1_AVANT "")[/b] (setq EP 0.02) (setq DC 0.2) [b](command "_chprop" (entlast) "" "_la" SRMV_Bordure_A1_ARRIERE "")[/b] ) ((= REP "A2") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint d'origine: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")) (command pt) ) (setq EP 0.02) (setq DC 0.15) ) ) (if (setq ent (car (entsel))) (progn (command "_.offset" DC ent pause "") (command "_.pedit" (entlast) "la" EP "") ) ; fin progn ) ; fin if (princ) ) -
Polyligne avec largeur personnalisable et texte centré
Red a répondu à un(e) sujet de Red dans LISP et Visual LISP
Alors tout d'abord je n'ai qu'un mot à dire ... OUAAAAAAAH !! Certes il y à quelques fonctions et options à changer pour coller au plus proche de ce que j'imagine, mais ouah dans l'idéal c'est ce que je vise :(rires forts): Maintenant un soucis se pose ... je n'arrive pas du tout à comprendre ton lisp ... alors certes, il frôle la perfection mais inatteignable pour mon niveau, alors que j'aimerai le comprendre, analyser le pourquoi du comment ... Pour faire simple je suis en licence pro CAO DAO et j'ai eu que 4 jours de formation sur lisp ou l'on à créé des mini programme avec (command "blabla" ) etc enfin ce que je considère comme système D .. Après je peut te détailler vraiment comment je le voyais mais attention je ne demande pas à ce qu'il me soi servi sur un plateau, mon but étant de me faire aider mais de comprendre le fond du lisp afin d'en ressortir plus instruit. Je vais écrire comment je voyais la logique de la chose au plus simple pour ne pas m'embrouiller: -lancer la commande -donner setvar "osmode" a 6 pour un accrochage milieu (2) + centre (4) -créer la polyligne en la traçant puis entrer pour valider -créer la même fenêtre de sélection que toi avec un "iniget" et "getkword" (fonction que j'essaye de modifier pour la comprendre) -pour donner différents choix comme l'épaisseur et les choix (PVC/BETON/PEHD) -la mettre dans un calque prédéfini -Pour le texte arriver à combiner un certain décalage par défaut admettons de 1 au dessus du milieu de la polyligne qui s'adapterai ex: polyligne=0 décalage du texte=1 et si polyligne=2 décalage texte=1+2 -Dans ce texte, les informations seraient si on clique sur le futur bouton réseau EP, le texte aurait comme résultat EP-BETON %%c200 L=xx,xm tout en plaçant le texte dans un autre calque prédéfini. à savoir que les conduites en 200 sont tracés en polyligne 0.2 Voila comment je voyais la commande. Donc voila une fois de plus je te remercie grandement pour ce que tu à fais et je ne demande ou n'exige pas avoir un lisp correspondant exactement à ce que j'imagine. -
Il y à un truc que je ne pige pas encore ... Comment je peut savoir ou mettre ta commande ? :blink: Intuitivement je place la première après la création de la polyligne et la seconde après le décalage mais visiblement cela ne marche pas ... qu'est ce que je ne comprend pas, est ce que je n'arrive pas à différencier la polyligne tracée et celle décalée dans mon lisp ? Je vois aussi qu'à la fin de ma commande, les autres polylignes restent en épaisseur de 0.02, est ce que je dois lancer un "_pedit" "0" ? (defun c:borax (/ ent REP EP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (cond ((= REP "A1") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint de Départ: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant ou fin (Return pour FIN): ")) (command pt) ) (command "_chprop" (entlast) "" "_la" SRMV_Bordure_A1_AVANT "") (setq EP 0.02) (setq DC 0.2) (command "_chprop" (entlast) "" "_la" SRMV_Bordure_A1_ARRIERE "") ) ((= REP "A2") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint d'origine: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")) (command pt) ) (setq EP 0.02) (setq DC 0.15) ) ) (if (setq ent (car (entsel))) (progn (command "_.offset" DC ent pause "") (command "_.pedit" (entlast) "la" EP "") ) ; fin progn ) ; fin if (princ) )
-
Super !! sa fonctionne !! Testé en tant que commande cela marche mais une fois dans le LISP ... par contre j'aurai 2 ou 3 questions, la première: dans ta commande, le (entlast) je ne comprend pas pourquoi il n'est pas entres guillemets :blink: prcke la il n'est pas compté comme texte écrit comme le "_chprop" la deuxième: toujours dans ta commande, pourquoi le variable-calque lui non plus n'est pas entre guillemets ? la troisième: comment se fait il que ma commande pour changer de calques ne fonctionne pas ? (command "-calque" "ch" "nom_du_calque" "" ) car j'appelle la commande "_calque", oublié de mettre le (entlast) ici ?, choisir avec "ch" et le nommer entre "" puis valider j'énumère mes questions mais c'est pour être le plus clair possible pour ne pas m'égarer dans une phrases pour tout expliquer :D
-
D'accord je te remercie fortement je vais regarder ça, l'appliquer et je fais un retour si cela marche ????
-
Je croyais "détenir" une solution mais malheureusement je tombe sur un problème ... Je souhaiterai dans ma commande qui me permet de tracer une polyligne puis de la décaler, placer la première polyligne tracée dans le calque "TOTO" et placer son décallage dans le calque "TATA" mais je n'y arrive pas HEEEEELP :D :D (defun c:borax (/ ent REP EP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (cond ((= REP "A1") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) je pensai donner l'ordre calque TOTO ici (setq pt (getpoint "\nPoint de Départ: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant ou fin (Return pour FIN): ")) (command pt) ) Et l'ordre TATA ici mais malheureusement ma "semi-combine" ne fonctionne pas :huh: (setq EP 0.00) (setq DC 0.2) ) ((= REP "A2") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint d'origine: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")) (command pt) ) (setq EP 0.00) (setq DC 0.15) ) ) (if (setq ent (car (entsel))) (progn (command "_.offset" DC ent pause "") (command "_.pedit" (entlast) "la" EP "") ) ; fin progn ) ; fin if (princ) )
-
Polyligne avec largeur personnalisable et texte centré
Red a répondu à un(e) sujet de Red dans LISP et Visual LISP
Merci, je vais m'y pencher après mon travail. Je suis désolé je suis un peu un boulet mais voila je suis en formation de CAO DAO et à l'occasion je vous scannerai mes feuilles de "cour" qui vous montrerons le niveau donné en comparaison du projet à accomplir ... -
Polyligne avec largeur personnalisable et texte centré
Red a posté un sujet dans LISP et Visual LISP
Bonjour, dans le cadre de mon entreprise je suis amené à créer un bouton autolisp pour faciliter la création de conduite d'EP EU etc Mon but serai de créer une polyligne avec un accrochage par défaut Extrémité et Centre, la tracer manuellement avec "getpoint", à cela je pensai mettre un "entlast" pour la sélectionner et avec "_pedit" lui donner manuellement sa largeur globale avec un "getdist" ? sachant que selon la canalisation elle serait amenée à changer d'une polyligne à l'autre. A cela dans l'idéal il faudrait que j'arrive à créer un texte situé au centre de la polyligne décalée vers le haut ou il y aurait les données suivantes (issues des caractéristiques de la polyligne ? utiliser une liste avec les car cdr ?), choix entre 3 canalisation PVC/BETON/PEHD, me donner son diamètre (en rapport avec sa largeur donnée et en utilisant le logo diamètre avec %%C) ainsi que sa longueur en Mètre et possiblement la possibilité de choisir de l'écrire manuellement en tant que texte libre. Et possibilité de l'avoir "interactif" c'est à dire que si je change manuellement la largeur de polyligne, que cela se reporte sur le texte. Voila je sais que la commande est peut être ultra poussée mais dans l'idée j'aimerai faire quelque chose de propre et bien construit, le problème est que je n'ai qu'effleuré le LISP et j'essaye de m'instruire comme je peut avec votre forum, joch04.free.fr et des articles que giles à écrit mais voila je m'y perd un peut et je n'arrive pas à trouver quelques exemples pour bien comprendre. Bonuscad m'avais dirigé vers un de ses lisp "cablage" mais le problème étant que je ne comprend pas grand chose il y à des "(vlax-ldata-put" chose que j en'ai pas pu voir en cour ... Donc si vous avez juste des lisp d'édition de polyligne et un ou il y aurait une fonction pour éditer un texte je suis preneur pour le décortiquer et comprendre comment cela marche ... (Je suis aussi preneur de tout site me permettant d'apprendre plus sur du lisp car de ce que je comprend il y à milles façons pour arriver à un résultat) Merci d'avance pour ce qui auront le temps et la patience de lire ce post et de s'y pencher. -
Polyligne avec largeur personnalisable et texte centré
Red a répondu à un(e) sujet de Red dans Débuter en LISP
Je te remercie fortement, je vais regarder sa et je lancerai un nouveau post dans la bonne section quand j'aboutirai a quelque chose de structuré et je vous fournirai mon projet pour en faire profiter les gens quand je l'aurais fini. -
Bonjour, dans le cadre de mon entreprise je suis amené à créer un bouton autolisp pour faciliter la création de conduite d'EP EU etc Mon but serai de créer une polyligne avec un accrochage par défaut Extrémité et Centre, la tracer manuellement avec "getpoint", à cela je pensai mettre un "entlast" pour la sélectionner et avec "_pedit" lui donner manuellement sa largeur globale avec un "getdist" ? sachant que selon la canalisation elle serait amenée à changer d'une polyligne à l'autre. A cela dans l'idéal il faudrait que j'arrive à créer un texte situé au centre de la polyligne décalée vers le haut ou il y aurait les données suivantes (issues des caractéristiques de la polyligne ? utiliser une liste avec les car cdr ?), choix entre 3 canalisation PVC/BETON/PEHD, me donner son diamètre (en rapport avec sa largeur donnée et en utilisant le logo diamètre avec %%C) ainsi que sa longueur en Mètre et possiblement la possibilité de choisir de l'écrire manuellement en tant que texte libre. Et possibilité de l'avoir "interactif" c'est à dire que si je change manuellement la largeur de polyligne, que cela se reporte sur le texte. Voila je sais que la commande est peut être ultra poussée mais dans l'idée j'aimerai faire quelque chose de propre et bien construit, le problème est que je n'ai qu'effleuré le LISP et j'essaye de m'instruire comme je peut avec votre forum, joch04.free.fr et des articles que giles à écrit mais voila je m'y perd un peut et je n'arrive pas à trouver quelques exemples pour bien comprendre. Merci d'avance pour ce qui auront le temps et la patience de lire ce post et de s'y pencher.
-
Bonjour, désolé de déterrer le post mais voila je me pose une question, en cour de lisp on à été un peu laissé de côté donc j'avais trouvé une astuce pour créer un calque, le choisir, changer sa couleur puis à la fin de la commande, retourner dans le calque 0 J'aimerai donc votre avis et m'indiquer si c'est la bonne façon de faire ou s'il y à plus simple, plus compliqué ? Je tiens à dire que je n'ai eu que 4 jours de formation scolaire ou l'on à recopié un PDF pour "nous apprendre" <_< vive l'éducation nationale donc soyez indulgent :D (command "-calque" "n" "parking" "" "" ) (command "-calque" "ch" "parking" "" ) (command "-calque" "co" "u" "255,0,255" "" "" "" ) (command "-calque" "ch" "0" "" )
-
Bonjour, je suis actuellement en licence pro CAO DAO sur Nîmes et j'aurai quelques questions par rapport à mon projet de fin d'année. Tout d'abord excusez moi si je n'emploie pas les bon termes techniques au niveau des logiciels. Donc je vous présente globalement mon problème, j'ai comme projet de créer une base de donnée dons covadis pour ensuite l'utiliser sur autocad. Le problème étant que l'on n'à pas encore étudié en profondeur le logiciel covadis en cour donc je suis un peu perdu et deuxième problème, sur mon poste de travail je n'ai pas accès à covadis enfin sur une journée complète je peut y avoir accès 1h et quelque ce qui est peu ... J'aimerai donc optimiser mon temps de travail et savoir par quelle étape commence, je pensai commencer par un Excel ou je référencerai tout les types de bordure etc ( je suis dans une entreprise de VRD ) mais comment différencier sur Covadis les bordures, enrobé etc etc ? Puis créer un gabarit de référence avec tout les types de calques prédéfinis pour faire une sélection par calque. Voila voila je suis légèrement dans la mouisse mais j'aimerai quand même sortir quelque chose de propre à l'arrivé ^^ Merci de votre aide.
