-
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
-
Formatage de Mtext... Encore un petit truc :exclam:
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Dans le même que toi ! ! ;) car entre "The wall" et "Meddle", il s'est passé 8 ans... Au fait, qu'a fait notre WebMaster à cette époque (on va le taquiner un peu... Mais il a charge d'âme sur ce vaisseau, on ne peut se résoudre à le piéger...Son site me sauve trop souvent la "vie"....) PFFFFFF . J'étais parti dans la déconne..... Désolé ... On parle sérieusement.... Alors, Donc ? PPPfff c'est vrai, c'est chiant le sérieux... Mais bon, je me suis acheté le bouquin de "Compte en sous" Et je me suis aperçu TRÈS VITE que ce bouquain à 10 ans ! ! Et qu'on ne peu pas chercher les évolutions d'AutoCAD 2004 ou 2005 ou 2006 ou 2007 avec un bouquin qui parle de MSDOS 3 ? ? Avec la gestion des 512Ko pour éditer un fichier texte d'une dixaine de kilo... C'est la moitier du bouquin... L'autre moitier cherche à changer "Pouette" en "Truc" dans le bloc "Taratata"... C'est vrai, ce bouquin m'a appris PLEIN de choses... Mais c'est un livre qu'il FAUT mettre à jour... Denis... -
D'après ce que j'ai compris... Le MNS est indissociable des fichiers "menu" ? Non ? Mais apparament, tu es en réseau... Donc, tu peux placer tes fichier "éditables" dans un répertoire commun (lecture/écriture autorisée) et placer ton MNS (réservé à la lecture/ écriture interdite) dans un répertoire protégé dont tu as le mot de passe. Seul la lecture est possible... Mais là, je ne sais pas comment réagira AutoCAD si on ajoute un icone dans ce menu... Le sauvegardera-t'il ? Le recompilera-t'il ? , Seul les "GRAND" de ce site, j'ai nommé : "Les grands" Denis...
-
Mais, au fait, Fraid, tu travail en 3D ? Denis...
-
Formatage de Mtext... Encore un petit truc :exclam:
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Y'a pas à redire... "Echoes" est magique ! ! Je pose une question, j'y répond ( je sais, je suis "con") Et le Pb est résolu ! ! ! Waow, voilà un sujet vite torché ! ! J'espère qu'il servira... Denis... ;) -
Formatage de Mtext... Encore un petit truc :exclam:
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
PPPPFFFFFFFFFFFF !! !! !! !! !! !! J'ai trouvé ! ! "\\L{......}.......\\l" soulignera tout le texte jusqu'à un \\l "{\\L bla bla.... }....blabla" seul ce qui sera entre les accolades sera souligné... Me trompe-je ? (là, c'est "Echoes", et c'est géant, même sans pétard ;) En plus, j'ai rangé mes chemises à fleurs...) Denis... -
Bonsoir à tous... Bon, j'en ai compris un peu plus sur le Mtext... Par exemple, il faut doubler le antischlas ("\") pour la mise en forme, exemple : Mais, le "\\L" (en VBA : "\L") souligne, et le "\\l" (en VBA : "\l") l'annule, sauf dans ce cas... et je ne comprend pas pourquoi... (setq TxtSec "AC") (setq TxtNum "128") "\\L{\\fArial|b0|i0|c0|p34;Cadastre :\\l\nsection }{\\fArial|b1|i0|c0|p34;" TxtSec "}\n{\\fArial|b0|i0|c0|p34;numéro }{\\fArial|b1|i0|c0|p34;" TxtNum "}")) Ca donne ça : Cadastre : section AC numéro 128 au lieu de Cadastre : section AC numéro 128 Alors messieurs ! ! La balle est dans votre camps ! ! Messieurs les "ronds de cuir" ! ! (merdre, Je me prend pour Didier ! ! ;) ) Bon, si quelqu'un a une solution... Merci à Zebulon_, qui m'a aidé à trouvé ce truc... Denis...
-
Salut cedwit, Si tes épaisseurs sont connus, si ce sont toujours les même, 0.10, 0.12, 0.15, 0.18 ou 0.20..... Tu peut te faire des menus... Tu lance la commande "_.pline", puis, grace à une ligne dans le menu, tu dicte à AutoCAD quel va être ton sommet : épaisseure de début du segment : 0.12 épaisseur de fin du segment : 0.20 Celà fonctionne seulement si toutes tes épaisseurs sont communes (si tu utilises toujours les mêmes)... J'ai déjà des commandes (pour une interpolation de Z) dans un menu... C'est super simple et super rapide à utiliser... Je ne sais pas si tu y avais penser... Voilà... Denis...
-
WAOW ! ! Tramber, pour une fois (de plus...) Je suis sur le Q ! ! Ca fait longtemp que je cherchais un truc comme : (defun c:mapoly (/) (setvar "CMDECHO" 1) (setq ETL (entlast)) (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause) ) ;_ Fin de while ) ;_ Fin de command (if (/= (cdr (assoc 5 (entget (entlast)))) (cdr (assoc 5 (entget ETL)))) (command "_.change" (entlast) "" "_properties" "_color" 3 "") ) ;_ Fin de if (princ) ) ;_ Fin de defun Avec ça, je vais peut-être controler mes épaisseurs de mur... Mais aussi, pour les lotissement, faire, en un coup, plusieurs étapes qui suivent la construction de la première polyligne (contour)... Un million de mercis à CadXP ! ! (je ne dis plus à qui, CadXP est un tout). Tiens, je suis en train de relire avant de publier... J'ai encore trouvé une autre utilisation à cette routine... Waow... Je vais faire péter "Live at Pompeï" ! ! ! (tiens, je vais chercher le CD...) Merci encore, Denis...
-
Bonsoir à tous... Voilà, je créé ce sujet que j'ai à peine commencé à la fin de "aide sur un progs" qui n'avait pas grand chose à voir avec le mien... Je m'en excuse... Quand je suis lancé dans un problème, j'oublie souvent celui des autres... Ma concentration est limité... Je vous présente toutes mes "confuses"... Bon, ceci étant fait, dans le cadre d'un gros lotissement (avec une cinquantaine de lots), j'ai fais des "petites" routines pour nous aider à établir ce lotissement (tout le monde sais ce que c'est ?). Toutes créent un calque et lance une commande ou une routine, mais deux reste à développer, et je vais devoir m'y mettre tout le week-end... (Pfffff....) J'écouterais un petit Floyd pour faire passer la pillule ;) Je vais essayé de faire simple... Mais vous verrez comme moi que ce n'est pas facile... Prenons l'exemple pour le lot 4 : Etape 1 : déclaration du lot courant par une routine existante ( avec (vlax-ldata-put... Merci CadXP ;) ) Etape 2 : il faut une polyligne pour dessiner le contour du lot : - création du calque "Lot 4 (contour) en rouge (par routine existante) - lancement de la commande _.pline Etape 3 : il faut écrire le numéro du lot à l'intérieur... - création du calque "Lot 4 (numéro) en blanc (routine) - lancement d'une routine existante : on clique un point et elle écrit le texte "Lot 4" automatiquement Etape 4 : il faut écrire la superficie du lot... - création du calque "Lot 4 (superficie) en jaune (routine) - lancement d'une routine : on clique la polyligne du contour puis un point et elle écrit la superficie. Etape 5 : il faut coter la polyligne : - création du calque "Lot 4 (cotation) en jaune (routine) - c'est en cours... Mais pour l'instant, je fais des cotations linéaires de chaque sommet de toutes les polylignes ! ! Une routine est en cours... Mais je cale... Etape 6 : il faut teinte le périmètre du lot : - création du calque "Lot 4 (trame) en ....... (routine en cours) - Je le fait avec une Multiligne... Mais je n'arrive pas à en créer depuis Lisp (depuis VBA nom plus d'ailleurs ;) ) Etape 7 : il faut identifier les coordonnées de chaque sommet du lot (pour le document d'arpentage et l'implantation) : - création du calque "Lot 4 (coordonnées) en rouge (routine) - Je le fait avec sommet par sommet grace à une routine récupéré sur le net de Serge MILLES (http://serge.milles.club.fr/index.html) Voilà, c'est tout l'historique du dessin d'un lotissement... Sans compter les Pb d'urba et tout et tout..... Merci pour vos éventuelles réponses... Tout est bienvenue, même des bout de routine ou des trucs pas finis ! ! Merci aussi à CadXP, sans quoi, rien n'aurait pu exister... Si non, bon week-end à tous... Denis... Qui a du pain sur la planche ( <- clin d'oeil au décapode, qui me lira peut-être)
-
Désolé (gile), J'avais oublier. Je suis impardonnable, j'ai ce lien dans mes favoris... La console VisualLISP ? la fenêtre avec les "_$" ? J'y vais... Encore désolé... Merci, Denis...
-
Bonjours à tous, J'essai depuis longtemps de faire une routine qui ressemble étonament à la routine de bonuscad, sauf que, dans la mienne, chaque segment doit être coté... Je clique une polyligne, et tous les segments ont une cote en leur milieu.. (cote, cote associative ou texte) orienté selon la direction de la cote et à l'intérieur de la polyligne, car elles sont toujours fermées... Et une 'tite question... Dans l'aide, j'ai Mais en traduction, il fait quoi ? Il fait une opération dans plusieurs listes ou il regroupe en une liste plusieurs autres ? Car ce qui me taquine, c'est de comprendre ça : (append '((0 . "*POLYLINE,LINE,ARC,CIRCLE,ELLIPSE,SPLINE") (-4 . "")) (list (cons 8 name_lay)) ) dans la routine de bonuscad... Merci, Denis...
-
Merci mille fois Bred, mais ce sont des codes DXF... Mais je créé mon texte par (command... comme ça : (command "_-mtext" "_none" p1 "j" Just "h" 1 "_r" rot "_w" "0.00" Texte "") Où Texte = "Cadastre :\nsection AC\nnuméri 125\nMonsieur LAGAFFE Gaston" J'aimerai que "Cadastre :" soit souligné et que "AC" et "125" soit en gras comme : Cadastre : section AC numéro 125 Monsieur LAGAFFE Gaston Je ne sais pas faire autrement qu'avec (command... Merci encore, Denis...
-
Merci Bred... Mais j'aimerais le reste... gras, italique et souligné Et aussi, si on peut jouer sur la taille de certain mot... Merci, Denis...
-
Bonjour à tous, J'ai un tas de texte à mettre en forme... En VBA, je sais à peu près le faire, mais en Lisp, ces "chaines de contrôle" ne fonctionnent pas du tout. Je m'explique : la chaine de contrôle "\P" correspont à "retour chariot" en VBA et s'insert directement dans le texte. Exemple : "Cadastre :\Psection AC\Pnuméro 156" donnera : "Cadastre : section AC numéro 156" Mais avec le Lisp, ces chaines n'on aucun effets... Quelqu'un a-t'il une explication ? D'avance merci... Denis...
-
Salut (gile)... Bien sur qu'elle sert à quelque chose.... Elle sert à ma faire penser à ne pas oublier le setq... ;) Aaaaah.... Il est si bon de rire, parfois... J'ai donc maintenant : (if (<= rot 400) (setq rot (- rot 400))) Mais je ne sais pas si cela sert à grand chose... Puisque un texte à la même orientation dans ces deux cas : angle = 525 et angle = 125... Mais celà dit... Je te remerci encore beaucoup... Denis...
-
Bon, j'ai, me semble-t'il, résolu le problème... Enfin, "j'ai"... c'est plustôt "vous" mais c'est MOI qui ai fais le "copier/coller" ;) Je stock donc mon angle comme ça : (setq AngScu (- 500 (* 200 (/ (angle p1 p2) pi)))) (if (<= AngScu 400) (- AngScu 400)) (vlax-ldata-put "Phalene" "AngSCU" AngScu) Et je le récupère comme ça : (if (= (setq rot (getorient p1 (strcat "\nOrientation du texte :"))) nil ) (progn ;* * * * * * * Orientation horizontale (setq rot (- (vlax-ldata-get "Phalene" "AngSCU") 100)) ) (progn ;* * * * * * * Orientation alignée (setq rot (- 400 (* 200 (/ rot pi)))) (if (<= rot 400) (- rot 400)) ) ) Oui, je sais, soustraire l'angle à 500, c'est nul, je suis d'accord, mais l'ordre des "setvar" de ma routine doit mettre l'origine des Y à l'EST et pas au NORD... ou c'est le sens d'AutoCAD... ou un truc comme ça... Mais comme je suis SUPER à la bourre dans mon boulo... je n'ai pas le temps de chercher le pourquoi du comment. Je le ferais plus tard... ( bref... jamais) ;) Merci BEAUCOUP à TOUS ! ! Denis...
-
Ok, bien reçu... Merci encore... Denis...
-
Merci beaucoup (gile). Mais, est-il nécessaire de passer en grade ? Car l'angle cet angle n'est jamais saisi directement (au clavier) par l'opérateur... On travail en grade parce qu'on est géomètre... Mais cela nous sert uniquement quand on demande une distance... Merci encore et bonne journée. Denis...
-
Bonjour à tous... Bien vu (gile), j'ai réparé le Net au boulo et aujourd'hui, j'ai amené le mot de passe pour DenisH... Bon, J'ai en fait deux "petits" problèmes... Le premier : je demande à l'opérateur de saisir 2 points, qui me donneront la direction pour orienté le dessin parallèlement au carroyage. Je change la résol et la rotation du plan (variable ANGBASE, je croix), pour avoir un curseur parallèle au carroyage et un carroyage parallèle à l'écran. (setq p1 (getpoint "\nPoint de départ : ")) (setq p2 (getpoint p1 (strcat "\nDirection des X :"))) Ensuite, je stock cet angle dans le dessin mais... AutoCAD ne stock pas ce qu'il me dit : (vlax-ldata-put "Phalene" "AngSCU" (angle p1 p2)) (princ "\nAngle en Data :") (princ (vlax-ldata-get "Phalene" "AngSCU")) L'angle p1 p2 est de 203.59gr, mais lors du princ, AutoCAD me l'affiche en radian... Donc, quand je récupère cette variable dans d'autres lisp, mon angle n'est pas comme il le faudrait : (if (= (setq rot (getorient p1 (strcat "\nOrientation du texte :"))) 0 ) (setq rot (vlax-ldata-get "Phalene" "AngSCU")) ) Et mon texte (par exemple) n'est pas parallèle au carroyage mais presque (la valeur en radian donne un tout petit angle en grade si on ne le converti pas) (command "_-mtext" "_none" p1 "j" Just "h" 1 "_r" rot "_w" "0.00" Texte "" ) Ca, c'était mon premier problème, le deuxième est beaucoup plus simple (heureusement :) ) : Une fois la saisie des deux coins de carroyage faite, je saisi la rotation de l'angle de "RESOL" et AutoCAD me dit : Et mes textes, si j'utilise la variable "ANGBASE" se retrouves à l'envers... Je comprend AutoCAD, qui n'a pas besoin d'un ANGBASE supérieur à 100... Mais ma direction peut aller de 0 à 400 ( où 400 sera ajusté à 0, et là, c'est Ok pour moi). Donc, voilà mon problème... Je demande à l'opérateur de cliquer sur le coin "BasGauche" du carroyage, puis le coin "BasDroite". J'oriente la vue pour que le carroyage soit parallèle au bas de l'écran, je stock cet angle dans le dessin. Et plus jamais l'opérateur n'aura à se soucier de l'angle avec le SCU pour écrire un texte horizontal... J'espère avoir été compréhensible... Ce n'est pas facile d'expliquer ce qu'on veux faire entre AutoCAD, le LiSP et la saisi, à des personnes qui n'ont pas forcément la même méthode de travail... Merci encore à tous... Maintenant, au boulo comme à la maison, c'est DenisH... ;) (Il faudrait que je demande à Patrick d'annulé "Deleligne", ainsi que "CabinetD" qui était moi et un collègue) Voilà, sur ce, je vous souhaite, à tous, une bonne journée... Bien profiteuse... Denis...
-
Ok m'sieur (gile) ;) Mais je pensais que pour avoir un résultat probant, il fallait au moins combiner deux fonctions... Et comme je ne sais pas encore exactement ce qu'elles font... Mais je vais faire tes testes (qui me semblent beaucoup plus intéressants en te lisant)... Merci mille fois... Denis...
-
Et dans ça : (defun c:ptPlign (/ objet) (princ "\nSélectionnez une polyligne : ") (while (/= (type (cadr (setq objet (entsel)))) SYM) (princ objet) ) ) (le while ne sert strictement à rien, sauf pour la boucle... Je viens de le voir...) Je n'ai que des : entre autre... Bref, le résultat est toujours une liste... Ben alors d'où qu'il est où mon "symbole" ? :( Denis...
-
Merci bonuscad, selon ton conseil, j'ai fais çà : (defun c:ptPlign (/ objet) (princ "\nSélectionnez une polyligne : ") (while (/= (type (setq objet (ssget ":S"))) SYM) (princ "\nPolyligne sélectionnée") (princ (type objet)) ) ) Mais biensur, ça ne marche pas... Dans l'aide en anglais : Je ne vois pas où j'ai faut... Denis...
-
PFFFFFF ! ! Vraiment, là, j'ai "merdé" plein pot ! ! Merci (gile), Denis...
-
Merci (gile), ça me dégage vraiment le terrain ! ! J'ai donc commencé à faire..... des trucs... Pour essayé de comprendre.. J'ai ce petit truc (que j'ai récupéré) : (defun c:PtPlign (/ lst) (princ "\nSélectionnez une polyligne : ") (setq objet (car (entsel))) (if (or (= (cdr (assoc 0 (entget objet))) "POLYLINE") (= (cdr (assoc 0 (entget objet))) "LWPOLYLINE") ) ;_ Fin de or (progn (princ "\nFlag 1 : ") (princ (cdr (assoc 10 (entget objet)))) ) ;_ Fin de progn (princ "\nCe n'est pas un objet Cercle, Polyligne ou Polygone") ) ) Je ne sélectionne q'une entité et il me répond "(106.29 458.32)" bref, les dernières coordonnées de ma polyligne sélectionnée. Pour avoir les autre coordonnées, je suppose qu'il va falloir faire des caadr ou des caddr... toujours avec "assoc 10" J'en ai fait une autre plus complexe sur la base de la première... Rien ne fonctionnait... J'ai donc raccourci mla deuxième jusqu'à ressemblé à la première... Ben y-a rien à faire... Avec la deuxième, je peut sélectionné plein d'entité, ouis, je tape "entré" et...rien ! ! La voici : (defun c:Select (/ lst) (princ "\nSélectionnez une polyligne : ") (setq objet (car (entsel))) (if (or (= (cdr (assoc 0 (entget objet))) "POLYLINE") (= (cdr (assoc 0 (entget objet))) "LWPOLYLINE") ) ;_ Fin de or (progn (princ "\nSélection : ") (princ (cdr (assoc 10 (entget objet)))) (princ "\nDrapeau 3 : ") ) (princ "\nCe n'est pas un objet Cercle, Polyligne ou Polygone") ) ) Fauti'il réinitialisé quelque part le jeu de sélection ? Merci encore, même sans ça, j'ai pas mal de boulo avec les ssget et entget ! ! ! Denis...
-
Bonsoir à tous, Je me lance dans des sélections d'entité... Mais je n'arrive pas à comprendre ssget, l'aide est en Anglais et le livre de Contensou gère en même temps des "list". Si je comprend, la sélection d'une entité stock la totalité de ses propriété dans une liste. Ensuite, on "fouille" cette liste pour en sortir ce que l'on cherche... Mais les liste, je n'y ai encore jamais touché...Un truc ou une astuce pour me sauver ? Merci, Denis...
