-
Compteur de contenus
4 029 -
Inscription
-
Dernière visite
-
Jours gagnés
21
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par DenisHen
-
Comment savoir si c'est déjà fait ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Parfait, mille merci (gile), c'est super ! ! ! Donc, ta deuxième proposition est valable pour toutes les valeurs qui peuvent être "DuCalque". Encore un grand merci. Denis... -
Comment savoir si c'est déjà fait ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Je me renseigne depuis un moment sur cette ligne : "(entmod (subst '(62 . 7) '(62 . 1) (entget ligne)))" Que je trouve très intéressante, j'ai juste une petite question : comment l'écrire si on ne connait pas l'ancienne couleur (par exemple) ? J'ai le souvenir de m'être méchamment planté il y a quelques années à essayer d'utiliser les (entmod, (entget et aussi (entmake... J'en avais déduit que, pour moi, plus jamais, jusqu'à aujourd'hui... 😉 Encore un grand merci pour toutes cette aide. Denis... -
Comment savoir si c'est déjà fait ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Ok, je ne l'avais pas compris... Excellente idée ! ! Je regarde ça dès que j'ai un AutoCAD à portée... Encore mille mercis... Denis... -
Comment savoir si c'est déjà fait ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour (gile) et merci pour ton aide. Je regarde ton code très attentivement (car je n'ai pas AutoCAD sous le coude pour l'instant). a. je viens seulement de comprendre pourquoi : "(<= (distance ptA ptB) (* 2 longCoupe))", j'ai mis du temps, mais c'est une excellente idée, de ne pas raccourcir une ligne d'une valeur supérieure à elle-même...😉 b. je ne comprends pas le "(entmod (subst '(62 . 7) '(62 . 1) (entget ligne)))". Tu changes la couleur rouge en blanc (ou l'inverse) ? c. le getpropertyvalue et le setpropertyvalue sont très sympas ! ! ! d. "(entmod (append (entget ligne) '((-3 ("DecoupPli" (1070 . 1))...." est une très bonne idée, mais je n'arriverais jamais à l'utiliser ailleurs... e. décomposer du code étape par étape est une très bonne idée, mais je n'y arrive pas toujours. Manque manifeste de méthode...🤕 Encore merci pour ton aide. Denis... -
Comment savoir si c'est déjà fait ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour (gile) et merci pour ton aide. J'ai vu mon erreur, j'aurais du écrire : (/= (vlax-ldata-get ssObj "DecoupPli" 1) "1"). Et effectivement, pourquoi "1" alors que 1 est plus simple. J'ai donc intégrer ton code au mien, pour mieux le comprendre et ainsi, être capable de le modifier s'il doit évoluer. Mais ça ne fonctionne pas, et je ne sais pas où : (princ "\nSélectionner la ou les lignes de pli (entité : \"ligne\") à \"encocher\" :") (if (setq ss (ssget '((0 . "LINE") (62 . 1)))) (repeat (setq i (sslength ss)) (setq line (ssname ss (setq i (1- i))) DepLign (getpropertyvalue line "StartPoint") FinLign (getpropertyvalue line "EndPoint") PtA DepLign PtB (polar PtA (angle DepLign FinLign) LongCoup) PtC (polar PtB (angle DepLign FinLign) (- (distance DepLign FinLign) (* LongCoup 2))) PtD (polar PtC (angle DepLign FinLign) LongCoup) ) ;_ Fin de setq ) ;_ Fin de setq (if (/= (vlax-ldata-get line "DecoupPli") 1) (progn (setvar "cecolor" "7") (command "_.line" PtA PtB "") (command "_.line" PtC PtD "") (setvar "cecolor" "1") (command "_.line" PtB PtC "") (vlax-ldata-put (entlast) "DecoupPli" 1) (command "_erase" line "") ) ;_ Fin de if ) ;_ Fin de repeat ) ;_ Fin de if En fait, ça ne fait rien, même avec de nouvelles lignes : Commande: SZ_DecoupPli Sélectionner la ou les lignes de pli (entité : "ligne") à "encocher" : Sélectionner des objets: Spécifiez le coin opposé: 4 trouvé(s) Sélectionner des objets: Commande: Et je ne peux pas changer la couleur de la ligne, elle doit toujours être rouge. Encore merci pour ton aide. -
Bonjour à la communauté. J'ai fais un petit bout de code qui réduit de 3mm les lignes rouges sélectionnées... Mais après avoir partagé ce code avec mes collègues, il ont fini par traiter plusieurs fois certaines lignes, mais pas toutes... J'ai donc pensé à attribuer un (vlax-ldata aux lignes traitées, pour ne pas refaire ce traitement à nouveau... Donc, mon petit code ne fonctionne pas, et je ne sais pas pourquoi... (setq n 0) (princ "\nSélectionner la ou les lignes de pli (entité : \"ligne\") à \"encocher\" :") (setq Select (ssget (list '(-4 . "<AND") '(0 . "LINE") '(-4 . "<OR") '(62 . 1) '(-4 . "OR>") '(-4 . "AND>")))) ;;; ne sélectionne que les "lignes rouges" (while (setq ssObj (ssname Select n)) (if (/= (vlax-ldata-put ssObj "DecoupPli" 1) "1") (progn (princ "\nTraitement des lignes......") ;.... ;.... ;création de la ligne traitée (à ne plus toucher (vlax-ldata-put (entlast) "DecoupPli" "1") ;... ;Suppression de l'ancienne ligne (command "_erase" ssObj "") ) ;_ Fin de progn ) ;_ Fin de if (setq n (1+ n)) ) ;_ Fin de setq; Je pense que c'est mon ssObj qui devrait poser problème, mais je n'arrive pas à en être certain...
-
Comment dessiner une polyligne 2D avec une liste de coordonnées ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Olivier et merci pour ta réponse. J'en rage ! ! ! Je fais des allers/retours sur DA-Code depuis ce matin (pour les boucles, les listes...) mais je n'ai pas pensé à ça ! ! Désolé didier... -
Comment dessiner une polyligne 2D avec une liste de coordonnées ?
DenisHen a posté un sujet dans Débuter en LISP
Bonjour à la communauté. J'ai un petit Lisp qui fait quelques opérations sur des coordonnées. J'en obtiens une liste de coordonnées : Ces polylignes sont des "contours", donc 3 sommets au minimum, mais ils peuvent en avoir bien plus. Je vous avoue que si une ou un CadXpien aurait ça dans sa musette, je suis preneur, car là, je suis bloqué. Bien à toi la communauté. Denis... -
Décalages de polylignes, mais pas les mêmes partout
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour à vous et merci pour votre aide. Juste pour info (pour les futurs lecteurs), le fichier de (gile) est "PolySegments.lsp" et la commande est "ofsegs". Encore merci à vous. Denis... -
Redéfinir un contour (polyligne) avec des intersections (lignes).
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour à la communauté. Un très grand merci à vous pour votre aide. Je vais pouvoir faire quelque chose avec tout ça. Encore merci à vous ! Denis... -
Redéfinir un contour (polyligne) avec des intersections (lignes).
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Un Super merci à toi BonusCad... Mais je pensais à autre chose... Juste couper ce qui ne me plait pas... Comme dans l'exemple... Mais je tenais à remercier BonuscCAD pour les centaines d'aides et de soutiens qu'il nous a offert depuis des années... -
Redéfinir un contour (polyligne) avec des intersections (lignes).
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Ô l'ami; Maître @didier Il m'a semblé être claire... Mais nul n'est parfait... Et je sais que je le suis rarement... Ô combien ! ! ! Le but ultime reste très simple, voir simplissime (en théorie, je l'admet)... En gros et pour essayer de faire au plus simple : - faires des petites encoches sur une polyligne fermée depuis des intersections de "lignes". - Je ne vois pas quoi dire de plus... -
Décalages de polylignes, mais pas les mêmes partout
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour @didier. Merci pour ta réponse. Je n'ai pas ce lisp de (gile, et pourtant), où puis-je le trouver ? -
Redéfinir un contour (polyligne) avec des intersections (lignes).
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour à vous, et merci de votre intérêt. @Luna : merci de me répondre. Mais je savais que j'aurais un peu de mal à me faire comprendre : En fait, les encoches peuvent être de n'importent quelles formes, elle ne servent qu'à localiser les plis de la matière. Si tu préfère dessiner un petit cœur, pas de problème 😁 ! Effectivement, mon plus gros problème viendra de la perpendicularité entre le segment de la polyligne et la ligne... Mais pour faire simple, l'encoche existe pour montrer l'endroit du pli, à l'œil du "plieur"... On est très loin du millimètre, et beaucoup plus proche de : "Hep ! C'est là que ça se passe !". L'encoche est une localisation visuelle, rien de plus... C'est juste un doigt sur une carte... LeeMac m'a souvent sauvé la vie (comme d'autres, d'ici aussi, encore mercis à eux) mais je ne vois pas encore comment m'en sortir. Bien que j'ai quelques pistes... Mon plus gros problème réside dans les "TRIM" (ajuster le contour autour du pli), j'ai toujours fuis ce problème en redessinant la totalité des entités plutôt que de retoucher à celles existantes...Ne serait-ce pas une fuite en avant ? Ensuite, Maître (gile) a développé un "calcul d'intersection" entre deux ligne (ou vecteurs, je ne sais plus), (On ne le remerciera jamais assez) mais je n'ai jamais utiliser de fonction "géométriques"... Je pense que je vais devoir m'y coller... Qu'entends-tu par "bulge" ? @didier : salut l'ami : Oui, dans mon exemple, ma polyligne n'est pas fermée, car ça fait parti de l'énoncé, et que je ne souhaitais pas faire un dessin de 3 ou 5 mètres sur 30 cm. Raison pour laquelle mon exemple ne représente qu'une partie de mon dessin, mais est exprimé dans l'énoncé. C'est mon "Prolégomène" à moi (un grand merci pour la découverte de ce mot grâce à ton site). Désolé, le dessin vient d'un collègue, tu as raison (une fois de plus), les lignes vertes auraient du intersecter le contour en noir... On peut reconstruire les lignes et les polylignes tant qu'on veut (c'était mon choix primaire), elle n'ont aucun intérêt "historique" dans la base du DWG. Les notas "Pourquoi pas" existent juste pour expliquer que, cette éventualité est envisageable... Encore un grand merci à vous, pour votre enthousiasme à mon problème... Il me semble que Maître Alain Bashung disait : "Je vous souhaite la force et l'amour"... Je vous souhaite aussi tout ça, voir plus... -
Salut Geo34. On ne peux pas rivaliser avec l'IA (on a des neurones, nous, pas elle), mais j'avais un petit truc, il y a quelques années. Mais ça va être coton de te le donner, il faisait parti d'un ensemble de procédures plus chiants les uns que les autres plus complexes que les premiers ! ! ! Une énorme prise de tête ! ! ! Mais si tu insistes, je te les envoi, mais il va falloir que tu fasses un gros tri... (que j'aurais déjà commencé, d'ailleurs... Je vous souhaite la Force et l'amour. Denis...
-
Bonjour à la communauté. Voilà, un ami (toujours le même : Damien l'ami ou Antoine son chef) m'a posé la question : "Est-ce possible de décaler une polyligne avec une différence entres ses segments ?". On s'est donc attelé à un petit croquis... : Je lui ai répondu que "pas à ma connaissance", mais ça devrait pouvoir se "programmer"... J'y ai donc pensé longuement à ma solution... Je me suis donc imaginé le futur "mode d'emploi" : - sélection de la polyligne fermée à décaler, - Est-ce un décalage Générale (pour tout les segments) ou Individuel (différent à chaque segment) ? - G : Sélection de la polyligne, puis, saisie du décalage, en positif ou en négatif, selon le sens de la polyligne (rien de compliqué), - I : Sélection de la polyligne, et, ensuite, identifier les différents segments pour demander le décalage adéquat, positif ou négatif. (rien de plus compliqué, pour moi). Je suis ouvert à toutes propositions de développement, mais n'oubliez pas que je débute (oui, depuis des années, et alors ! ! 😄 ). Une excellente année à toi, la communauté, et surtout, la force et l'amour... Denis... DécalagesComplexes.dwg
-
Redéfinir un contour (polyligne) avec des intersections (lignes).
DenisHen a posté un sujet dans Débuter en LISP
Bonjour à la communauté. Un ami m'a demandé si je pourrais faire un truc, après explications, je pensais que non, mais après réflexions, pourquoi pas... Voilà le visuel : Et les explications : Cet ami travaille dans une métallurgie, il découpe des tôles (en aluminium généralement) et les pli après. Après la découpe, ce n'est pas évidant de savoir où plier ces tôles. Mais il existe une astuce, une petite encoche (1.5mm suffit) sur le bord de la tôle pour vite localiser ce pli (les petits cercles rouges)... Cette encoche ce fait lors de la découpe, qui elle-même est "programmée" via une fonction développée (par une société qui n'existe plus) dans AutoCAD... Avant de lancer cette application, il aimerait que les petites encoches soient faites "automatiquement", car il y en a parfois des centaines ! ! ! J'avais une solution : dessiner des cercles à chaque extrémité des lignes, mais il m'explique que ce n'est pas tellement mieux que "rien". Donc, j'aimerais lui faire une petit Lisp, mais je tombe sur plusieurs petits problèmes... Je sais pertinemment que personne n'a ce truc dans un tiroir, mais si vous pouviez me donner quelques directions pour le faire... J'avais pensé à : Opérateur : - cliquer sur le contour (en noir), - cliquer sur les plis (en vert), Lisp : - je cherche encore... Je suis ouvert à toutes propositions de développement, mais n'oubliez pas que je débute (oui, depuis des années, et alors ! ! 😄 ). Une excellente année à toi, la communauté, et surtout, la force et l'amour... Denis... CoupurePourPlis.dwg -
Comment raccourcir une ligne d'une de ses extrémités.
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut (gile). Alors celle-là, je ne la connaissais pas du tout ! ! Un super grand merci à toi... -
Comment raccourcir une ligne d'une de ses extrémités.
DenisHen a posté un sujet dans Débuter en LISP
Bonjour à la communauté. Je ne sais pas si quelqu'un aurait ça dans ses tiroirs, mais je cherche à raccourcir de 1.5 cm (par exemple) un coté d'une ligne en cliquant sur la bonne moité de cette ligne. Je pensais le faire seul, mais je suis tombé sur plusieurs problèmes (notamment les codes DXF 10 et 11, car dans la liste des codes DXF de l'entité "LINE", j'ai deux DXF 10 et pas de 11, le choix de l'extrémité de la ligne selon la position du clique et la méthode pour la raccourcir). Il y a très longtemps, j'avais bidouillé un truc avec entmake et/ou entmod pour retoucher des codes DXF d'une entité. Je pense que ce serait une bonne solution, mais je n'en suis pas certain. Bref, si ce code existe, je suis volontaire, sinon, je chercherais à le faire, mais je n'ai pas de solution en tête pour l'instant. Santé et bonheur à vous. Denis... -
Bonjour Christian. Effectivement, très judicieuse remarque. Je vais adopter cette habitude... Mille Mercis ! Denis...
-
Oui, tu as une fois de plus raison. Je pense avoir confondu avec vl-sort. Du coup pourquoi inverser cette liste ? Mais je ne te demande pas forcement une réponse, je vais la chercher, quelque part, et je la trouverais peut-être. Et même si je ne trouve pas la réponse, j'aurais cherché... 😉 Encore merci...
-
Bonjour à la communauté. Désolé pour le temps de réponse, une période difficile pour nos foies ! ! ! @didier : on en avait déjà parlé il me semble, quand je parle d'idée et d'en profiter pour rouler en voiture de luxe, c'est bien évident que rouler en Porche ne m'intéresse absolument pas, ma petite Clio me convient très bien... Et Ray Tomlinson est bien la symbolique du truc (inventeur/donateur), on ne dépose pas un brevet dans un domaine inconnu et "sans avenir" dans les états d'esprits de l'époque... Pour ma part, j'avais déjà pensé au "Drive", au milieu des années 90... Au début d'internet, je me souviens de mon modem (un USRobotics, à 14.400 bauds, une révolution à l'époque). Un petit logiciel fait sous VB6 qui permettrait de faire sa liste de course (avec mise à jour des pris via le NET), l'imprimer et faire ses courses avec... Puis, quelques mois plus tard, faire une commande livrable (j'habitais Paris à l'époque, j'allais faire mes courses et je passais à une caisse "spéciale" qui m'emballait le contenu du caddie et me livrait peu de temps après... Quelques mois après, j'avais eu l'idée de ce qu'on nomme maintenant le "Drive"... Quand je dis, si j'"avais su développer à l'époque" (comme un site WEB), c'est que mon idée était forcément bonne, car elle existe bien maintenant, et partout (mais je ne pensais pas créer Amazon 😉 )... Mais sans connaissance, je ne pouvais pas me rendre chez les grands distributeurs (Auchan, Leclerc...) pour leur dire : "Les gars, j'ai une idée qui va vous faire gagner des millions !" et ne leur présenter que l'idée... @(gile) : je comprends tes explications sur Lambda de plus en plus vite, peut-être suis-je de plus en plus rapide 😄 ! Là où j'ai tout de suite pigé le truc, c'est la différence (que tu as très bien souligné) entre : (defun sqr (x) (* x x)) et (lambda (x) (* x x)) Tes explications toujours très concises, et c'est, je pense, ce qui me perd parfois. Et tu fais bien de parler de Mapcar, car elle est très souvent associée à Lambda... Par contre, avec : (defun EstUnGroupe42 (x) (= (car x) 42)) (reverse (vl-remove-if-not 'EstUnGroupe42 entlist)) Tu m'as perdu 🤕, mais je pense que c'est fait pour supprimer tout ce qui ne fait pas parti du groupe 42, et le reverse, c'est pour trier la liste par ordre alphanumérique ? ? @Luna : je n'en démord pas, tu es d'une aide très précieuse, et très pédagogue. Tu es la digne héritière des grands de ce site, qui ont professés des années et qui le font encore (je pense aussi aux grands qui ne sont malheureusement plus là), et pour répondre à didier, tout le monde n'apprends pas à la même vitesse, et je fais parti de ceux qui restent en première 😅 ... En tous cas, un grand, un énorme, un immense merci à vous tous... Denis...
-
@didier : je suis désolé de te décevoir didier, (même après avoir progressé depuis le rien que je ne connaissais pas, depuis le début des années 90), en tant que débutant, puis du DIESEL, puis le Lisp et ensuite le DCL, j'ai toujours plus ou moins réussi à faire ce que je voulais : n'est-ce pas la, la finalité du truc ? Mais, je demande souvent à ceux qui savent comment ils font... Je prends toujours connaissance des méthodes de mes maîtres (dont tu fais parti, et oui), avant de me faire ce que j'aimerais, désolé si c'est une mauvaise idée... Je pensais que c'étais une bonne méthode, un peu comme celle des compagnons... Je comprends ton agacement (légitime), mais si je ne peut pas poser une question de Lisp ici... Où le ferais-je ? Je ne suis pas fort dans la créations de codes (je l'ai maintes fois prouvé), j'ai des milliards d'idées de programmes, mais si je savais comment les développer, je roulerais en Bagnole de luxe... Ton site (didier) est un support incontournable, que je ne peut oublier, je ne fais rien sans le consulter. Mais mon cerveau doit être limité, ou pas, je n'en sais rien, mais nous ne sommes pas tous égaux devant un code... Je pensais que tu le savais, que tu t'en doutais, ou que tu le comprendrais... Désolé de ne pas être à la hauteur... Mais je cherche à l'atteindre... 😉 @Luna : un super grand merci pour ce code... Je le lis dans tous les sens, et il reste une des énigmatiques énigmes avec laquelle j'ai toujours eu du mal (et je sais que je ne suis pas le seul) : les lambda et les mapcar... Surtout avec ton : "(reverse (vl-remove-if-not '(lambda (x) (= (car x) 42)) entlist))" Les lambda (comme les mapcar) resteront toujours pour moi un des grand secret inaccessible du Lips, à mes yeux... En tous cas, merci à vous deux (comme aux autres membres) pour tout ce que vous avez fait, faites et feront probablement pour nous... Très cordialement; amicalement, et comme pourrait dire "Maîtresse Luna" : Bisous, Chat va bien ce passer...
-
Oh la Vache ! ! ! @Luna : c'est impressionnant Que dire de plus, parfait ? Mais mon problème, car il en réside un, c'est que ton code est beaucoup trop parfait pour moi... Je ne pourrais jamais l'arranger pour les besoins de mon ami... Mais quelle perfection, et dans la finalité, et dans le code, son écriture, sa syntaxe... Tu m'impressionnes de jours en jours... Plus tu réponds, plus je suis dénué devant tant de logique. Ton travail est toujours impeccable... C'est impressionnant (et énervant 😉 )... Mais je vais tout de même tenter de le comprendre... Je suis très loin d'avoir ton niveau... Mais qui ne tente rien... @didier : je me doutais bien que tu allais être dans le coin... Et comme toi, je suis sans bras devant Luna... Qui est d'une aide tellement précieuse... Bon, je regarde le code de Maîtresse Luna, dont je n'en comprends pas le quart, pour l'instant... Mais je n'ai pas dis mon dernier mot... Encore merci à vous... Et heureusement que Maître (gile) n'a pas répondu, il aurait fait ça en 10 ou 15 lignes, et là, j'étais définitivement perdu à jamais ! ! ! Encore un grand merci à vous... Maintenant, j'ai plusieurs semaines pour comprendre le code... Toute ma cordialité à la communauté. Denis...
-
Bonjour à la communauté. Un ancien collègue m'a demandé si j'avais dans mes tiroirs une macro pour mettre à plat des coupes, et je n'ai rien là-dessus, mais il m'explique : Il travaille maintenant pour une société de métallurgie et ses coupes représentes des profils avant pliages (l'essentiel de son travail). La matière "première" est soit un rouleau d'aluminium (ou autre métal) soit des plaques. Il dessine le profil avec une polyligne qui comporte des longueurs, des angles, des rayons... Ce qu'il aimerait, c'est le développé du profil, une seule donnée est absente du développé : la largeur de la matière. Dans l'image suivante (et le DWG joint), en bas : le profil, en haut : le développé. Pour principe, son sens de lecture commence de droite à gauche et de bas en haut. Donc, dans son sens de lecture, tout ce qui va à droite, est de signe positif, si non, de signe négatif. Un peu comme si le SCU avait la même origine que le premier point et le sens des Y serait la direction du premier segment. Dans cet exemple, le rayon est positif, mais s'il allait vers le haut, il serait négatif. Je ne sais absolument pas utiliser les polylignes pour en connaitre leurs données, donc : Si quelqu'un aurait un truc dans ce genre, ou pas très éloigné, je pourrais peut-être retoucher le code pour faire ce qu'il me demande. Par contre, je ne sais pas ce profil peut commencer par un rayon ou s'il peut finir par un rayon. Bien à toi la communauté... Denis... MiseAPlat.dwg
