-
Compteur de contenus
877 -
Inscription
-
Dernière visite
-
Jours gagnés
8
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par fabcad
-
Merci Pat, C'est évidemment sur un AutoCAD seul que je souhaiterais réaliser ces manipulations. A+
-
Bonsoir, Je me permet de réveiller ce post car j'utilise à la maison ta fonction de conversion, le seul inconvénient c'est que la fonction ne permet pas de faire une conversion de plusieurs polylignes en plusieurs mpolygones. Car quand tu lances la conversion de plusieurs polylignes cela crée un mpolygone unique, un petit choix de traitement serai le bienvenu. Voilà voilà, Merci,
-
Bonsoir, Ayant eu besoin de cette routine pour un travail quasi hebdomadaire, j'ai réalisé cette routine en ayant parcouru les forums de cadxp et ainsi adapté une routine de notre génialissime Gile. Voici le code : (defun c:image2layer (/) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) layers (vla-get-Layers acdoc) );fin setq (if (ssget '((0 . "IMAGE"))) (vlax-for obj (vla-get-ActiveSelectionSet acdoc) ; parcourir le jeu de sélection (setq ImageFile (vla-get-ImageFile obj)) ;nom de l'image en cours (if ImageFile (progn ;; si le calque de l'image en cours n'existe pas... (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list layers (setq lay (vl-filename-base ImageFile)) ; à adapter ) );fin vl-catch-all-apply );fin vl-catch-all-error-p ;; ... le créer (vla-add (vla-get-Layers acdoc) lay) );fin if vl-catch-all-error-p (vla-put-Layer obj lay) ; mettre l'objet sur le calque );fin progn );fin if );fin vlax-for );fin if ssget (princ) );fin defun image2layer
-
Avec AutoCAD MAP c'est justement son truc les liens entre des polylignes fermées et une base de données Access.
-
Bonsoir, J'avais créé cette routine il y a fort longtemps mais avec un fichier dcl séparé, c'est donc avec l'aide du génialissime Gile que j'ai pu réunir le lisp et le dcl dans un fichier unique. Bonne utilisation : ;; SUBST-I ;; Remplace l'élément à l'indice spécifié par un nouvel élément (defun subst-i (new ind lst) (if (or (zerop ind) (null lst)) (cons new (cdr lst)) (cons (car lst) (subst-i new (1- ind) (cdr lst))) ) ) ;--------------------------------------------------------------- ;;; sous-fonction permettant de vérifier la catégorie d'un mot suivant les listes de contrôle et de renvoyer cette catégorie dans le programme principal (defun verification_mot (mot_a_verifier / outpout_categorie) (setq LISTE_TYPES (list "Autoroute" "Allée" "Avenue" "Bosquets" "Boulevard" "Canal" "Carré" "Carrefour" "Centre" "Chemin" "Cité" "Communale" "Contour" "Cours" "Cour" "Domaine" "Départementale" "Ecluse" "Esplanade" "Faubourg" "Galeries" "Hameau" "Impasse" "Jardin" "Jardins" "Lotissement" "Lieu-dit" "Mail" "Parc" "Parking" "Passage" "Piste" "Place" "Placis" "Pont" "Porcon" "Porçon" "Pré" "Promenade" "Quai" "Résidence" "Rocade" "Rond-Point" "Route" "Rue" "Ruelle" "Rural" "Square" "Terrain" "Villa" "Village")) (setq LISTE_ARTICLES (list "d'" "de" "l'" "la" "des" "du" "l'" "le" "au" "aux")) (setq LISTE_TITRES (list "Abbé" "Abbe" "Amiral" "Capitaine" "Cardinal" "Chanoine" "Capitaine" "Cdt" "Cne" "Colonel" "Commandant" "Docteur" "Docteurs" "Doyen" "Duc" "Duchesse" "Frère" "Freres" "Frères" "General" "Général" "Gouverneur" "Gouverneur-Général" "Gouverneur-General" "Gouv.-Gal." "Lt" "Ltn" "Ltn-Col" "Lieutenant" "Lieutenant_Colonel" "Lieutenant-Colonel" "St-L" "Mme" "Madame" "Marechal" "Maréchal" "Monseigneur" "Marquis" "Monsieur" "Père" "President" "Président" "Professeur" "Professeurs" "Prof." "Recteur" "Roi" "Saint" "Sainte" "Sapeur" "Sergent" "Sir" "Sous-Lieutenant" "Sous_Lieutenant" "Comtesse")) (setq LISTE_PARTICULES (list "D'" "De" "L'" "La" "Des" "Du" "L'" "Le" "Les")) (setq LISTE_TEXTES (list "Dit" "DIT" "dit" "qui" "que" "quoi" "dont" "ou" "mais" "ou" "et" "donc" "or" "ni" "car" "Qui" "Que" "Quoi" "Dont" "Ou" "Mais" "Où" "Et" "Donc" "Or" "Ni" "Car")) (cond ((vl-position mot_a_verifier LISTE_TYPES) (setq outpout_categorie "TYPE_VOIE")); fin member dans LISTE_TYPE ((vl-position mot_a_verifier LISTE_ARTICLES) (setq outpout_categorie "ARTICLE")); fin member dans LISTE_ARTICLE ((vl-position mot_a_verifier LISTE_TITRES) (setq outpout_categorie "TITRE")); fin member dans LISTE_TITRE ((vl-position mot_a_verifier LISTE_PARTICULES) (setq outpout_categorie "PARTICULE")); fin member dans LISTE_PARTICULE ((vl-position mot_a_verifier LISTE_TEXTES) (setq outpout_categorie "TEXTE")); fin member dans LISTE_TEXTE (T (setq outpout_categorie "INCONNU")) ); fin cond outpout_categorie ) ; fin defun verification_mot ;; | ---------------------------------------------------------------------------- ;; | ST_RepChar ;; | ---------------------------------------------------------------------------- ;; | Function : Replace one character in a string with another ;; | Argument : 'oldchar' - Old Character (source) ;; | 'newchar' - New Character (replace with) ;; | 'Str' - String to process ;; | Return : The string with the specified characters replaced ;; | Updated : February 5, 1999 ;; | e-mail : rakesh.rao@4d-technologies.com ;; | Web : www.4d-technologies.com ;; | ---------------------------------------------------------------------------- (defun ST_RepChar (oldchar newchar Str / len cnt nstr cchar) (setq len (strlen str) nstr "" cnt 1 ) (repeat len (setq cchar (substr str cnt 1) cnt (1+ cnt) ) (if (/= cchar oldchar) (setq nstr (strcat nstr cchar)) (setq nstr (strcat nstr newchar)) ) ) nstr ); fin defun ST_RepChar ;; str2lst (gile) ;; Transforme un chaine avec séparateur en liste de chaines ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur ;; Exemples ;; (str2lst "a b c" " ") -> ("a" "b" "c") ;; (str2lst "1,2,3" ",") -> ("1" "2" "3") ;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) );fin cons (list str) );fin if );fin defun str2lst ;; lst2str (gile) ;; Concatène une liste et un séparateur en une chaine ;; Arguments ;; lst : la liste à transformer en chaine ;; sep : le séparateur ;; Exemples ;; (lst2str '("1" "2" "3") ",") -> "1,2,3" ;; (lst2str '("a" "b" "c") " ") -> "a b c" (defun lst2str (lst sep) (if (cdr lst) (strcat (car lst) sep (lst2str (cdr lst) sep)) (car lst) );fin if cdr lst );fin defun lst2str ;;; Il suffit ensuite d'appeler ces deux fonctions : (defun casse_nom_propre (input_mot) (lst2str (mapcar (function (lambda (x) (strcat (strcase (substr x 1 1)) (strcase (substr x 2) T)) );fin lamda );fin function (str2lst input_mot "-") );fin mapcar "-" );fin defun lst2str );fin defun casse_nom_propre (defun minuscule (input_mot /) (if input_mot (setq output_mot (strcase input_mot T)) );fin if output_mot );fin defun minuscule (defun changer_casse_par_categorie (input_mot / outpout_casse_mot) (setq categorie_mot (verification_mot input_mot)) (print categorie_mot) (cond ;début cond categorie_mot est égale à INCONNU ((= categorie_mot "INCONNU") (setq outpout_casse_mot (casse_nom_propre input_mot)) );fin cond categorie_mot est égal à INCONNU ;début cond categorie_mot est égale à TITRE ((= categorie_mot "TITRE") (setq outpout_casse_mot (casse_nom_propre input_mot)) );fin cond categorie_mot est égal à TITRE ;début cond categorie_mot est égale à TEXTE ((= categorie_mot "TEXTE") (setq outpout_casse_mot (minuscule input_mot)) );fin cond categorie_mot est égal à TEXTE ;début cond categorie_mot est égale à ARTICLE ((= categorie_mot "ARTICLE") (setq outpout_casse_mot (minuscule input_mot)) );fin cond categorie_mot est égal à ARTICLE ;début cond categorie_mot est égal à PARTICULE ((= categorie_mot "PARTICULE") (setq outpout_casse_mot (casse_nom_propre input_mot)) );fin cond categorie_mot est égal à PARTICULE ;début cond categorie_mot est égal à TYPE_VOIE ((= categorie_mot "TYPE_VOIE") (if (= (strcase input_mot) "ROND-POINT") (setq outpout_casse_mot "Rond-Point") (progn (setq outpout_casse_mot (strcat (strcase (substr input_mot 1 1)) (strcase (substr input_mot 2) T) ) ) ) ) );fin cond categorie_mot est égal à TYPE_VOIE ); fin cond outpout_casse_mot );fin defun changer_casse_par_categorie ;--------------------------------------------------------------- ; sous-fonction permettant la suppression des espaces superflus ; paramètre global : ch ; paramètres locaux : n i bul a b ;--------------------------------------------------------------- (defun SUP_ES (ch / n i bul a b) (setq n (strlen ch) b "") (if (/= n 0) (progn (setq i 1 bul t) (while (<= i n) (setq a (substr ch i 1)) (if (/= a " ") (progn (setq b (strcat b a)) (setq bul nil) );fin progn (if (= bul nil) (progn (setq b (strcat b a)) (setq bul t) ); fin progn );fin if );fin if (setq i (+ 1 i)) ); fin while (if (= (substr b (strlen b) 1) " ") (setq b (substr b 1 (- (strlen b) 1))) ); fin if ); fin progn ); fin if b ); fin ;; OptionBox (gile) ;; Boite de dialogue permettant de choisir une ou plusieurs options ;; ;; Arguments ;; title : le titre de la boite de dialogue (chaîne) ;; msg ; message (chaîne), "" ou nil por aucun ;; keylab : une liste d'association du type ((key1 . label1) (key2 . label2) ...) ;; mult : T (choix multiple) ou nil (choix unique) ;; ;; Retour : la clé de l'option (mult = nil) ou la liste des clés des options (mult = T) ;; ;; Exemples d'utilisations ;; (OptionBox "Type de fichier" nil '(("lin" . "Type de ligne") ("pat" . "Motif de hachure")) nil) ;; (OptionBox "Types d'entités" "Choisir les types d'entité" '(("LINE" . "Lignes") ("CIRCLE" . "Cercles")) T) (defun OptionBox (title msg keylab mult / tmp file dcl_id choice) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") ) (write-line (strcat "OptionBox:dialog{label=\"" title "\";") file ) (write-line (strcat (if mult ":boxed_column{" ":boxed_radio_column{key=\"choice\";" ) ) file ) (if (and msg (/= msg "")) (write-line (strcat "label=\"" msg "\";") file) ) (mapcar (function (lambda (p) (write-line (strcat (if mult ":toggle{key=\"" ":radio_button{key=\"" ) (car p) "\";label=\"" (cdr p) "\";}" ) file ) ) ) keylab ) (if mult (write-line "spacer;:button{label=\"Tout sélectionner\"; key=\"all\";fixed_width=true;alignment=centered;}" file ) ) (write-line "}spacer;ok_cancel;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "OptionBox" dcl_id)) (exit) ) (if mult (progn (action_tile "all" "(foreach k (mapcar 'car keylab) (set_tile k\"1\"))" ) (action_tile "none" "(foreach k (mapcar 'car keylab) (set_tile k\"0\"))" ) (action_tile "accept" "(foreach k (mapcar 'car keylab) (if (= \"1\" (get_tile k)) (setq choice (cons k choice)))) (setq choice (reverse choice)) (done_dialog)" ) ) (progn (set_tile "choice" (caar keylab)) (action_tile "accept" "(setq choice (get_tile \"choice\")) (done_dialog)" ) ) ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) choice ) ;;;------------------------------------------------------------ ;;; conversion MAJUSCULE en MINUSCULE et vice-versa ;;;------------------------------------------------------------ (defun majuscule_minuscule (option_strcase js / nbr i obj_acad index_texte index_texte_modifie) (setq nbr (sslength js)) (setq i 0) (while (<= i (- nbr 1)) (setq obj_acad (ssname js i)) (setq obj_vl (vlax-ename->vla-object obj_acad)) (setq index_texte (vlax-get-property obj_vl 'TextString)) (setq index_texte_modifie (strcase (vl-string-trim " " index_texte) option_strcase)) (vla-put-textstring obj_vl index_texte_modifie) (vlax-release-object obj_vl) (setq i (+ i 1)) ) (setvar "cmdecho" 1) );fin defun majuscule_minuscule ;;;------------------------------------------------------------------ ;;;------------------------------------------------------------ ;;; Première lettre de la phrase en Majuscule majuscule_au_debut ;;;------------------------------------------------------------ (defun majuscule_au_debut (js / nbr i obj_acad index_texte index_texte_modifie) (setq nbr (sslength js)) (setq i 0) (while (<= i (- nbr 1)) (setq obj_acad (ssname js i)) (setq obj_vl (vlax-ename->vla-object obj_acad)) (setq index_texte (vlax-get-property obj_vl 'TextString)) (setq index_texte_modifie (vl-string-trim " " index_texte)) ; si les deux premiers caractères du mot ne sont pas dans la liste (if (= (member (substr index_texte_modifie 1 2) '("D'" "L'" "l'" "d'" "\\L" "\\P")) nil) ; faire une casse normale (progn (setq index_texte_modifie (strcat (strcase (substr index_texte_modifie 1 1)) (strcase (substr index_texte_modifie 2) T))); fin setq index_texte_modifie );fin 1er progn ; sinon faire une casse en prévoyant l'apostrophe (progn (setq index_texte_modifie (strcat (strcase (substr index_texte_modifie 1 2) T) (strcase (substr index_texte_modifie 3 1)) (strcase (substr index_texte_modifie 4) T)) ); fin setq index_texte_modifie );fin 2eme progn );fin if (vla-put-textstring obj_vl index_texte_modifie) (vlax-release-object obj_vl) (setq i (+ i 1)) ); fin while (setvar "cmdecho" 1) ); fin defun majuscule_debut ;;;------------------------------------------------------------ ;;;------------------------------------------------------------ ;;; Première lettre de la phrase en Majuscule casse_titre ;;;------------------------------------------------------------ (defun casse_titre (js / nbr i j index_texte_retourne mot_en_cours_modifie) (setq nbr (sslength js)) (setq i 0) (while (<= i (- nbr 1)) (setq index_texte_modifie nil) (setq obj_acad (ssname js i)) (setq obj_vl (vlax-ename->vla-object obj_acad)) (setq index_texte (vlax-get-property obj_vl 'TextString)) (setq index_texte (vl-string-trim " " index_texte)) ;;; Contrôle de l'existence d'apostrophe (if (= (wcmatch index_texte "*' *") T) ; Alors rien (setq index_texte_modifie index_texte) ;;; Sinon (progn ; Remplacer l'apostrophe par un apostrophe+espace (setq index_texte_modifie (ST_RepChar "'" "' " index_texte)) ); fin progn wcmatch ); fin if wcmatch ;;; Séparation en plusieurs mots de la phrase en cours (setq liste_mots (str2lst index_texte_modifie " ")) (setq liste_mots (vl-remove "" liste_mots)) ;;; Comptage du nombre de mots dans la liste créee par str2lst (setq nombre_mots (length liste_mots)) (setq index_texte_retourne " ") (setq j 0) (while (<= j (- nombre_mots 1)) (setq mot_en_cours_modifie (changer_casse_par_categorie (nth j liste_mots))) (setq index_texte_retourne (strcat index_texte_retourne " " mot_en_cours_modifie)) (princ index_texte_retourne) (setq j (+ j 1)) index_texte_retourne ); fin while (vla-put-textstring obj_vl (vl-string-left-trim " " index_texte_retourne)) (vlax-release-object obj_vl) (setq i (+ i 1)) ); fin while (setvar "cmdecho" 1) );fin defun casse_titre ;;;------------------------------------------------------------------ ;;;------------------------------------------------------------------ ; DDCHCASE.LSP ;--------------------------------------------------------------- ; Permet de changer la casse d'un ou plusieurs textes ;--------------------------------------------------------------- ; Le 24.02.99 - Fabrice DEMIEL. ;--------------------------------------------------------------- (defun c:ddchcase (/ fic cou Ok) (vl-load-com) (setq j-sel (ssget '( (-4 . " (-4 . "") (-4 . "") (-4 . "") (-4 . "OR>") ) );ssget );fin setq j-sel ;lancement du dialogue OptionBox de Gile (setq choice (OptionBox "Changer la casse" "Changer la casse" '(("CHX1" . "Majuscule en début de phrase")("CHX2" . "Tout en minuscules")("CHX3" . "Tout en MAJUSCULES")("CHX4" . "1ere lettre des mots en majuscule"))nil)) (if choice (cond ((= choice "CHX1") (progn (princ "\n---Majuscule en début de phrase") (majuscule_au_debut j-sel) );fin progn ) ((= choice "CHX2") (progn (princ "\n---Tout en minuscules") (majuscule_minuscule T j-sel) );fin progn ) ((= choice "CHX3") (progn (princ "\n---Tout en MAJUSCULES") (majuscule_minuscule nil j-sel) );fin progn ) ((= choice "CHX4") (progn (princ "\n---1ere lettre des mots en majuscule") (casse_titre j-sel) );fin progn ) );fin cond );fin if (prompt "\n---COPYRIGHT Octobre 2010 par Fabrice DEMIEL---") (princ) );fin defun c:ddchcase (prompt "\nFonction chargée- Pour lancer tapez : ddchcase") (prin1)
-
Accrochage centre de gravité d\'une polyligne fermée ??
fabcad a répondu à un(e) sujet de FREDCAD31 dans AutoCAD 2011
C'est sur, sauf que cette fonction enlève les données d'objets associées aux polylignes. pas cool, A+ -
Transformer un texte en données d\'objet
fabcad a répondu à un(e) sujet de Fredtopo dans AutoCAD 2010
Bonsoir, Tu peux aller jeter un coup d'œil sur georezo et dans le forum AutoDESK SIG la ou les réponses à ta question. A+ -
Bonsoir à tous, J'ai réalisé un pas à pas pour la Fusion de fichiers dwg géoréférencés dans un seul dessin dwg cible seulement avec des commandes AutoCAD standard. Télécheargeable sur Georezo : http://georezo.net/forum/viewtopic.php?pid=176248#p176248 Bonne lecture; Fabcad
-
wblocs par thématique SIG
fabcad a répondu à un(e) sujet de fabcad dans Suggestions de développements
Bonsoir, Merci pour cet exercice de style. Bonne fin de week-end, Fabcad -
wblocs par thématique SIG
fabcad a répondu à un(e) sujet de fabcad dans Suggestions de développements
Merci Gile, Le coup de vl-filename-base, je ne connaissais pas. Je ne maitrise pas du tout mapcar et lamda. Merci pour ton sens du pratique car je suis plutôt un séquentiel (étapes par étapes) Bonne soirée, Fabcad -
wblocs par thématique SIG
fabcad a répondu à un(e) sujet de fabcad dans Suggestions de développements
Merci Gile, Voici mon début de code, je souhaiterais un peu d'aide pour les filtres de sélections et les contrôles sur les objets fermés. ; Ponctuels : ; POINT,INSERT ; Lineaires si objets non fermés : ; LWPOLYLINE, 2DPOLYLINE, ARC, LINE, SPLINE, TRACE ; Surfaciques si objets fermés : ; LWPOLYLINE, REGION, 2DPOLYLINE, ELLIPSE, MLINE, SPLINE, SOLID ; Textuels : ; TEXT, MTEXT, ATTDEF ;; OBJETSTODWG ;; Crée un fichier DWG pour chaque catégorie d'objets (defun c:ObjetsToDwg (/ acdoc layers prefix name llst ss) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) prefix (getvar 'dwgprefix) name_doc_source (substr (getvar 'dwgname) 1 (- (strlen (getvar 'dwgname)) 4)) );fin setq variables ;;; 111111 Début de la création de la couche des Ponctuels (if (ssget "_X" (list '(410 . "Model") (cons 8 name))) (progn (setq ss (vla-get-ActiveSelectionSet acdoc)) (setq name_Ponctuels (strcat name_doc_source "-" "Ponctuels")) (vla-Wblock acdoc (strcat prefix name_Ponctuels ".dwg") ss) (vla-delete ss) );fin progn );fin if ;;; 222222 Début de la création de la couche des Lineaires (if (ssget "_X" (list '(410 . "Model") (cons 8 name))) (progn (setq ss (vla-get-ActiveSelectionSet acdoc)) (setq name_Lineaires (strcat name_doc_source "-" "Lineaires")) (vla-Wblock acdoc (strcat prefix name_Lineaires ".dwg") ss) (vla-delete ss) );fin progn );fin if ;;; 333333 Début de la création de la couche des Surfaciques (if (ssget "_X" (list '(410 . "Model") (cons 8 name))) (progn (setq ss (vla-get-ActiveSelectionSet acdoc)) (setq name_Surfaciques (strcat name_doc_source "-" "Surfaciques")) (vla-Wblock acdoc (strcat prefix name_Surfaciques ".dwg") ss) (vla-delete ss) );fin progn );fin if ;;; 44444 Début de la création de la couche des Textuels (if (ssget "_X" (list '(410 . "Model") (cons 8 name))) (progn (setq ss (vla-get-ActiveSelectionSet acdoc)) (setq name_Textuels (strcat name_doc_source "-" "Textuels")) (vla-Wblock acdoc (strcat prefix name_Textuels ".dwg") ss) (vla-delete ss) );fin progn );fin if (princ) );fin defun ObjetsToDwg -
Un développement en Auto-Visual LISP qui ravira les férus de SIG. Avec un dessin AutoCAD (MAP) pouvoir créer des dessins cible (wbloc) par type d'objet SIG dans le dossier du dessin source. Les fichiers cible porteront comme préfixe le nom du dessin source et comme préfixe les 4 types d'objets SIG séparé par un tiret. Exemple : soit un dessin source nommé COMMUNE.dwg alors les fichiers cibles se nommeront : COMMUNE-Ponctuels.dwg COMMUNE-Lineaires.dwg COMMUNE-Surfaciques.dwg COMMUNE-Textuels.dwg J'ai répertorié les différents types d'objets AutoCAD pour cette routine : Ponctuels : POINT,INSERT Lineaires si objets non fermés : LWPOLYLINE, 2DPOLYLINE, ARC, LINE, SPLINE, TRACE Surfaciques si objets fermés : MPOLYGONE, LWPOLYLINE, REGION, 2DPOLYLINE, ELLIPSE, MLINE, SPLINE, SOLID Textuels : TEXT, MTEXT, ATTDEF Ca serait tip-top ! Merci [Edité le 11/9/2010 par fabcad]
-
Justification de mtextes suivant un angle
fabcad a répondu à un(e) sujet de fabcad dans Suggestions de développements
Merci à vous deux, C'est vraiment super, merci beaucoup. c'est l'outil que j'avais en tête depuis longtemps. Bonne soirée, Fabcad Gile : je te laisse le soin de rajouter ton programma sur le spoken site :-) -
Justification de mtextes suivant un angle
fabcad a répondu à un(e) sujet de fabcad dans Suggestions de développements
Super le dynamisme avec le déplacement ca va être génial :-) si nouveau point = point d'origine alors pas de déplacement mais justification dynamique.sinon déplacement + justification dynamique. Merci, -
Justification de mtextes suivant un angle
fabcad a répondu à un(e) sujet de fabcad dans Suggestions de développements
Thanks Gile, La routine fonctionne mais il faudrait juste que le point de base correspond au nouvel emplacement du textuel après la modification de sa justification. Merci, Fabcad -
Justification de mtextes suivant un angle
fabcad a posté un sujet dans Suggestions de développements
Bonjour, Voici une suggestion de développement intéressante : Pouvoir modifier la Justification de mtextes (textes voire attributs de blocs) suivant un angle de façon dynamique. 1 sélection du textuel (j'emploie ce mot pour représenter les 3 types d'objets cités ci-dessus). 2 Point de base (qui serait le centre du cercle imaginaire) 3 Puis définir la justification suivant l'angle avec l'option des quadrants pour les 5 cas particuliers (0 90 180 270 et 360). 0 = Milieu Gauche entre 1 et 89 = Bas Gauche 90 = Bas Centre entre 91 et 179 = Bas Droite 180 = Milieu Droite entre 181 et 269 = Haut Droite 270 = Haut Centre entre 271 et 359 = Haut Gauche 360 = Milieu Gauche Merci, -
Compter les éléments identiques dans une liste
fabcad a posté un sujet dans Pour aller plus loin en LISP
Après une recherche infructueuse sur cadxp ainsi que les fonctions de gestion de listes de Gile, je cherche le moyen de compter les éléments identiques dans une liste. Exemple : Soit une liste ("titi" "toto" "tata" "titi" "toto" "tata" "titi" "toto" "tata" "titi" "toto" "tata") et donc (nbre_elements lst_en_cours "toto") retournerait une valeur de 4. J'ai peut-être passé sur une fonction AutoLISP ou Viusal LISP. Merci, -
Le Country Kit 2011 France est arrive !
fabcad a répondu à un(e) sujet de lecrabe dans AutoCAD Civil
Bonsoir, C'est quoi ce pack, l'ensemble des musiques de Country, la meilleure compilation en somme, trop drôle. Sans rire merci pour l'information, Fabcad -
Bonjour à tous, Afin de rendre plus opérationnel une routine, je souhaiterais savoir comment peut-on ajouter une propriété personnalisée (commande AutoCAD : _dwgprops --> onglet Personnaliser). - deuxième question : comment la lire ensuite via AutoLISP ou VisualLISP. Merci, A+
-
Effectivement si tes objets sont des objets issus d'une conexion FDO tu ne pourras pas générer un lien avec tes enregistrements access
-
As tu créé ton Gabarit de lien ?
-
Un lien sur le site de http://map3d.wordpress.com/ Sinon pour ta question il faut différencier un travail sur Access en lien avec des objets AutoCAD et des données connectées via le Gestionnaire d'Affichage du Volet Taches. - ODBC n'est qu'un moteur de liaison de sources de données. 2 exemples de travail sur MAP : 1 Gérer une liaison AutoCAD MAP et Access via l'Explorateur de Cartes du Volet Taches : Objet AutoCAD (MAP) <--------------- Gabarit de lien ---------------> Source de donnée Access connectée 2 Gérer une liaison AutoCAD MAP et une base de données géographiques et alphanumérique via le Gestionnaire d'Affichage du Volet Taches : base de données géographiques <--------------- Clé commune ---------------> Source de donnée Access connectée par jointure. Si cela peut t'éclairer. A+
-
Bonjour Elen, Je te conseillerai de poster ta requête sur le forum AutoDESK SIG sur le site de GeoRezo. Tu auras plus d'informations. A+
-
Bonjour a tous, Le champ Date sur AutoCAD est l'un des seuls champs qui ne se met pas à jour que si l'utilisateur le "souhaite" via la fonction idoine. C'est dommage pour les personnes qui impriment des plans de façon journalière. A+
-
Ah le sujet est vaste pour les dinosaures. l'idée des méthodes c'est par exemple : - Jusqu'à la version 11, nous travaillons en espace objet et par la suite l'impression avec 1mise en page (1 seul espace papier), des la version 2000 est apparu la notion de plusieurs mises en page. - Les grips qui sont apparus sur la 14 sont plus souple pour modifier les sommets des polylignes car avant il fallait utiliser la commande Pedit. - etc. A+
