Aller au contenu

DenisHen

Membres
  • Compteur de contenus

    4 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    21

Tout ce qui a été posté par DenisHen

  1. DenisHen

    Mise en page

    C'est drôle, j'ai l'impression qu'il est de moi (en partie), ce Lisp... Heureux d'être utile...
  2. DenisHen

    Modification Attribut

    J'ai retrouvé le logiciel : SuperAutoScript de CaderiX...
  3. DenisHen

    Modification Attribut

    Ok, pas de problème. 1.je pense que tu peux changer le contenu de l'attribut en sélectionnant tout les blocs concernés par la modification et changer le contenu avec la fenêtre des propriétés. 2.tu peux aussi utiliser la commande "RECHERCHER" (ancien texte, nouveau texte et Remplacer). Pour les autres dessins (.dwg), il existe un petit logiciel (j'ai oublié son nom) fait par un CadXpien qui ouvre une liste de .dwg pour y faire une suite d'actions...
  4. DenisHen

    Modification Attribut

    Salut. Je ne saisi pas très bien, tu veux changer le nom de l'attribut ou son contenu (valeur) ?
  5. DenisHen

    attribut vers attribut

    Salut à vous. Je n'avais pas réellement compris ta demande, effectivement, mon code ne te satisfait pas, et je comprend maintenant pourquoi. En gros, tu voudrais cliquer une valeur afficher de l'attribut d'un bloc, et l’insuffler comme valeur d'un autre attribut dans un autre bloc... Comme, je clique l'attribut "altitude" d'un bloc et le l'intègre dans l'attribut "Z" d'un autre bloc... J'ai bon ? Si c'est ça, je suis curieux d'avoir la réponse, car elle m'intéresse beaucoup... Avec toutes les aides que j'ai eu sur CadXP, je devrait pouvoir le faire... D’ailleurs, j’essaierai dès lundi matin... Si la solution n'a pas été trouvée d'ici là... Mais d'après ce que j'ai lu du code du grand bonuscad (et ce que j'en comprend), il devrait faire ce que tu demande... Mais je dois pouvoir "improviser" un bout de code parmi tous ceux que les aimables membres de CadXP m'ont distillé depuis toutes ces années... Force et Tendresse à tous...
  6. DenisHen

    attribut vers attribut

    Dans ce cas, tu peut augmenter les attributs : ;;; ********************************************* ;;; Transpose la valeur d'un attribut d'un bloc ;;; sur un autre bloc (pour x_all de CadXP.com) ;;; ********************************************* (defun c:Att2Att (/ ObjA Att ObjB) (setq ObjA (car (entsel "\nSélectionner le premier bloc :"))) (setq AttA (getpropertyvalue ObjA "NomAttributA_BlkA")) (setq AttB (getpropertyvalue ObjA "NomAttributB_BlkA")) (setq AttC (getpropertyvalue ObjA "NomAttributC_BlkA")) (setq Att... (getpropertyvalue ObjA "NomAttribut..._BlkA")) (setq ObjB (car (entsel "\nSélectionnez le second bloc : "))) (vl-catch-all-apply 'setpropertyvalue (list ObjB "NomAttributA_BlkB" AttA)) (vl-catch-all-apply 'setpropertyvalue (list ObjB "NomAttributB_BlkB" AttB)) (vl-catch-all-apply 'setpropertyvalue (list ObjB "NomAttributC_BlkB" AttC)) (vl-catch-all-apply 'setpropertyvalue (list ObjB "NomAttribut..._BlkB" Att...)) ) ;_ Fin de defun
  7. DenisHen

    attribut vers attribut

    Salut lecrabe, effectivement, ce ne sont pas des "vieilles" commandes...
  8. DenisHen

    attribut vers attribut

    Salut x_all, perso, je ferais un truc dans ce genre : ;;; ********************************************* ;;; Transpose la valeur d'un attribut d'un bloc ;;; sur un autre bloc (pour x_all de CadXP.com) ;;; ********************************************* (defun c:Att2Att (/ ObjA Att ObjB) (setq ObjA (car (entsel "\nSélectionner le premier bloc :"))) (setq Att (getpropertyvalue ObjA "NomAttributBlkA")) (setq ObjB (car (entsel "\nSélectionnez le second bloc : "))) (vl-catch-all-apply 'setpropertyvalue (list ObjB "NomAttributBlkB" Att)) ) ;_ Fin de defun Un grand merci au passage à Maitre (gile) pour getpropertyvalue et setpropertyvalue...
  9. Salut à vous, et merci pour votre aide... Patrick_35 : je me doutais bien qu'un nentsel serait présent... Bonuscad : pour la méthode de sélection, j'y ai pensé hier soir dans la bagnole, en rentrant chez moi... Encore merci à vous...
  10. Bonjour à tous. Voilà, aujourd'hui, je cherche à sélectionner plusieurs textes dans une XRef pour n'en faire qu'un seul (entrecoupé d'espace). Je pense que c'est là qu'il me faudrait un nentsel, mais je ne trouve pas grand chose dessus... Si quelqu'un a une astuce, une idée... Je suis preneur... J'ai commencé à écrire ça, si ça peut aider...: ;;; ************************************** ;;; Import d'un ou plusieurs textes issus ;;; d'un bloc ou d'une XRef ;;; ************************************** (defun c:ImportTxt (/ ssTxt SomTxt Rot Coord etx doc) (princ "\nDéveloppé par Denis H. (vers.1.0)") ;;; Active le début de l'undo (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq ss (ssget "_:S")) (if ss (progn (setq i 0) (while (< i (sslength ss)) (setq etx (entget (ssname ss i))) (setq ssTxt (cdr (assoc 1 etx))) (setq Rot (cdr (assoc 50 etx))) (setq SomTxt (strcat SomTxt " " ssTxt)) (setq Coord (cdr (assoc 10 etx))) (setq i (+ i 1)) ) ;_ Fin:while ) ;_ Fin:progn ) ;_ Fin:if (setq SomTxt (vl-string-left-trim " " (vl-string-right-trim " " SomTxt))) ;;; Partie en cours de développement... (command "texte" "j" "mc" "_non" Coord (angtos Rot) SomTxt) (command "_move" "_last" "" "_non" Coord pause) ;;; Désctive l'undo (vla-EndUndoMark doc) (princ) ) ;_ Fin de defun
  11. DenisHen

    un peu de maths

    Salut, le résultat est 42... Je plaisante bien-sûr... Je t'avoue que je bute aussi sur cette formule...
  12. Désolé, je ne t'ai pas précisé la méthode. 1.tu sélectionnes l'entité pour la rotation, 2.tu cliques sur le grip de base, 3.tu lances ma "macro" depuis un bouton... je m'en sers assez souvent...
  13. Salut à tous. D'abord, bonne année 2019 à toutes et à tous... Ensuite, pourquoi ne pas passer par du DIESEL et les grips ? Rot;Ref;@;\\ Et bon week-end à vous. Denis...
  14. Salut x_all et merci pour ta réponse. Mon problème est que je sélectionne plusieurs polylignes un peu dans tous les sens et seule la commande "joindre" s'en sort pour cette technique. je ne pense pas passer pouvoir par "pedit", mais je vais chercher dans ton sens... PS : je viens de faire quelques testes, ça fonctionne nickel... Encore merci...
  15. Bonjour à tous. Déjà, une heureuse et bonne année à tous... Ça faisait longtemps que je n'étais pas venu faire un tour ici, j'arrive de plus en plus à me débrouiller seul (avec da-code bien sur). Mais aujourd'hui, je pense avoir besoin d'aide... Mes collègues de terrain, qui font des relevés topo, me fournissent un dessin avec des LWPOLYLINE avec chacune leur propre élévation... Donc, impossible à joindre. Comme l'élévation ne signifie rien, je les place donc à 0.0. Ensuite, j'aimerais joindre cet ensemble de polylignes, quelles qu'elles soient (c'est souvent un groupe de polylignes qui se suivent et qui se jouxtent, avec une "presque" parallèle. Un peu comme un mur. J'ai donc écris ça, qui fonctionne très bien, mais ne me joint pas les lignes après traitement. ;;;***************************************************************** ;;; Supprime les élévations des polylignes et les joint entre elles ;;;***************************************************************** (defun c:Cofely_SupElev (/ ss i ent elst) (if (setq ss (ssget "_:S" '((0 . "LWPOLYLINE")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) ) ;_ Fin de setq (cond ((= (cdr (assoc 0 elst)) "LWPOLYLINE") (setq elst (subst (cons 38 0.0) (assoc 38 elst) elst)) (entmod elst) ) ) ;_ Fin de cond ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if (command "select" "p" "") <- Ce doit être sur ces deux lignes (command "joindre" "p" "") <- qu'est le problème... (princ) ) ;_ Fin de defun Si quelqu'un a une solution, une idée... Je suis preneur...
  16. DenisHen

    notion de l'inachevé ...

    Salut à tous... Que dire... En 1992, mon Windows tenait sur une poignée de disquette (20Mo maxi) et mon PC démarrais en moins d'une minute... Mon Word me permettait de lire la bible (oui, je suis cherchais à savoir) sur une disquette, maintenant, il me faut 4 Mo pour ce même best-seller... AutoCAD se lançais en quelques secondes (v14 sous DOS)... Maintenant, si je clique sur l'icône AutoCAD, je peux sortir me griller un clope, et à mon retour, ce n'est pas fini... J'ai un Lisp de près de mille lignes, je le charge... 1 seconde, je le lance... 3 secondes, je le relance... Et ben 3 secondes aussi... Bref, je m'en sers toutes les 5 secondes (j'ai fais le calcul), ben c'est deux tiers du temps de perdu... AutoCAD ne peut pas trouver un moyen de le compiler ou de le charger en mémoire ? Ce n'est qu'un texte de quelque octets ! ! ! Et je ne parle ici que d'AutoCAD. Ce n'est pas le seul à être comme ça... je fais de la MAO et j'ai des logiciels qui eux aussi prennent du temps à ce lancer... Mais gageons qu'ils chargent pas mal de plug-in, de ressources audios avec pour la plupart un accès à plusieurs disques durs... On ne peut mettre sérieusement plusieurs Mo (voir Go) de sons en mémoire... J'ai un téléphone portable (Xiaomi Note 4) qui demande presque deux minutes au démarage, juste pour téléphoner et écrire des SMS, je n'ai rien d'autre d'installé. J'ai un dino-portable au bureau, un vieux Nokkia... 20 seconde pour démarrer, et il fait la même chose... Mais je n'ai pas la petite image à coté du contact, qui me permet de savoir si je téléphone à une personne rose ou bleu... Essentiel comme aide ! ! ! En bref, nouveau Windows, donc, nouveaux PC de compétition, qui démarre dans le même temps que l'ancien, mais nouveaux logiciels, pour le nouvel OS, mais qui font la même choses... Entre nous, on lit mieux le contenu d'une fenêtre si ses bords sont arrondis ? Mon ancien patron (qui doit être à la retraite depuis un moment) disait toujours "le mieux est l'ennemi du bien"... je le comprends maintenant...
  17. Salut. +1 avec Zebulon_, j'utilise les (vlax-ldata-put et (vlax-ldata-get à outrance depuis que je les connais (grace à Maître (gile))... Et je n'ai jamais eu de problèmes... C'est du solide ! ! ! Ça ne dépend de rien, c'est en "dur" dans le DWG, c'est compatible avec tous les AutoCAD "survivants", je ne connais pas le plus vieil AutoCAD compatible, mais il doit être vieux...
  18. Salut. Perso, j'attend qu'AutoDesk fasse pareil que DraftSight, une série de petits "+" à gauche du code qui développe un(des) sous-ensemble(s)... Comme ça se fait sur NotePad++ ou autre... Mais pour l'instant, voici un petit exemple que j'utilise : ;;; ********************************************* ;;; Créé des géocarte en mode "Folio" ;;; Spéciale dédicace à La Lozère (CadXP.com) ;;; ********************************************* (defun c:MultiCarte () (princ "\nDéveloppé par Denis H. (vers.1.4)") (command "Geocarte" "h") (setq NbCarteHori (getreal "\nNombre de carte horizontales : ") NbCarteVerti (getreal "\nNombre de carte verticales : ") NbCarteHoriOrig NbCarteHori NbCarteVerti (+ NbCarteVerti 1) screen (getvar "screensize") ratio (/ (car screen) (cadr screen)) cen (getvar "viewctr") cen (trans cen 1 0) angle_rad (getvar "viewtwist") angle_rad (- (* 2 pi) angle_rad) h (getvar "viewsize") w (* h ratio) BasGauche (polar (polar cen (+ angle_rad pi) (/ w 2)) (- angle_rad (/ pi 2)) (/ h 2)) BasDroite (polar (polar cen angle_rad (/ w 2)) (- angle_rad (/ pi 2)) (/ h 2)) HautDroite (polar (polar cen angle_rad (/ w 2)) (+ angle_rad (/ pi 2)) (/ h 2)) HautGauche (polar (polar cen (+ angle_rad pi) (/ w 2)) (+ angle_rad (/ pi 2)) (/ h 2)) Xmin (car BasGauche) Ymin (cadr BasGauche) Xmax (car HautDroite) Ymax (cadr HautDroite) DeltaX (- Xmax Xmin) DeltaY (- Ymax Ymin) Haut (/ DeltaY NbCarteVerti) Larg (/ DeltaX NbCarteHori) ValDecal (* Haut 0.028) ;;NbCarteVerti (fix (* (/ DeltaY DeltaX) NbCarteHori)) ) ;_ Fin de setq (while (> NbCarteVerti 0) (while (> NbCarteHori 0) (setq PtGauche (list Xmin Ymin)) (setq PtDroite (list (+ Xmin Larg) (+ Ymin Haut))) (command "zoom" "f" PtGauche PtDroite) (command "imagegeo" "") (setq NbCarteHori (- NbCarteHori 1)) (setq Xmin (+ Xmin Larg)) ) ;_ Fin de while (setq NbCarteVerti (- NbCarteVerti 1)) (setq NbCarteHori NbCarteHoriOrig) (setq Xmin (car BasGauche)) (setq Ymin (+ Ymin (- Haut ValDecal))) ) ;_ Fin de while (command "Geocarte" "d") (princ) ) ;_ Fin de defun Sachant que j'ai des LiSP de plusieurs milliers de lignes ! !
  19. Salut. Perso, j'utilise la commande "_PDFIMPORT", et je n'ai jamais eu de problème (depuis la v.2018) avec des PDF 'vectoriels"... Est-ce ton cas ?
  20. Ce que j'en ai compris, c'est qu'un LiSP (procédure) est une routine d'AutoCAD (programme plus large)... ? Et une sous-routine, une "petite" routine appelée par une routine (ou plusieurs), avec ou sans arguments... De ce fait : (defun c:Rout1 () code ) (defun c:Rout1 () code (defun SousRout () Code (SousRout) ) SuiteCode ) Qui reviendrait au même que : (defun c:Rout1 () code (SousRout1) (SousRout2 "Arg") ) (defun SousRout1 ( / ) Code ) (defun SousRout2 (Arg / ) Code ) Mais dans ce dernier cas, SousRout1 et SousRout2 peuvent être appelées par d'autre "routines"... Je me trompe ?
  21. Salut... Très intéressante cette utilisation du registre... Un grand merci à Maître (gile)... Je saurais m'en (re)servir... Denis...
  22. Salut à la communauté... Heureux de voir un tel sujet de conversation... Il est drôle, car il date d'environ de plus de 50 ans... Et il me rappel les "vieux qui savent" (comme dirait Milhouse) qui m'ont formés, je parle de la planche à dessin... C'était, si je me souviens bien, vers le début des années 90, je travaillais dans un cabinet de Géomètre Expert dans la banlieue parisienne. Les tables à dessin faisaient des kilomètres/carrées et on venait d’acquérir un AutoCAD (version 8, sous DOS). Oulala, que ça me remonte dans le temps... J'étais apprentis et mes deux/trois premiers mois de formation ont été... De regarder statiquement un "néo-pro" (qui découvrait aussi) d'AutoCAD... Après, mon boss, Un Géomètre Expert D.p.l.G., m'a acheté un PC (Attention, un Pentium 100 avec 16Go de RAM en EDO... Une bête de course à l'époque (qui ne supporterait pas la comparaison avec le plus petit des samrtphones actuels) Mais, après avoir passé 3 mois au tireligne et "scriber", souris "Leroy" et autre ustensile (obligation de mon boss, que je remercie énormément maintenant, M. Gabriel L.), j'ai démarré AutoCAD, en 93/94... Et mon mentor, Monsieur Daniel V., m'a mit le pied à l'étrier sur le Lisp (mais aussi sur le basic, le turbo basic, le pascal, le turbo pascal, et plus tard sur le VBA...), qu'il prenait pour le nouveau langage universel (tel était la vue de son créateur, et qui était le premier langage de l'IA à l'époque). Bref, après avoir usé mes phalanges sur les tables à dessin, au bout de quelques mois (l'ordi se faisait attendre), je suis passé sur PC, donc, hormis l'école et le boulo (j'étais apprentis topographe), je suis très vite passé à AutoCAD, version 9 (en allemand, oui, les version "pirate" à l'époque faisait légions", mais n'étaient pas toutes francophones...). En tout état de causes, j'ai dessiné à la planche pendant quelques mois et seulement après, je suis passé à la DAO (terme qui n'existait pas encore, n'est-ce pas La Lozère ?)... Une révolution ! ! ! Et avec ce peu de connaissance en dessin "à la main", je m’aperçois que les petits nouveaux qui arrivent, qui n'on jamais tenu un simple stylo pour faire, ne serait-ce qu'un croquis, me sollicitent toutes les cinq minutes pour me demander des conseils (que je leur donne volontiers) sur des questions, on ne peut plus simple, quand on a tenu une plume... La(es) génération(s) qui suit(vent) ne sait(vent) pas ce qu'est réellement un plan... Ils ne connaissent pas la notion du "tracé"... Raison pour laquelle, mon jeune petit collègue (très gentil et curieux), tout fraîchement sorti de l'école me présente un plan à l'écran, avec de belles lignes utilisant les 255 couleur autorisées d'AutoCAD... Aucune épaisseur, aucun style de ligne, rien... Bref, joli à l'écran, mais pas imprimable... je lui explique donc, après impression d'un extrait de son plan et après l'avoir photocopié, que son plan sera, un jour, incompréhensible pour le pauvre gars qui va lire sa énième reproduction sur le terrain... C'est le grand tors de l'écran... On ne pense plus au papier... Bref (encore une fois) On ne remplacera jamais l’expérience "papier" (car tout fini sur le papier)... Tout comme sur le terrain (oui, autre chose)... Mes collègues flambants neufs utilisent des tablettes tactiles pour les levés topographiques... Mais ils ne savent pas mettre un appareil en station, ils savent à peine le buller... Pire, quand je parle de cheminement polygonale, ils me regardent avec de gros yeux, d'un air de dire... Mais c'est quoi ce truc ! ! ! Je ne pense pas être si vieux que ça... Mais il y a un gros cratère entre : "à la main" et "à l'écran"... Mais je ne crache pas sur les nouveaux (bien-sur que non), qui en ont souvent conscience... Raison pour laquelle ils ne sont pas avares de questions... Je pense que c'est de notre travail (à nous les "vieux") de perdurer notre expérience envers eux... Après tout, personne ne connais le langage d'Androïd (noyau Linux) mais tout le monde sait se servir d'un smartphone... Tout le monde ne connait pas le principe d'un moteur thermique, mais tout le monde sait conduire... On se doit, en tant que "connaissant", de partager ce savoir... je pense que si on ne le partage pas, il mourra... Et plein d'autres choses avec lui... Voilà, j'ai fini mon pavé... Au fait ? Fraid est du beau sexe ? ;) Bon week-end à vous... Denis...
  23. Salut LeCrabe, ben disons que je me posais cette question depuis 12 ans ! ! ! :huh: Mais ce n'était pas quotidien... ;)
  24. Salut Lili, mille mercis... C'est exactement ça... En plus, je découvre la touche F12... Je me suis toujours demandé à quoi elle pouvait bien servir sur AutoCAD... Maintenant, je le sais... ;) Encore merci...
  25. Bonjour à tous. Voilà, je viens d'installer un AutoCAD 2019 sur une machine et je ne sais plus comment inactiver les commandes qui se trouvent, à mesure qu'on les tapes, à coté du curseur. J'ai cherché dans OPTIONS, dans Paramètres de saisie... Mais je n'ai rien trouvé... Et je ne sais plus du tout quoi faire... Si quelqu'un a la solution, ou la variable responsable, je suis preneur...
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité