-
Compteur de contenus
1 489 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par zebulon_
-
Lancer LISP avec l'entité précédente
zebulon_ a répondu à un(e) sujet de laurentpo dans LISP et Visual LISP
Mais en définitive, cela ne serait-il pas plus simple de remplacer (entlast) par (car (entsel)) en demandant à l'utilisateur de pointer la polyligne qui l'intéresse, qu'elle soit la dernière créée ou la dernière modifiée ou une autre quelconque ? Cela marcherait dans tous les cas sans demander la lune à l'utilisateur. Amicalement Vincent -
Lancer LISP avec l'entité précédente
zebulon_ a répondu à un(e) sujet de laurentpo dans LISP et Visual LISP
Bonjour, voir l'aide qui correspond à la fonction (ssget ...) et toutes celles qui commencent par ss comme selection set (ou jeu de sélection). Lorsqu'on répond P à l'invite "choix des objets", on ne récupère pas forcément une seule entité mais un jeu de sélection qui peut contenir une ou n entités. On peut écrire (setq js (ssget "_p")) qui mettra dans la variable js le jeu de sélection précédent. js contiendra nil s'il n'y a pas de jeu de sélection précédent. On peut utiliser ssname pour, par exemple, récupérer le nom de la première entité dans js en écrivant (setq ent (ssname js 0)). On commence à compter à partir de 0. (setq js (ssget "_p")) (if js (setq ent (ssname js 0)) (progn (alert "Pas de jeu de sélection précédent.") (exit) ) ) -
C'est vrai qu'on rencontre tellement d'"antiockham" qu'on se croit arrivé dans le monde des Shadocks. Eh oui, pourquoi faire simple quand on peut faire compliqué ? On se demande si ce n'est pas ça la philosophie dominante... On la désigne par "usine à gaz" ou par le néologisme "philosophie usinagazesque". De temps en temps, sur ce forum, on s'adonne à l'un ou l'autre challenge lisp. Bien souvent, il y a plusieurs solutions proposées qui mènent toutes au même résultat, mais c'est la plus simple qui est la plus élégante, voire la plus rapide. C'est Antoine de Saint-Exupéry qui écrivait dans Terre des Hommes la chose suivante : « Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher » C'est ce que dit celui qui tombe du 50ème étage avant de s'écraser sur le pavé ! Amicalement Vincent
-
Afichage de texte sans gillemets
zebulon_ a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Et comme disais le regretté une merveille de finesse et d'esprit Amicalement Vincent -
Afichage de texte sans gillemets
zebulon_ a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
invisible ne veut pas dire inexistant. Merci pour la précision :) Amicalement Vincent -
Afichage de texte sans gillemets
zebulon_ a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Bonjour, je dirais fonction à la place de commande. Toutes les fonctions renvoient une valeur, sauf (princ). Certaines renvoient toujours nil, mais sont quand même relativement rares. C'est normal, car comme en maths, le but d'une fonction est principalement de renvoyer une valeur en fonction d'un ou plusieurs paramètres. Dans d'autres langages, comme par exemple en Turbo Pascal, on fait la nuance entre "fonction" et "procedure". En lisp, cette nuance est inconnue et la "procedure" est de fait une "fonction" dont on n'exploite pas l'éventuel résultat. Amicalement Vincent -
COFFRAGE POUR CORNICHES DE PONT
zebulon_ a répondu à un(e) sujet de lili2006 dans Organisation du travail
Bonsoir, le lien fonctionne. J'espère que tes apprentis seront bien reçus. Je pense que oui ! En général, les entreprises sont contentes de pouvoir mettre en valeur leurs compétences. C'est normal et je fais pareil quand j'en ai la possibilité. On aime partager son savoir, sans que ce soit toujours purement désintéressé, car il y a aussi un côté orgueil qu'il ne faut pas nier. Et comme je te le disais par ailleurs, tes étudiants sont aussi de futurs clients potentiels. Là aussi, les entreprises peuvent trouver un intérêt à faire savoir leur savoir faire ! Amicalement Vincent -
COFFRAGE POUR CORNICHES DE PONT
zebulon_ a répondu à un(e) sujet de lili2006 dans Organisation du travail
Bonjour, le lien dropbox ne renvoie sur rien. Pour le reste, je ne peux pas te répondre, car je n'ai jamais été dans leurs ateliers. En fait, je fournis les cotes de coffrage et les nomenclatures du ferraillage. Après, comment c'est coffré que ce soit sur le chantier ou en atelier préfa, c'est une question de méthodes qui ne concerne pas le bureau d'études. Je suis de ce fait un peu sec à ce niveau et il faudrait se rapprocher directement des entreprises en question pour avoir les bonnes informations. Amicalement Vincent -
COFFRAGE POUR CORNICHES DE PONT
zebulon_ a répondu à un(e) sujet de lili2006 dans Organisation du travail
il y a aussi Socap et Préfatech ou Technipréfa où on peut voir des exemples de moules de corniches ou Nony tu vas bien trouver ton bonheur dans cette liste Amicalement Vincent -
COFFRAGE POUR CORNICHES DE PONT
zebulon_ a répondu à un(e) sujet de lili2006 dans Organisation du travail
Bonjour, pas beaucoup de réponses jusque là... Je me suis renseigné de mon côté et j'ai retrouvé la société qui a fabriqué les corniches de l'ouvrage "Amezule" dont je t'ai envoyé les plans. Il s'agit de la société Est Préfa située entre Nancy et Metz, à deux pas de Pont-à-Mousson Tu trouveras leurs coordonnées sur leur site et il y a des photos de la corniche dont tu as les plans. Malheureusement, ce sont des photos des pièces préfabriquées terminées et on ne voit pas comment c'est coffré. Mais il pourront sans doute te fournir plus de précisions. Amicalement Vincent -
Bonjour, voir ici, en particulier jsd qui me semble correspondre à la demande Amicalement Vincent
-
qui pourrait ressembler à cela, pour répondre à la question, quand même ! (defun c:test ( / *error* oldos ) (defun *error* ( msg ) ;; ici on peut mettre tout ce qui permet de sortir proprement d'une fonction après erreur (princ (strcat "\nvaleur OSMODE active avant gestion erreur : " (itoa (getvar 'osmode)))) (princ (strcat "\nvaleur OSMODE sauvegardée : " (itoa oldos))) (setvar 'osmode oldos) ;; on remet osmode comme à l'origine malgré l'erreur (princ (strcat "\nErreur: " msg)) (princ (strcat "\nvaleur OSMODE active après gestion erreur : " (itoa (getvar 'osmode)))) (princ) ) (setq oldos (getvar 'osmode)) (setvar 'osmode 0) (rtos (getreal "\nEchap ou entrée pour provoquer une erreur ! ")) (setvar 'osmode oldos) (princ) ) à noter qu'ici *error* est local à la fonction test (donc à déclarer impérativement dans les variables locales de la fonction test) et n'écrase pas la définition de la fonction *error* standard. Cela me semble être la façon de faire la plus orthodoxe. Bien sûr, il y a sans doute d'autres avis qui ne manqueront pas de s'exprimer. Amicalement Vincent
-
Bonjour, par une gestion des erreurs. Mais avant cela, on peut se demander pourquoi tu désactives l'accroche aux objets. A mon avis il n'y en a pas besoin, puisque tu ne calcules aucun point et il n'y a aucune commande qui place un point qui pourrait être sensible à un accrochage aux objets. Au pire, je préfère mettre un "_non" avant le point à placer pour désactiver localement l'accrochage aux objets plutôt que de bricoler "OSMODE" Amicalement Vincent
-
Bien le bonjour également. Je ne suis pas noble et si d'aventure on me colle une particule à mon nom de famille, cela deviendrait particulièrement ridicule. Mais ce n'est pas la question. Concernant ton problème de lisp, il serait intéressant d'exposer le but de la manœuvre à l'aide d'un croquis ou d'un fichier joint, ce serait beaucoup plus parlant. Quant au premier jet que tu nous soumets et qui a le mérite d'exister, je ne vois pas comment on peut arriver à dessiner une polyligne en ne donnant qu'un seul point (command "_PLINE" p1 "la" ep ep ) et, conséquemment, cela m'étonnerait que (entlast) récupère bien l'entité voulue. Les multilignes qui sont évoquées par Red ont certainement beaucoup d'atouts, mais aussi un problème de fond : on ne peut pas faire de segment courbe. A moins que les versions récentes n'aient changé la donne. Amicalement Vincent
-
Bonjour, c'est un groupe, pas un bloc. Ce n'est pas la même chose et il vaut mieux utiliser la bonne terminologie, sinon on risque de ne pas se comprendre les uns les autres. on reste à ton écoute si tu as des questions. n'hésite pas à publier ton lisp quand tu en seras satisfait Amicalement Vincent
-
Bonjour, je pense aussi qu'il faut abandonner l'idée du réseau qu'on peut remplacer par une boucle itérative. C'est vrai que les places PMR sont souvent en bout de rangée, compte tenu qu'elles doivent être le plus près possible de l'entrée de l'établissement. J'ai fait quelque chose qui demande à quelle position on veut mettre ces places, mais on pourrait simplifier comme suggère arnaudalp en demandant simplement combien il y a de places handicapées, puis si elles sont au début ou à la fin. (defun C:parking () (setvar "cmdecho" 0) ;entrée des données (setq LISTENT nil) (setq nbplace (getint "\nNombre de places de parking :")) (if (or (= nbplace nil) (< nbplace 1)) (exit)) (setq I 1) (setq LREP nil) (while ;; définir les positions des places handicapées (and (< (length LREP) nbplace) (setq REP (getint (strcat "\nPosition place handicapée n° " (itoa I) " (entrée pour quitter) : "))) ) (if (member REP LREP) (alert "position déjà prise") (if (and (>= REP 1) (<= REP nbplace)) (setq LREP (cons REP LREP)) (alert "position non valable") ) ) (setq I (1+ I)) ) (setq p0 (getpoint "\nPoint de départ du parking :")) (setq pt0 p0) (setq ang0 (getangle pt0 "\nAngle d'orientation des places :")) (setq larg 2.3) (setq largh 3.3) (setq long 5.0) (setq I 1) (repeat nbplace ;calcul (setq pt1 (polar pt0 (+ ang0 (/ pi 2)) long)) (if (member I LREP) (progn ;; une place handicapée (setq pt2 (polar pt1 ang0 largh)) (setq pt3 (polar pt0 ang0 largh)) ) (progn ;; une place non handicapée (setq pt2 (polar pt1 ang0 larg)) (setq pt3 (polar pt0 ang0 larg)) ) );; fin if (command "_pline" "_non" pt0 "la" 0 0 "_non" pt1 "_non" pt2 "_non" pt3 "_cl") (setq LISTENT (cons (entlast) LISTENT)) (command "_text" "_j" "_BL" "_non" pt0 0.2 "_non" pt3 (itoa I)) (setq LISTENT (cons (entlast) LISTENT)) (setq I (1+ I)) (setq pt0 pt3) );; fin repeat ;texte (setq pt4 (polar p0 ang0 (* (distance p0 pt3) 0.5))) (setq pt4 (polar pt4 (+ ang0 (/ pi 2)) -0.20)) (setq pt5 (polar pt3 (+ ang0 (/ pi 2)) -0.20)) (setq index (strcat (itoa nbplace) " Place(s)")) (command "_text" "_j" "_MC" "_non" pt4 0.2 "_non" pt5 index) (setq LISTENT (cons (entlast) LISTENT)) ;; tout mettre dans un groupe (command "_.-group" "_create" "*" "Parking") (foreach EN LISTENT (command EN)) (command "") (princ) ) Amicalement Vincent
-
[Résolu] Suppression de la saisie à coté du curseur
zebulon_ a répondu à un(e) sujet de DenisHen dans AutoCAD 2017
Il y a aussi un petit bouton (F12 - saisie dynamique) en bas de l'écran. C'est dans la même série que F3 - accrochage aux objets etc... juste à droite de l'affichage des coordonnées. C'est sûr que si on est habitué à retrouver ses petits sur la ligne de commande en bas à gauche, on est un peu déconcerté par la saisie dynamique, dont le désavantage est justement d'être dynamique. C'est à dire que la commande ne s'affiche pas toujours au même endroit, mais au bout du curseur de souris. Par contre, il y certains avantages dans la saisie dynamique : un affichage plus clair, l'inversion de priorité entre coordonnées relatives et coordonnées absolues. Sans saisie dynamique, il faut préciser "@" si on veut donner des coordonnées relatives. Si on ne précise rien, ce sont des coordonnées absolues. Avec la saisie dynamique, il faut préciser "#" si on veut donner des coordonnées absolues. Par défaut, on peut saisir des coordonnées polaires, ce qui semble être la façon la plus naturelle de saisir des cotes. Perso, j'ai essayé la saisie dynamique pendant un temps, mais j'ai fini par le désactiver... On est désespérément conservateur ! Amicalement Vincent -
Vous avez le même modèle de souris ? Amicalement Vincent
-
Bonjour, rien à voir avec le sujet d'origine, mais au sujet des niveaux d'Egault : il y a actuellement 3 H.MORIN (ou similaires) en vente sur LeBonCoin. Autour de 170€ , 220€ et 350€. Il y a même le manuel d'arpentage qui va avec. De beaux objets ! Qu'on dit "vintages", c'est mieux que de dire "vieux". Amicalement Vincent
-
Bonjour, un comportement curieux ! Si c'est "toute seule", en bougeant juste la souris je ne sais pas de quoi ça vient. Si c'est au moment où l'on sélectionne de nouveaux objets qu'on voit la sélection précédente disparaitre, c'est dû à la variable PICKADD. Si elle vaut 0, la mettre à 2. Ou aller dans "options", "sélection", désactiver "Utiliser la touche MAJ pour ajouter à la sélection". Amicalement Vincent
-
Bonjour, c'est pareil qu'une tolérance "écart", c'est juste une autre manière de la formaliser, sans indiquer la borne inférieure. Pour marger une cote, il faut utiliser la tolérance. Tout le reste c'est du bricolage, à mon avis. Ce que j'ai du mal à comprendre, c'est la raison qui te pousse à dessiner un truc à 200 alors qu'il doit être à 250 ? Pourquoi tu ne le dessines pas à 250 ? L'expérience prouve qu'il vaut mieux modifier l'objet à coter plutôt que de trafiquer la cote. Amicalement Vincent
-
Bonjour Christian, je ne pense pas que c'est une méthode appropriée. Si on met la propriété "Cote arrondie" à 50, ça veut dire qu'on ne peut avoir que des cotes multiples de 50 (0, 50, 100, 150 etc...). Une cote de 200 va donc être arrondie à... 200. De 0 à 24.999, l'arrondi donne 0 de 25 à 74.999, on a 50 de 75 à 124.999, on a 100 etc... Enfin, c'est comme ça que j'ai compris cette propriété, mais je ne l'ai jamais utilisée, alors j'ai peut être mal compris. Amicalement Vincent
-
Bonjour, pour marger une cote, il conviendrait à mon avis d'utiliser les tolérances. Il y a plusieurs méthodes, disponibles dans l'onglet Tolérance du style de cote ou dans les propriétés de chaque cote : - la méthode symétrique : 100 +/-5, par exemple (tolérance supérieure = tolérance inférieure = 5) - la méthode écart : 100 +5/-1, par exemple (tolérance supérieure = 5; tolérance inférieure = 1). Attention la tolérance inférieure doit être positive, le - est mis d'office. - la méthode limite : 105/99, par exemple. Elle utilise les mêmes tolérances sup et inf que ci-dessus, mais affiche les valeurs maximale et minimale obtenues en ajoutant la tolérance supérieure à la cote mesurée et en soustrayant la tolérance inférieure. Pour ton problème, l'idée est d'utiliser la méthode "limite" en donnant comme tolérance positive 50 et comme tolérance négative 0. Une cote qui mesure une distance de 200 sera affichée 250/200. Ce qui veut dire que toute valeur entre 200 et 250 est considérée comme bonne. L'avantage par rapport à l'édition pure et simple du texte de cote, c'est que la cote ainsi tolérancée reste évolutive. Si la cote est étirée pour mesurer une autre distance que 200, les bornes évolueront en même temps. Par contre, je ne sais pas afficher uniquement 250 pour une cote mesurant 200 (cela ne me semble pas très orthodoxe, de toute manière). La méthode "limite" affiche toujours deux valeurs de borne, mais ce n'est peut être pas plus mal ? Et c'est une méthode normalisée ! Amicalement Vincent
-
ou alors utiliser la commande HATCHSETORIGIN. Amicalement Vincent
-
Rotation des TEXTs/MTEXTs a l'Horizontale suivant le Point de Vue 3D ?
zebulon_ a répondu à un(e) sujet de lecrabe dans Routines LISP
Bonjour, sans doute parce que je n'utilise que dans un cas particulier https://www.dropbox.com/s/gp2xgnrbzpt8c4s/avant.JPG?dl=0 https://www.dropbox.com/s/mnlbdeiiqeehaja/apres.JPG?dl=0 amicalement Vincent
