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. Ben si, Ô combien... Et je ne t'ai jamais contredis... ;) Mais si je veux faire un mode d'emploi de ces macros, il va bien falloir des icônes pour l'agrémenter, et ça, c'est de la cosmétique... Mais comme je l'ai dis, j'ai tous sous format .mnu, facile à installer/gérer/utiliser... Donc, le maquillage attendra... ;)
  2. Ben t'as mis le temps... ;) Je sortais un programme en VBA et j'ai perdu le fil...
  3. Salut Vincent. Wouaow, je ne l'ai pas vu venir celle-là... Je cherchais dans les vl-xxx... Mille mercis...
  4. Bonjour à tous. Voilà, pour les besoin d'une routine, je cherche à extraire 3 caractère d'une chaine depuis le 13ème caractère... En gros, dans cette chaine "Loti.01_Lot.001_Contour". J'ai regardé dans les lisp de (gile) et de Patrick_35, mais je n'ai rien trouvé...
  5. DenisHen

    Station de travail

    C'est pas faut... ;)
  6. Merci (gile) pour cette précision... J'en prend note...
  7. Salut à tous. Voilà, je suis sur le point de terminer la première étape d'un module, celui pour les lotissements. Au fait, j'aurais besoin de Beta testeurs... :mellow: Je me pose une question, dois-je faire des menus dans la barre de menus, une palette ou un onglet dans le Ruban ? Cette opération devrait être avant la rédaction du mode d'emploi. Donc, quelle serait la meilleure solution ?
  8. Je suis entièrement d'accord, mais j'ai OUBLIÉ que le retour de "InputBox" était toujours une chaine... J'étais concentré (en un mot) sur le contenu de la variable et non son format...
  9. Salut (gile). Oui, tu as raison et je m'en excuse, je n'ai pas été assez claire dans mon premier post... Je demande à l'utilisateur de saisir une échelle (juste le dénominateur) dans ta fonction "InputBox". C'est seulement après que j'ai percuté que le retour était toujours sous forme de chaine... D'où ma précision dans le message 7, je m'excuse encore pour cet oubli...
  10. Ben si (enfin je pense), j'ai bien lu et compris que seul (type ne suffisait pas, et je ne savais absolument pas où chercher ce qui me manquait... BINGO ! ! C'est ça, et mon code est maintenant bon... Merci Bruno, mais je cherche une échelle, donc, uniquement un integer... Encore merci à tous...
  11. Merci Patrick_35... Mais j'ai du oublié une petite précision, le retour de cette variable est toujours sous forme de chaine, qui devrait contenir un nombre strictement supérieur à 0 (si l'utilisateur ne se trompe pas). En fait, ech1 peut être "200", "gfsdg",... J'aimerais tester si sont "contenu" est bien un nombre strictement supérieur à 0. C'est en regardant ton dernier code et en le testant que je me suis aperçu du manque d'information dans mon premier post... Désolé...
  12. Re, Voilà, j'ai fais plusieurs tests, mais ça ne fonctionne pas, voici ma routine "test" : (defun c:testechelle ( / ech1) (setq ech1 200) (if (and (= (type ech1) INT) (> ech1 0)) ;_ Fin:and (princ "\nNombre strictement supérieur à 0") (princ "\nCe n'est pas un nombre ou inférieur ou égale à 0") ) ;_ Fin de if (princ) ) ;_ Fin de defun
  13. Salut Patrick_35, et merci pour cette aide... C'est exactement ce que je cherchais...
  14. Bonjour à tous. Voilà, dans une routine, je cherche à savoir si une variable (qui peut, par erreur, contenir une chaine) est bien strictement supérieur à 0. J'ai cherché et trouvé des trucs : (numberp, (null... Mais ça n'est pas suffisant. Et ma traditionnelle demande : Si quelqu'un a une astuce, un conseil... Je suis preneur...
  15. C'est bien ça le plus difficile... ;) Quand je fais une routine pour moi, elle dépasse rarement 20/30 lignes... Si c'est pour un(e) collègue, je peux multiplié ça par 5 voir 10... Avec la gestion d'erreur, si il ne clique pas la bonne entité, dans quel calque il se trouve... Et j'en passe...
  16. Re. Merci (gile) pour ces précisions, mais il faut tout de même saisir la polyligne dans le bon sens, car j'ai d'autres routines qui l'exigent, comme une cotation périmétrique de cette polyligne... Si non, je ne sais pas comment m'en sortir... Encore merci à tous...
  17. Elles devraient l'être toutes. J'entendais "dans le sens de création". Mais pour les deux cas, tu as raison, j'aurais dû être plus précis...
  18. Salut à tous, et merci pour votre aide. Vincent : merci pour ce code "trop" complexe à mes yeux. Patrick_35 : J'ai tenté ça : (setq poly (vlax-ename->vla-object (car (entlast)))) (vlax-invoke poly 'offset 5.0) ;c'est le bon coté pour moi Mais AutoCAD me répond ça : Encore merci à vous... EDIT : Patrick_35, j'ai trouvé : (setq poly (vlax-ename->vla-object (entlast)))
  19. Salut (gile), et merci pour ce code, il fonctionne super... :D
  20. Bonjour à tous. Voilà, j'ai, dans un lisp, ceci : ... (princ "\nTournez dans le sens horaire ! !") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause)) ;_ Fin de while ) ;_ Fin de command (setq ent (entlast)) ... Et dans ce même Lisp, j'aimerai utiliser "Select" pour décaler cette polyligne, à droite (ou vers l'intérieur), de 5 mètres par exemple. Sachant que cette polyligne est toujours construite dans le sens horaire. Peut-être en passant par son centre, qui normalement sera toujours à l'intérieur de cette polyligne... Si quelqu'un a une astuce, un conseil, une formule magique... Je suis preneur... ;)
  21. Tu m'étonnes... Ça reste encore de la science-fiction pour moi... ;) N'abandonne surtout pas, maintenant qu'il devient un reflex pour certains (et en devenir pour d'autres)...
  22. DenisHen

    TAR.BZ2 to DWG en masse

    Et encore, perso, je reçois des levés topo fait avec GéoVisual (couche de MicroStation), en type V3 (levés spécifique à ENEDIS, trs loin d'être des plans topo) pour faire justement des plans topographiques de qualité sous AutoCAD ! ! ! J'ai pourtant forcé la direction à acheter Land2Map et j'ai fais tous les thèmes pour les plans topo... Mais que veux-tu, quand le pouvoir de décision est aux ignorants dans le domaine, on est dans la m****... ;)
  23. DenisHen

    TAR.BZ2 to DWG en masse

    Voici mon petit code, comme tu pourras le constater, il y a une petite mise en forme, histoire d'avoir que du cadastre et pas toutes les données parasites qui n'intéressent que les Experts Géomètres... : ;;; Insert les feuilles du Cadastre en DXF (defun c:InsCadDXF (/ Select ent n a b RepDXF ListFich ) (princ "\nDéveloppé par Denis H.") (command "-unites" "2" "2" "3" "2" "0,0" "@0,1" "O" "pdmode" "32" "pdsize" ".1" "PLINEGEN" "1" "-couleur" "ducalque") ;_ Fin de command (command "filedia" "1" "insunits" "6" "attdia" "1" "-typeligne" "a" "ducalque" "" "ecrangra" "_ucs" "_w" "imageframe" "2" "psltscale" "0") ;_ Fin de command (ade_projsetwscode "Lambert93"); (c:DebutChrono) (setq RepDXF (getvar "dwgprefix")) (setq ListFich (vl-directory-files RepDXF "*.dxf")) (setq a 0) (while (/= (nth a ListFich) nil) (setq a (+ a 1))) (setq b 0) (while (/= (nth b ListFich) nil) (princ (strcat "\nProgression : " (rtos (+ b 1) 2 0) "/" (rtos a 2 0) "\n")) (command "_insert" (strcat RepDXF (nth b ListFich)) '(0 0 0) 1 1 0) (command "_explode" "_last") (command "-purger" "bl" (substr (nth b ListFich) 1 (- (strlen (nth b ListFich)) 4)) "n") (command "zoom" "et") (setq b (+ b 1)) ) ;_ Fin de while (c:ConfCadastre);;; Attention, appel d'une autre routine ! ! ! ! ! ! ! ! ! ! (command "-calque" "e" "CAD_BATI_DUR_HACH" "") (setq n 0) (if (setq Select (ssget "_X" (list (cons 0 "LWPOLYLINE") (cons 8 "CAD_BATI_DUR") (cons -4 "&") (cons 70 1)) ;_ Fin de list ) ;_ Fin de ssget ) ;_ Fin de setq (while (setq ent (ssname Select n)) (command "_hatch" "solid" ent "") (setq n (1+ n)) ) ;_ Fin de while ) (command "_qsave") (command "-calque" "e" "CAD_BATI_LEG_HACH" "") (setq n 0) (if (setq Select (ssget "_X" (list (cons 0 "LWPOLYLINE") (cons 8 "CAD_BATI_LEG") (cons -4 "&") (cons 70 1)) ;_ Fin de list ) ;_ Fin de ssget ) ;_ Fin de setq (while (setq ent (ssname Select n)) (command "_hatch" "solid" ent "") (setq n (1+ n)) ) ;_ Fin de while ) (command "_qsave") (c:FinChrono) (command "_qsave") (princ) ) ;_ Fin de defun Et tu auras aussi besoin de ça : (defun c:ConfCadastre (/) (princ "\nDéveloppé par Denis H.") ;Renomme les calques issu d'un levé de Christophe vers la Charte Graphique (setq old_cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (princ "\nInitialisation du dessin...'") (command "-unites" "2" "2" "3" "2" "0,0" "@0,1" "O" "pdmode" "32" "pdsize" ".1" "PLINEGEN" "1" "-couleur" "ducalque" "filedia" "1" "attdia" "1" "-typeligne" "a" "ducalque" "" "ecrangra" "_ucs" "_w") ;_ Fin de command (princ "\nTous les objets seront 'DuCalque'") (command "chprop" "tout" "" "co" "ducalque" "t" "ducalque" "ep" "ducalque" "") (princ "\nCalque courant '0'...") (command "-calque" "e" "0" "") (setq Select nil) (setq LstCalq '(("1COMM" . "CAD_LIM_COMMUN") ; Amorces des limites communales ("1DEPART" . "CAD_LIM_DEPART") ; Amorces des limites départementales ("1ETAT" . "CAD_LIM_ETAT") ; Amorces des limites étatiques ("1LIEUDIT" . "CAD_LIM_LIEUDIT") ; Périmètre du lieut-dit ("1PARCELLE" . "CAD_LIM_PARC") ; Périmètre de la parcelle figurée au plan ("1PARCELLENFP" . "CAD_LIM_PARC") ; Périmètre de parcelle non figurée au plan ("1PYLONE" . "CAD_DIVERS") ; Pylône ("1STATION" . "CAD_DIVERS") ; Station de gare ("1SECTION" . "CAD_LIM_SEC") ; Périmètre de la section ("1TRONFLUV" . "CAD_DIVERS") ; Périmètre du tronçon de cours d'eau ("1TRONROU" . "CAD_DIVERS") ; Périmètre de la voie privée ("3AQUEDUC" . "CAD_DIVERS") ; Ligne de l'aqueduc ("3AQUEDUCTEX" . "CAD_DIVERS_TEXT") ; Texte associé à l'aqueduc ("3BATIDUR" . "CAD_BATI_DUR") ; Périmètre du bâtiment dur ("3BATILEGER" . "CAD_BATI_LEG") ; Périmètre du bâtiment léger ("3BATITEX" . "CAD_BATI_TEXT") ; Texte associé au bâtiment ("3CALVAIRE" . "CAD_DIVERS") ; Croix de calvaire ("3CALVAIRETEX" . "CAD_DIVERS_TEXT") ; Indication sur l'occurence "Calvaire", "Puits"... ("3CHEMIN" . "CAD_DIVERS") ; Limite du chemin ("3CHEMINTEX" . "CAD_DIVERS_TEXT") ; Nom du chemin ("3CIME" . "CAD_DIVERS") ; Périmètre du cimetière ("3CIMM" . "CAD_DIVERS") ; Périmètre du cimetière musulman ("3CIMS" . "CAD_DIVERS") ; Périmètre du cimetière israélite ("3CIMETEX" . "CAD_DIVERS_TEXT") ; Libellé associé au cimetière ("3CIMMTEX" . "CAD_DIVERS_TEXT") ; Libellé associé au cimetière ("3CIMSTEX" . "CAD_DIVERS_TEXT") ; Libellé associé au cimetière ("3DPTEX" . "CAD_LIM_PARC_TEXT") ; Numéro parcellaire du DP ("3EAU" . "CAD_DIVERS") ; Périmètre de la surface en eau, lacs, étangs... ("3EAUTEX" . "CAD_DIVERS_TEXT") ; Nom de l'étang, lac ("3EDF" . "CAD_DIVERS") ; Ligne de transport de force ("3EDFTEX" . "CAD_DIVERS_TEXT") ; Nom de la ligne de transport de force ("3EGLISE" . "CAD_DIVERS_TEXT") ; Représentation du sympole d'église ("3EGLISETEX" . "CAD_DIVERS_TEXT") ; Nom de l'église ("3ENSIMMO" . "CAD_DIVERS_TEXT") ; Nom de l'ensemble immobilier ("3FLECHEPAR" . "CAD_LIM_PARC_TEXT") ; Flèche de rattachement de n° parcelle ("3GAZODUC" . "CAD_DIVERS") ; Ligne du gazoduc ("3GAZODUCTEX" . "CAD_DIVERS_TEXT") ; Texte associé au gazoduc ("3LIEUDITTEX" . "CAD_LIM_LIEUDIT_TEXT") ; Nom du lieut-dit ("3LINEDIVERS" . "CAD_DIVERS") ; Détail topographique linéaire divers ("3LINEDIVERSTEX" . "CAD_DIVERS_TEXT") ; Texte associé au détail topographique linéaire divers ("3MOSQUEE" . "CAD_DIVERS") ; Représentation du symbole de mosquée ("3MOSQUEETEX" . "CAD_DIVERS_TEXT") ; Nom de la mosquée ("3NUMVOIE" . "CAD_DIVERS_TEXT") ; Numéro de voirie ("3PARCELLETEX" . "CAD_LIM_PARC_TEXT") ; Numéro de parcelle ("3PARCELLETEX2" . "CAD_LIM_PARC_TEXT") ; Numéro de parcelle 2 ? ? ("3PARCNFPTEX" . "CAD_LIM_PARC_TEXT") ; Numéro de parcelle NFP ("3PONCTDIVERS" . "CAD_DIVERS") ; Détail topographique ponctuel divers ("3PONCTDIVERSTEX" . "CAD_DIVERS_TEXT") ; Texte associé au détail topographique ponctuel divers ("3PONT" . "CAD_DIVERS") ; Périmètre du pont ("3PONTTEX" . "CAD_DIVERS_TEXT") ; Nom du pont ("3SECTIONTEX" . "CAD_LIM_SEC_TEXT") ; Libellé de la section ("3SENTIER" . "CAD_DIVERS") ; Linéaire des sentiers, trottoirs ("3SENTIERTEX" . "CAD_DIVERS_TEXT") ; Nom du sentier ("3SNCF" . "CAD_DIVERS") ; Rail de chemin de fer ("3SNCFTEX" . "CAD_DIVERS_TEXT") ; Nom de la voie de chemin de fer ("3SYNAGO" . "CAD_DIVERS") ; Représentation du symbole religieux ("3SYNAGOTEX" . "CAD_DIVERS_TEXT") ; Nom de la synagogue ("3TELEFERI" . "CAD_DIVERS") ; Ligne du téléphérique ("3TELEFERITEX" . "CAD_DIVERS_TEXT") ; Nom du téléphérique ("3TOPOLINE" . "CAD_DIVERS") ; Terrains de sport, petit ruisseaux et fossés ("3TOPOLINETEX" . "CAD_DIVERS_TEXT") ; Texte associé aux topolines ("3FISCLINE" . "CAD_DIVERS") ; Parkings, terrasses et surplombs ("3FISCLINETEX" . "CAD_DIVERS_TEXT") ; Textes associés aux fisclines ("3PUIT" . "CAD_DIVERS") ; Représentation du puits ("3PUITTEX" . "CAD_DIVERS_TEXT") ; Texte associé au puits ("3PISCINE" . "CAD_DIVERS") ; Périmètre de la piscine ("3PISCINETEX" . "CAD_DIVERS_TEXT") ; Texte associé à la piscine ("3TRONFLUVTEX" . "CAD_DIVERS_TEXT") ; Nom du cours d'eau ("3TRONROUTEX" . "CAD_DIVERS_TEXT") ; Nom de la voie privée ("3TROUBATI" . "CAD_BATI_DUR") ; Contour du trou à l'intérieur des bâtis légers et durs ("3TUNNEL" . "CAD_DIVERS") ; Périmètre du tunnel ("3TUNNELTEX" . "CAD_DIVERS_TEXT") ; Nom du tunnel ("3ZONCOMMTEX" . "CAD_DIVERS_TEXT") ;Nom de la voie du DP routier ) ) ;_ Fin de setq (princ "\nRemplacement / fusion des calques...") (foreach PosLst LstCalq (if (tblsearch "layer" (car PosLst)) (progn (if (not (tblsearch "layer" (cdr (assoc (car PosLst) LstCalq)))) (command "-calque" "n" (cdr (assoc (car PosLst) LstCalq)) "") ) ;_ Fin de if (command "fuscalques" "n" (car PosLst) "" "n" (cdr (assoc (car PosLst) LstCalq)) "o") ;_ Fin de command ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de foreach ;; (setq LstCalqSup '("1ARRET" ;Arret de gare "1CHARGE" ;périmètre de la charge "1FLECHEFL" ; Flèche rivière "1HALTE" ; Halte de gare "1SUBDFISC" ; Périmètre de subdivision fiscale "1SUBDSECT" ; Périmètre de subdivision de section "1TROUCHARGE" ; Contour des trous à l'intérieur des charges "1TROUPARCELLE" ; Contour des trous à l'intérieur des parcelles (et NFP) "1TROUSECTION" ; Contour des trous à l'intérieur de la section "1TROUSUBDFISC" ; Contour des trous à l'intérieur d'une division fiscale "1TROUSUBDSECT" ; Contour des trous à l'intérieur des subdivision de section "1ZONCOMM" ; Axes de la voie du domaine public routier, chemin rural "3BORNE" ; Borne limite de propriété "3BOULON" ; Boulon scellé "3CADB" ; Point cadastre borné "3CADNB" ; Point cadastre non borné "3CHARGETEX" ; Lettre indicative de la charge "3CLOTMI" ; Cloture mitoyenne "3CLOTNONMI" ; Cloture non mitoyenne "3CROIX" ; Crois gravée "3DIVERS" ; Bornes communales et/ou RNGF "3FOSSEMI" ; Fossé mitoyen "3FOSSENONMI" ; Fossé non mitoyen "3HAIEMI" ; Haie mitoyenne "3HAIENONMI" ; Haie non mitoyenne "3IGNB" ; Point géodésique borné "3IGNNB" ; Point géodésique non borné "3LIMNONPARC" ; Ruines et limites surfaciques ne formant pas parcelle "3LIMNONPARCTEX" ; Texte associé aux limites surfaciques ne formant pas parcelle "3MURMI" ; Mur mitoyen "3MURNONMI" ; Mur non mitoyen "3SUBDFISCTEX" ; Lettre de subdivision fiscale ) ) ;_ Fin de setq (princ "\nSuppression des autres calques...") (foreach calque LstCalqSup (if (tblsearch "layer" calque) (command-s "_-laydel" "_name" calque "" "_yes") (princ (strcat "\nCalque " calque " introuvable")) ) ;_ Fin de if ) ;_ Fin de foreach (setvar "cmdecho" old_cmdecho) (princ) ) ;_ Fin de defun Bon, c'est pas l'apéro, là, hein ? ;)
  24. DenisHen

    TAR.BZ2 to DWG en masse

    Salut Fraid. Personnellement, j'ai téléchargé le Cadastre de la France entière, et dès que j'ai besoin d'une commune, je me suis fais un petit Lisp, voici ma méthodologie : Décompression de toutes les planches dans le répertoire de la commune, en fait, dans chacun des .tar.bz2 il y a un et un seul DXF, qui correspond à une feuille cadastrale, Sauvegarde d'un DWG vièrge dans ce même répertoire portant le nom de la commune, Lancement de on Lisp. Et voilà... Si tu veux mon petit bout de code, je te le posterais volontiers... Mais je ne fais que du "ponctuel", je ne traite qu'une seule commune à la fois... Ce qui correspond à mes besoins... Et ne travaille pas trop... On est dimanche que diable... ;) Vas faire un tour dans ta magnifique ville, j'ai adoré Saint Malo... Denis...
  25. Salut à tous, et merci pour votre aide. J'ai pu faire ce code, pour chacun de mes modules, et ça à l'air de fonctionner à merveille...: (if (findfile "TC_Division.lsp") (load "TC_Division.lsp") ) ;_ Fin:if Encore merci à vous...
×
×
  • 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é