VtKp
Membres-
Compteur de contenus
88 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par VtKp
-
Bonjour a tous Tramber ou gile ou quiconque Help !!!! Please Je ne m'en sors vraiment pas avec mon grid Si c'est infaisable, je reprend mon lisp de départ mais sinon donnez moi des pistes si vous avez 2 min Merci
-
Bonjour Je cherche depuis des heures le moyen de modifier les valeurs de mes xdatas affiches dans le control bar J'ai cherche dans les fonctions de grid de Opendcl mais existe t-il un moyen d'editer une cellule dans un grid avec Opendcl et faire appliquer ces motifs a l'xdata correspondante ? Je crois que Tramber est un as sur le sujet Non ? Merci encore de votre aide.
-
Bonjour, Afin de résoudre le problème de non-affichage des valeurs xdata d'une entité dans AutoCAD, j'ai fais un control bar qui affiche les valeurs xdata dans cette control bar en sélectionnant une entité. Merci de m'indiquer si ce code marche, si il peut être améliorer ou s'il doit être modifier afin de ne pas planter ou mettre une erreur si l'utilisateur sélectionne une autre entité qu'une polyligne par exemple. Pour le faire marcher, il faut d'abord tracer par exemple 3 polylignes 3D dans le calque Buse. Renseigner les 3 entités avec le lisp fourni en réponse 10. Installer (si ce n'est pas déjà fait) OpenDcl Placer le fichier aff_xdata.lsp dans le répertoire C:/Temp/ Loader dans autocad le fichier Aff1.lsp Lancer en barre de commande le lisp "aff1" Cliquer sur le bouton "Infos" de la control bar Sélectionner une entité (auparavant dessiné) Voir si les renseignements s'affiche dans la control bar. Je débute en Lisp surtout avec Opendcl donc merci de m'indiquer si avec la version d'AUtocad le code marche et s'il peut être amélioré car je suis sur que j'oubli des trucs. Le code et le fichier odcl sont ici : Le code : (defun c:aff1 (/ ) (setvar "CMDECHO" 0) (command "OPENDCL") (dcl_Project_Load "C:/Temp/aff_xdata.lsp" T) (dcl_Form_Show aff_xdata_Form_Xdata) (dcl_Grid_AddColumns aff_xdata_Form_Xdata_GRL1 (list "Etiquette")) (dcl_Grid_AddColumns aff_xdata_Form_Xdata_GRL1 (list "Valeur")) (princ) ) (defun c:aff_xdata_Form_Xdata_BUT7_OnClicked (/ ent) (prompt "\nSélectionner une entitée renseignée : ") (setq ent (car (entsel))) (if (and (/= (cdr (assoc 8 (entget ent))) "Buse") (/= (cdr (assoc 0 (entget ent))) "POLYLINE") ) (progn (alert "L'entité sélectionné n'est pas valable") (exit) ) (progn (prompt "\n ") (dcl_Grid_Clear aff_xdata_Form_Xdata_GRL1) (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "ObjectID") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Type_Conduite") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Diamètre") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Longueur") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Pente") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Num_Regard_Haut") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Num_Regard_Bas") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Nom_Rue") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Abandonnée") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Ref_Rec") (dcl_Grid_AddString aff_xdata_Form_Xdata_GRL1 "Precision_Rec") (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 0 1 (cdr (assoc 5 (entget ent)))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 1 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("TYPE_CONDUITE"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 2 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("DIAMETRE"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 3 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("LONGUEUR"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 4 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("PENTE"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 5 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("NUM_REG_HAUT"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 6 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("NUM_REG_BAS"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 7 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("NOM_RUE"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 8 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("ABANDONNEE"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 9 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("REF_REC"))))))) (dcl_Grid_SetCellText aff_xdata_Form_Xdata_GRL1 10 1 (cdr (assoc 1000 (cdadr (assoc -3 (entget ent '("PRECISION_REC"))))))) ) ) ) (defun c:aff_xdata_Form_Xdata_QBUT1_OnClicked (/) (dcl_Form_Close aff_xdata_Form_Xdata) ) (princ) Le fichier odcl '("YWt6A94MAACJezSOBuKT6LcVLS9quMHKNw2taOoor9OmFD902M83C50uDtIIPq/7bKTK/6Q3yhQO" "rdOtvOuQI5a43/Q9SPzGbqOHeXawJJnzVWnzmaJyicPRL1co1p4DwpqAkEeJoo/FiVO2M5kuBl1l" "7+hZ93KEr/UPB31+4Pr/Nvsauttf9ChPiF9UwdNmPs3CJKxRx0uM2m/poiTPOW/t4oTSOHRTNvbT" "KUKk2tpboRowXVjaWlhAFDX3Kc0my+vG80Zez0ow5crubBDoyB0c9fcp4SbLKKKEeS/dP8u5q4wc" "dzJ+pBPluirDZx1G8m9nnsCsfrNdqmsDdLDYORxr7DhNbYix2FeXzcf5bkK3Ql7QDYCJWxlUfYAG" "CeOjhKFYwD0C9QbHESbfnM7cTvEDaOZYMTHKmE8qa0Uck1n2Dbox9/FtIV5ANeKPzSPeNGpoFmtR" "LtZl5c55xQtay8DkVSwmWfW7xU33DDXk+vXtOlk4r/AfcrSIZ+xzrXEN4wQH64Zkj2ucn6yAzs0V" "+PY5NM1ghtiFG/KSefexLoKx2ye3jcqNyYWZdauB+s7xZdaAKalhFVHNm1Ue9DvYrRPkPbQrwDt0" "CZ3WMpjGQn1Mixis97uowD+c11gYz/KE3cm1fJQcizeSP+Hq6NSJB/TI5oSkm8Y1x6XPcK4CWv9K" "RAXlNAvpne2Uwf3aqT/C7QZFTzaEUq7rSmDxHsm0FXvNMk0kzOB7baL8YArWInCuaNRfAP8kMU1O" "EffhmSVWD+iUwV+B6botJpqdCdaJjxWMATvigrVspTWPMW/NejFtUVqgQcFahf86i6AT3ZFEQ226" "P5kRxZnvgkebNQ1UnOUqpV2UWGsjQ1zbpMdnbMGCDbclNwVa4Ttnt0HdhHGXNsc2HYe7bx+dB/D2" "Eh5w8PYnYnft/sU90/4Yot+/grPphr0tQMoz0LPKItA5mK93gcWbsJ6hRJ9JVoVBCmQZid8tIpKB" "4UdNsTIzQX5GzPZ7") Je n'ai pas réussi à trouver de site pour déposer le fichier Odcl Ci-joint n'accepte pas les fichiers avec extension odcl Petite correction : Enregistrer le code du fichier odcl dans un fichier aff_xdata.lsp dans le répertoire C:/Temp Supprimer les lignes vides et les espaces vides lors du copier-coller dans le fichier aff_xdata.lsp Il sera chargé automatiquement au lancement du lisp Opendcl peut être téléchargé ici http:// http://www.opendcl.com/download/ J'espère que vous allez pouvoir tester ce code. En attendant vos réponses Merci par avance de votre aide. [Edité le 20/3/2011 par VtKp]
-
Bonjour a tous J'ai pu m'en sortir avec ssgetfirst Merci encore a tous de votre aide. Pour ce post
-
Bonjour a tous Je viens de voir Que l'on peut avec Opendcl crée une control bar. Pensez vous que l'on peut récupérer par simple sélection dans Autocad un peu le même principe que la fenêtre propriétés d'Autocad récupère les propriétés Xdata d' une entité ? Il faudrait connaitre dans ce cas la variable qui stocke l'entité sélectionne a l'écran un peu comme quand on fait un (settq ent (car (entsel))) Savez vous quelle est la variable en question ? Ainsi on pourrait afficher les xdatas d'une entité comme map avec les od ou les attributs d'un bloc ? Merci par avance de votre aide.
-
Oui c'est sûr Je vais reprendre mon lisp pour renseigner d'autres entités avec d'autres attributs mais j'ai compris le principe et l'erreur de plusieurs appli à ne pas faire. Merci encore de ton aide
-
Bonjour Bonuscad Sérieux ca marche nickel Merci, au moins je n'aurais pas perdu toutes mes données Tu as fait la distinction entre les codes de groupe 1000,1002 et 1005, en effet je pense que c'est mieux pour traiter les donnees dans le SIG après sous Esri Ensuite, quand je converti en OD grace au lisp de Fabcad xd2od.lsp, j'ai tous les champs et leurs valeurs que je peux ensuite exportés au format shape et faire des requetes sous Esri. Milles merci. Je pense que je peux cloturer ce sujet non ?
-
Bonjour Bonuscad, Oui en effet, j'ai adapté le lisp de Bred à mon besoin et je me suis rendu compte après qu'une appli xdata aurait suffit et m'aurait éviter des problèmes lors de la conversion en OD. Mais voila, j'ai maintenant un peu plus de 1000 entités déjà renseignés avec ce lisp et j'essaye de faire un autre lisp qui me remplace par entité toutes les applis par une seule xdata en regroupant les champs mais je n'y arrive pas. D'ou ma question en réponse 13 et 15, j'ai bien essayé avec entmod mais je n'y arrive pas je bloque depuis 4 jours sur ce problème J'ai essayé aussi la manip de fabcad mais sans résultat Je ne peux pas perdre les données déjà entrées, ca serait dommage Merci par avance de ton aide
-
Pourquoi Cadmin ou Webmaster ne repon pas C'est quand meme fou ca !!!!!!!
-
C'est vrai Que ca commence a faire les doublons dixit Didier
-
Bonjour Fabcad Peux tu m'indiquer la procedure sous Esri ? J'ai cherche et Je n'arrive pas a utiliser mes xdatas. Par contre quand Je les converti en object data puis converti en shape J'ai tous Mais par nom d'applications unique. Merci par avance de ton aide.
-
Bonjour a tous J'ai essaye ta routine fabcad et J'ai des problemes avec les xdatas de mes entites car Je n'ai pas une application mais plusieurs pour mes entites et du coup Je ne Peux Convertir qu'un champ xdata en objet data a la fois par nom d'applications. Existe il un lisp qui regroupe tous Les noms d'applications dans une seule car c'est lourd a gerer et j'ai un peu plus de 1000 entites a traiter entre les conduites et les regards ? Oui fabcad c'est pour utiliser ces données sous Esri avec d'autres donnes du même type. J'ai développe cet outil de saisie sous Autocad car la saisie sous Esri et le trace d'entites est beaucoup moins aise que sous Autocad. Il me reste a importer mes Xdata sous Esri via un shape mais j'ai un problème avec le nom de mes applications D'ou ma question Merci par avance de vos réponses
-
Bonjour a tous Après plusieurs recherches il est en effet complique sans programmation de faire des requetes sur les xdatas. Je pense qu'il faudrait Convertir les xdatas en object data puis le fichier dwg contenant les objects data en shapefile pour importer le fichier sous Esri. La saisie d'entites sous AutoCad reste quand meme plus simple Que sous Esri. Conaissez Vous donc un lisp qui permettent de Convertir les xdata en object data dans une seule application car dans mon cas J'ai plusieurs cas et cela risque de poser des problemes pour les champs de mon shapefile ? Merci par avance de votre aide
-
Pour dans mon cas renseigner DES conduits d'un reseau d'assainissement ou AEP par exemple Teste Le lisp pour s'il marche - Sujet precedent Le tien
-
J'ai modifié mon code en réponse 10. Le lisp marche maintenant. Si ca peut interressé certains d'entre vous J'ai oublier de preciser pour les testeurs Que la conduite a renseigner doit se Trouver dans Le Calque buse et doit être une polyligne 3d Par contre comment maintenant peut on faire des requetes sur les entites renseignes par rapport aux valeurs des champs xdata ? Merci par avance de votre aide [Edité le 13/3/2011 par VtKp]
-
Bonjour à tous, C'est bon j'ai pu trouver une solution à mon problème. C'était un problème de copier-coller des fonctions Test-Xdata et Set-xData qui viennent de Bred. Merci encore à Bred. Par contre, dernière petite question avant de cloturer cette discussion, est il possible sans être obligé d'avoir AutocadMap d'afficher dans la fenêtre de propriétés les attributs Xdata d'une entité ? J'ai vu qu'on pouvait convertir les Xdata en Object data de Map mais il est vraiment dommage qu'on ne peut afficher les xdata d'uen entité dans la fenêtre propriétés directement. Pensez vous que cela est possible ? Merci par avance de vos réponses. ,
-
Bonjour à tous, Voici un bout de code que j'ai essayé d'adapter à mon besoin mais il ne marche pas. Il s'agit d'un code que j'ai repris de cette discussion. http://www.cadxp.com/XForum+print-fid-144-tid-18022.html mais il ya un souci car j'ai le retour erreur: no function definition: VLA-OBJECT à la ligne (not (Test-Xdata ent)) et je ne comprends pas pourquoi ??? Je ne me suis plus plongé dans la prog Lisp depuis longtemps maintenant et là je butte...... Merci par avance de votre aide. ;;;Programme Demandant/Donnant la liste Xdata dans entité. Conduite EU-EP (defun c:xd2 (/ ENT I LST-D VLA-OB) (vl-load-com) (setq ent (car (entsel "\nChoisir la buse à renseigner :"))) (if (and (/= (cdr (assoc 8 (entget ent))) "Buse") (/= (cdr (assoc 0 (entget ent))) "POLYLINE")) (progn (alert "L'objet sélectionné n'est pas une polyligne 3D dans le calque Buse") (exit) ) (progn (if ent (progn (setq vla-ob (vlax-ename->vla-object ent)) (vla-getxdata vla-ob "" 'xType 'xData) (if (not (Test-Xdata ent)) (progn (setq lst-D (C_EU) i -1) (Set-xData ent (list "ENTITE" (vla-get-handle vla-ob))) (repeat (/ (length lst-D) 2) (Set-xData ent (list (nth (setq i (1+ i)) lst-D) (nth (setq i (1+ i)) lst-D))) ))))) ) ) (princ) ) ;; Boite de dialogue Demande de renseignements (defun C_EU (/ tmp file dcl_id typ box1 box2 box3 box4 box5 box6 box7 lst1 lst2 lst3 lst4 lsta lstp lstc lstd) ;; créer un fichier temporaire et l'ouvrir en écriture (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w")) ;; écrire dans le fichier (write-line (strcat "MRen_EU:dialog { label = \"Conduite EU\"; initial_focus = \"lst1\"; :edit_box { key = \"box1\"; label = \"ObjectID : \"; edit_width = 10; } :popup_list { key = \"lst1\"; label = \"Type de conduite : \"; edit_width = 10; } :popup_list { key = \"lst2\"; label = \"Diamètre : \"; edit_width = 10; } :edit_box { key = \"box2\"; label = \"Longueur Conduite : \"; edit_width = 10; } :edit_box { key = \"box3\"; label = \"Pente : \"; edit_width = 10; } :edit_box { key = \"box4\"; label = \"Num. Regard Haut : \"; edit_width = 10; } :edit_box { key = \"box5\"; label = \"Num. Regard Bas : \"; edit_width = 10; } :edit_box { key = \"box6\"; label = \"Nom de la Rue : \"; edit_width = 10; } :popup_list { key = \"lst3\"; label = \"Abandonnée : \"; edit_width = 10; } :edit_box { key = \"box7\"; label = \"Ref_Recolement : \"; edit_width = 10; } :popup_list { key = \"lst4\"; label = \"Précision recolement : \"; edit_width = 10; } spacer; ok_cancel; } ") file ) ;; fermer le fichier (close file) ;; charger le fichier (setq dcl_id (load_dialog tmp)) ;; Appeler la boite de dialogue (if (not (new_dialog "MRen_EU" dcl_id)) (exit) ) (set_tile "box1" "1") (set_tile "box2" "0") (set_tile "box3" "0") (set_tile "box4" "0") (set_tile "box5" "0") (set_tile "box6" "0") (set_tile "box7" "0") (setq lstp '("Faux" "Vrai")) (setq lsta '("Non" "Oui")) (setq lstc '("Fonte" "PVC" "Béton")) (setq lstd '("Ø60" "Ø80" "Ø100" "Ø120" "Ø150" "Ø200" "Ø250" "Ø300" "Ø400" "Ø500" "Ø600" "Ø800" "Ø1000")) (start_list "lst1") (mapcar 'add_list lstc) (end_list) (start_list "lst2") (mapcar 'add_list lstd) (end_list) (start_list "lst3") (mapcar 'add_list lstp) (end_list) (start_list "lst4") (mapcar 'add_list lsta) (end_list) ;; action si l'utilisateur clique "OK" : ;; lst = liste des entrées et fermeture de la boite (action_tile "accept" "(setq typ (list (get_tile \"box1\") (nth (atoi (get_tile \"lst1\")) lstc) (nth (atoi (get_tile \"lst2\")) lstd) (get_tile \"box2\") (get_tile \"box3\") (get_tile \"box4\") (get_tile \"box5\") (get_tile \"box6\") (nth (atoi (get_tile \"lst3\")) lsta) (get_tile \"box7\") (nth (atoi (get_tile \"lst4\")) lstp) ) ) (done_dialog)" ) ;; afficher la boite de dialogue (start_dialog) ;; décharger la boite de dialogue (unload_dialog dcl_id) ;; supprimer le fichier (vl-file-delete tmp) (setq typ (list "OBJECTID" (nth 0 typ) "TYPE_CONDUITE" (nth 1 typ) "DIAMETRE" (nth 2 typ) "LONGUEUR" (nth 3 typ) "PENTE" (nth 4 typ) "NUM_REG_HAUT" (nth 5 typ) "NUM_REG_BAS" (nth 6 typ) "NOM_RUE" (nth 7 typ) "ABANDONNEE" (nth 8 typ) "REF_REC" (nth 9 typ) "PRECISION_REC" (nth 10 typ) ) ) ) ;;; Routine Enregistrement Xdata dans entité : (Set-xData '("Nom" "Toto")) (defun Set-xData (ent lst / VLA-OB XDATA XTYPE) (if (equal (type ent) 'ENAME)(setq ent (vlax-ename->vla-object ent))) (setq xData (vlax-make-safearray vlax-vbVariant (cons 0 1)) xType (vlax-make-safearray vlax-vbInteger (cons 0 1))) (vlax-safearray-fill xData lst) (vlax-safearray-fill xType '(1001 1000)) (vla-setxdata ent xType xData) ) ;;; Test Existance Xdata (defun Test-Xdata (ent) (if ent (progn (setq vla-ob (vlax-ename->vla-object ent)) (vla-getxdata vla-ob "" 'xType 'xData) (if (and xType xData) (progn (setq l (mapcar 'vlax-variant-value (vlax-safearray->list xData)) i -1 txtt "") (repeat (/ (length l) 2) (setq txtt (strcat txtt "\n" (nth (setq i (1+ i)) l) ": " (nth (setq i (1+ i)) l)))) (alert (strcat "Xdata Existants : \n" txtt)) t ) ))) ) [Edité le 12/3/2011 par VtKp]
-
Bonjour a tous Il manque en effet Que Le trace du carroyage de la zone voulue pour terminer ce lisp Deja fort utile. Si les cadors du lisp nous lisent Merci encore de votre aide
-
Bonjour a tous Merci pour vos reponses Gile Merci pour cet Outil Je vais si avec les differents examples en lisp Je ne Peux pas me faire un Outil plus specifique Je reviens vers Vous si J'ai des problems Merci encore
-
Bonjour a tous Merci pour vos reponses. Gile, ton lisp sert a modifier des xdatas existantes et non a en Creer maic cet Outils me semble indispensable pour modifier des donnees. Bonuscad, Le second lisp Que tu Donne en reponse 3 semble correspondre a Ma demande mais je ne sais pas comment l'adapter pour renseigner une polyligne avec uniquement les champs dont J'ai besoin. Mes connaissances en lisp sont assez limitees d'ou Ma demande. J'ai Deja trouvé le moyen de les exporter et donc de les exploiter Mais il me manque un Outil de saisie Merci par avance de votre aide
-
Bonjour a tous J'ai un reseau de conduite AEP sur Autocad Que Je dois renseigner comme des blocs aced attributes Après plusieurs recherches il semble Que les xdatas soient la solution a mon probleme Serait il possible a votre Avis de Creer une routine me permettant de renseigner mes conduites avec dans l'ordre Le diametre, la profondeur, la nature de Ma conduit, la longueur, Le nom de rue et un identifiant qui s'incrementerait automatiquement ? J'ai trouvé un lisp de Giles qui permet de visualiser les xdatas Mais pas d'outil pour saisir les donnees Merci encore de votre aide si Vous lenses Que cela est possible
-
Bonjour Marche très bien sur AutoCAD. 2010 Il manque cependant le trace du carroyage du rectangle A voir si ça peut se programmer
-
Generer N blocs depuis Plines closes / MPolygons
VtKp a répondu à un(e) sujet de lecrabe dans Routines LISP
Bonjour lecrabe Comment doivent être tes blocs ? un bloc simple, un bloc avec attribute increments -
Grand sapin Il y a deborde et deborde En ce qui me concerne, Ingenieur dans un petit cabinet de géomètre je gère tout et mon patron ne fais rien Et tous les jours je suis a 3000 km/h Je gère 5 gars et traite les dossiers du début a la fin pour un salaire de 2500 euro Pas de quoi pavaner avec tout ce que je fais
-
Merci Bryce Ça marche perfecto Je pense que l'on peut clôturer ce post maintenant Merci encore de votre aide a tous
