Aller au contenu

fabcad

Membres
  • Compteur de contenus

    877
  • Inscription

  • Dernière visite

  • Jours gagnés

    8

Tout ce qui a été posté par fabcad

  1. Une stupide parenthèse manquante pour l'égalité du numberp. Merci encore, Je prends note de vos remarques, Bon week-end. [Edité le 5/3/2010 par fabcad]
  2. Bonjour, Tout est dans le titre de ce post, c'est la première fois que j'essaie de combiner un cond avec un and et je n'arrive pas, voici le code : C'est dans la deuxième condition ou je voudrais que si les réponses sont True alors afire l'affectation des valeurs dans les champs de tables de données d'Objet. Merci pour vos lumières, ((= nombre_mots 1) (progn (setq categorie_mot_un (verification_mot (nth 0 liste_mots))) (cond ((= categorie_mot_un "TYPE_VOIE") (progn (setq type_voie (verif_type_voie (nth 0 liste_mots))) ; fin setq decoupage (ade_odsetfield obj_acad nom_de_la_table cible-ch1 recnum type_voie) (ade_odsetfield obj_acad nom_de_la_table cible-ch8 recnum type_voie) (ade_odsetfield obj_acad nom_de_la_table cible-ch9 recnum type_voie) (ade_odsetfield obj_acad nom_de_la_table cible-ch11 recnum (substr (getvar "DWGNAME") 1 5) ) (vla-put-color obj_vl acBylayer) ) ;_ fin progn ) ;_ fin cond categorie_mot_un est égal à TYPE_VOIE ((and (= (substr (nth 0 liste_mots) 1 1) "D") (= (numberp (atoi (substr (nth 0 liste_mots) 2 1)) T)) ) ;_ fin and (progn (setq type_voie "Départementale") ;_ fin setq decoupage (setq mot_en_cours (nth 0 liste_mots)) (ade_odsetfield obj_acad nom_de_la_table cible-ch1 recnum type_voie) (ade_odsetfield obj_acad nom_de_la_table cible-ch8 recnum mot_en_cours) (ade_odsetfield obj_acad nom_de_la_table cible-ch9 recnum mot_en_cours) (ade_odsetfield obj_acad nom_de_la_table cible-ch11 recnum (substr (getvar "DWGNAME") 1 5) ) (vla-put-color obj_vl acBylayer) ) ;_ fin progn ) ;_fin si le mot correspond à D# ) ;_ fin cond ) ;_ fin progn ) ;_ fin condition si nombre_mots = 1
  3. fabcad

    Quoi choisir?!

    Bonsoir, Ma curiosité me pousse à demander si votre logiciel propose des données attributaires liées aux objets (les extented datas ou les données d'objets sur AutoCAD MAP) avec un gestionnaire efficace. Car sur ce forum, beaucoup de posts sont en rapport avec ces données pour rendre intelligent les objets graphiques. Merci Bonsoir
  4. Bonsoir, Pareil que Gile, Créer un solide 2d ou une hachure solid avec comme couleur vraie 255,255,255 avec un style de tracé Normal en dessous de ton bloc et le tour est joué. A+
  5. Bonsoir, Créer un solide 2d ou une hachure solid avec comme couleur vraie 255,255,255 avec un style de tracé Normal en dessous de ton bloc et le tour est joué. A+
  6. Bonjour, Mon cher décapode Lecrabe, En effet, le logiciel méconnu par la plupart des utilisateurs d'AutoCAD (base de données liées, données se mettant à jour,etc.), mais les 1000 Euros depuis AutoCAD MAP 1 aurait pu être investi dans les manques notamment simplifier les données d'objets. En ce qui concerne la génération des liens, c'est un manque mais la question que posait GEGEMATIC c'etait la consultation sous format Table des données d'objets. A+ Un AutoCAD MAPpien,
  7. GEGEMATIC, L'éditeur de table ne fonctionne qu'avec les données SIG connectées, si tu associes une base de données Excel ou Access via FDO tu auras aussi cet éditeur de table . Mais pour les données d'objets, pas d'éditeur de table, c'est dommage. Sur Géorézo, M. Gwenaël Bachelot accepterait de fournir les sources de deux DLL crées en interne de cet éditeur de table de données d'objets mais il n'y pas eu de réponse de programmeurs à ce jour. Sinon en parcourant la toile, j'ai trouvé ceci mais payant : http://www.dotsoft.com/mwmaptools.htm Avec OpenDCL et vlisp ca doit être possible de créer cet éditeur de table de données d'objets qui serait vraiment pratique avec une fonction comme rechercher remplacer. Fabrice
  8. fabcad

    Simplifier une lwpolyligne

    Hello Gilles Nous sommes sur la même longueur d'ondes mon cher décapode :-) Les arcs sur les lwpolylignes c'est la précision que les logiciels SIG bureautiques ne savent pas faire ! Avec une version 2009, ca fonctionne très bien, Une explication sur (70 . 112) serait la bienvenue, je n'ai pas trouvé cette valeur dans l'aide des codes DXF. C'est le genre d'outils qui dans la production de données d'un SIG diminue le temps de traitement et en plus le fait de conserver l'objet d'origine assure la pérennité des données attributaires. Une personne comme toi chez GéoMAP et le SIG Autodesk se développera de façon exponentielle. Merci, Fabrice le Gallo-breton, [Edité le 19/2/2010 par fabcad]
  9. Bonjour a tous, Comment en Vlisp/AutoLISP, réduire à deux sommets (point 1 et point 2) un ensemble de lwpolylignes qui possèdent plusieurs sommets. Merci d'avance, Bonne journée Fabrice
  10. fabcad

    Longueur en unités de texte

    Merci Gile, Je n'avais jamais fait attention à ces deux codes dxf des mtextes, il est dommage qu'ils n'existent pas pour les simples textes :-(. L'objet Mtexte recèle des trésors cachés :-) a+ [Edité le 16/2/2010 par fabcad]
  11. Bonjour, En regardant, les propriétés d'un mtexte via vlisp, je n'ai pas trouvé la longueur en unités de ce genre d'entité, y a t'il un moyen pour la trouver facilement. Merci, Fabrice [Edité le 16/2/2010 par fabcad]
  12. Merci, J'ai lu la routine mais aie aie les transformations vectorielles ! To be continued... Merci quand même. Fabrice
  13. Voici un début de code mais je ne sais pas comment soit en vlisp soit les codes DXF récupérer la distance en unités de la largeur du texte. (defun c:text2line () ;;; Chargement de la bibliothèque Vlisp (vl-load-com) ;;; Pointage d'une entité texte AutoCAD et conversion de celle-ci en objet vlisp (setq ovj(vlax-ename->vla-object(car(entsel)))) ;;; création d'un tableau pour le point d'insertion du textuel (setq ins(vlax-safearray->list (vlax-variant-value (vla-get-Insertionpoint ovj)))) ;;; Récupération de l'angle du textuel (setq rot(vla-get-rotation ovj)) ;;; création d'un point par rapport au point d'insertion avec une distance de 50 unités et l'angle du texte (setq ou2(polar ins rot 50)) (setq pt1 (vlax-3d-point ins)) (setq pt2 (vlax-3d-point ou2)) ;;; Récupération des objets non graphiques d'AutoCAD (setq doc(vla-get-ActiveDocument(vlax-get-acad-object))) (setq *ModelSpace*(vla-get-ModelSpace doc)) ;;; Ajout de la ligne (vla-addLine *ModelSpace* pt1 pt2 ) );fin defun
  14. Bonjour, Je sollicite les programmeurs :-) SVP :-) je souhaiterai un programme Lisp/VLisp qui travaille au niveau des textuels (textes, mtextes voire attributs de blocs). Le but étant de trouver les enchevêtrements de textuels et les polylignes sont conservées pour avoir une base de filaires de voies. Merci d'avance de votre aide, [Edité le 12/2/2010 par fabcad]
  15. Merci, Dans les trois cas, des interfaces IHM sont à créer, pour la création, la modification et la suppression. De plus,il faudrait des schémas pour bien visualiser leur hiérarchie. je souhaitais poser cette question pour pousser la fonction d'écriture sur lwpolyligne afin d'enregistrer le nom de la voie et aussi des champs qui tronçonnent le nom de la voie sur ces lwpolylignes. A creuser donc, Fabrice [Edité le 8/2/2010 par fabcad]
  16. Bonjour, Ayant consulté un livre sur le vlisp, je cherche la différence entre les Xdatas et les Xrecords Peut-on avce les Xrecords lier leur enregistrement avec des objets/entités AutoCAD, une polyligne tronçon de voie avec son type d'enrobé. Pour ceux qui n'ont pas la chance de posséder AutoCAD MAP et donc les données d'objets, cela serait de passer des valeurs alphanumériques via les xrecords dans des objets AutoCAD. Merci pour vos infos, Fabrice
  17. Merci quand même je la testerai lundi car c'est plus simple que ma fonction, moins de lignes de codes. Bon week end.
  18. J'ai trouvé, dans le code il faut utiliser (chr 35) et pas rajouter une parenthèse stupide. Grrrrrr....... Bon week end Fabrice
  19. Je souhaiterai remplacer le caractère dièse par un "\\P" qui est un caractère de contrôle de retour à la ligne pour les mtextes. Mais la je sèche : Avec (setq chaine "La Petite#Dentellière") retourne "La Petite_.impliedfacex #Dentellière" Fonction de type (rempl_caract ancien_car nouveau_car chaine) Merci
  20. Bonjour en ce matin ensoleillé à Rennes. Merci a vous deux, Un grand bravo pour la réactivité, le calque était la clé entre AutoCAD et les données d'Objets d'AutoCAD MAP. Quand aux paramètres demandés par le décapode, je pense qu'il serait plus judicieux via une case de dialogue avoir le choix entre : - des propriétés AutoCadiennes (peut etre de passer par les champs AutoCAD) - une sélection en pointant sur un textuel (texte, mtexte, attributs). - les xdatas et les données d'objets. Cela servirait a beaucoup de personnes dans la VRD, le SIG, le SIB. Merci NB si vous venez sur Saint Malo, les fruits de mer sont excellents. Pas de probleme pour vous préparer un plateau de dégustation.
  21. Merci Gile et Patrick_35, - A part la boucle cela fonctionne avec les modifs de textstyle et les CONS par apostrophes et points pour les paires pointées avec des chaines de caractères et une hauteur définie si le style de texte à une hauteur de zéro, - Il est vrai comme dit Lecrabe (Sigiste de Première Classe) que l'on pourrait demander à l'utilisateur un paramètre d'écriture (calque, xdatas et données d'objets. - Avec la fonction de Gile j'ai remplacé (vla-get-Layer pl) par (recup_pub_nom pl) qui récupère la valeur du champ de donnée d'objet PUB_NOM voici la sous routine recup_pub_nom : (defun recup_pub_nom (objet_en_cours /) ;;; Recupération du nom de la table de Données d'Objets (setq nom_de_la_table (ade_odgettables (vlax-vla-object->ename objet_en_cours))) ;;; Recupération de la valeur du champ PUB_NOM de la table de Données d'Objets (setq index_pub_nom (vl-string-left-trim " " (ade_odgetfield (vlax-vla-object->ename objet_en_cours) nom_de_la_table "PUB_NOM" 0))) ;;; Vérification si le champ est vide alors mettre "Pas de valeur" (if (/= index_pub_nom "") (setq index_pub_nom index_pub_nom) (setq index_pub_nom "Pas de valeur")) index_pub_nom ) A améliorer, Merci Fabrice [Edité le 4/2/2010 par fabcad]
  22. La même mais avec la création d'un mtext et de la justification milieu centre. (defun c:cmtxt(/ ang doc ent jus tot pt1 pt2 ptm reg) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (if (ssget (list (cons 0 "LWPOLYLINE"))) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (if (eq (vla-get-closed ent) :vlax-true) (progn (setq reg (vlax-invoke (if (= (getvar "CVPORT") 1) (vla-get-paperspace doc) (vla-get-modelspace doc) ) 'addregion (list ent) ) ptm (append (vlax-get (car reg) 'centroid) (list (getvar "thickness"))) ang 0 jus 2 );fin setq (vla-delete (car reg)) );fin progn (progn (setq tot 0) (while (< (vlax-curve-getdistatparam ent tot) (/ (vla-get-length ent) 2)) (setq tot (1+ tot)) ) (setq pt1 (vlax-curve-getpointatparam ent (1- tot)) pt2 (vlax-curve-getpointatparam ent tot) ptm (polar pt1 (setq ang (angle pt1 pt2)) (/ (distance pt1 pt2) 2)) jus 1 ) ) ) (setq hauteur_texte 5) (princ (strcat (vla-get-layer ent) " et " (angtos ang 0 2) " Degré")) (entmake (list '(0 . "MTEXT") '(100 . "AcDbEntity") '(100 . "AcDbMText") (cons 1 (vla-get-layer ent)) (cons 7 (getvar "TEXTSTYLE")) (cons 8 (vla-get-layer ent)) (cons 10 ptm) (cons 11 ptm) ;(cons 40 (getvar "textsize")) (cons 40 hauteur_texte) (cons 50 ang) (cons 71 5) (cons 72 5) (cons 73 1) ) ) (vla-delete sel) ) ) ) (vla-endundomark doc) (princ) )
  23. Voilou Voilou, Ça marche maintenant avec des cons en apostrophes et dimstyle remplacé par textstyle. Mais sur une selection de plusieurs lwpolylignes il y en a qu'une qui marche. En faisant une par une ca fonctionne , il semble que la boucle ne fonctionne pas. (defun c:ctxt(/ ang doc ent jus tot pt1 pt2 ptm reg) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (if (ssget (list (cons 0 "LWPOLYLINE"))) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (if (eq (vla-get-closed ent) :vlax-true) (progn (setq reg (vlax-invoke (if (= (getvar "CVPORT") 1) (vla-get-paperspace doc) (vla-get-modelspace doc) ) 'addregion (list ent) ) ptm (append (vlax-get (car reg) 'centroid) (list (getvar "thickness"))) ang 0 jus 2 );fin setq (vla-delete (car reg)) );fin progn (progn (setq tot 0) (while (< (vlax-curve-getdistatparam ent tot) (/ (vla-get-length ent) 2)) (setq tot (1+ tot)) ) (setq pt1 (vlax-curve-getpointatparam ent (1- tot)) pt2 (vlax-curve-getpointatparam ent tot) ptm (polar pt1 (setq ang (angle pt1 pt2)) (/ (distance pt1 pt2) 2)) jus 1 ) ) ) (setq hauteur_texte 5) (princ (strcat (vla-get-layer ent) " et " (angtos ang 0 2) " Degré")) (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText") (cons 1 (vla-get-layer ent)) (cons 7 (getvar "TEXTSTYLE")) (cons 8 (vla-get-layer ent)) (cons 10 ptm) (cons 11 ptm) ;(cons 40 (getvar "textsize")) (cons 40 hauteur_texte) (cons 50 ang) (cons 71 0) (cons 72 1) (cons 73 2) ) ) (vla-delete sel) ) ) ) (vla-endundomark doc) (princ) ) [Edité le 4/2/2010 par fabcad] [Edité le 4/2/2010 par fabcad]
  24. Pareil pour moi, je pensais au style de texte donc j'ai affecté une valeur de 5 unités au lieu de zéro mais non plus pas de textes à l'horizon. A+
  25. Bonjour, Je savais que tu serais preneur mon ami LeCrabe, J'ai noté ceci à la fin : En effet, pour le centroïde nous souhaiterions plutôt le point Center de MAP mais déjà ce programme serait la bienvenue. A+
×
×
  • 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é