Aller au contenu

bonuscad

Membres
  • Compteur de contenus

    5 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    56

Tout ce qui a été posté par bonuscad

  1. Merci Patrick_35. Ce ne sont pas pas des XData mais des Object Data d'Autocad Map. Comme je ne connais pas bien ce dernier, je me demandais si Map n'avait pas un outil dédié. Bien sur, je pourrais me faire quelque lignes de code, mais avant de réinventer la roue.... :P
  2. Bonjour, J'ai attaché des OD a des Mpolygon par une routine (environ 350) Mon problème est de savoir si tous les Mpolygon ont été traités et qu'ils aient tous des OD, mais je ne vois pas comment ont peut faire un filtre de sélection. Cela est-il possible? Faut-il procéder d'une autre manière pour pouvoir les recenser?
  3. Bonsoir, Tu as un exemple qui fait autre chose, mais qui emploi la méthode décrite par (gile).
  4. Aucune idée...! Pour moi, j'ai fais l'essai avec un bloc (avec attribut classique et champ dynamique) et cela fonctionne. C'est peut être la variable ATTDIA ou / et ATTREQ qui gêne de ton côté lors de l'insertion. [Edité le 26/3/2010 par bonuscad]
  5. Dans ta théorie, l'acheminement hydraulique ne te pose pas de problème, mais celui de barres de bois.... Je suis pas un spécialiste dans ce domaine, mais le discours me dérange un peu. Va falloir étayer un peu plus :P Amicalement
  6. Peut être de cette manière, si tu es sur que le bloc inséré est bien la dernière entité ! (sssetfirst nil (ssadd (entlast))) (c:burst) PS: J'ai essayé (BURST-ONE (entlast)) mais le problème est que cette fonction est déclarée en variable locale dans la fonction principale (donc mise à nil une fois la fonction principale C:BURST exécutée), on a donc droit à : Donc si la solution ci dessus ne fonctionne pas, je n'ai pas de réponse simple à te fournir. [Edité le 25/3/2010 par bonuscad]
  7. Salut, Tout d'abord burst n'est pas une commande native, c'est une fonction lisp. Dans ton lisp pour pouvoir l'utiliser, tu dois d'abord vérifier qu'elle est présente en mémoire. Cette étape n'est peut être pas nécessaire avec les commandes des Express qui s'initialisent d'eux même (à vérifier quand même). Dès lors tu pourra faire un appel à la fonction sous la forme (C:BURST) dans ton lisp. Par contre cette fonction principale n'a pas d'argument, tu ne pourra donc pas fournir de paramètres à cette fonction. Je t'invite à ouvrir le fichier burst.lsp et tu pourra observer qu'il y a des sous-fonction. la suivante peut être intéressante car elle accepte un argument qui est ici le nom de l'entité Dans ton lisp tu pourrais alors la solliciter avec l'entité qui tu veux. Un exemple d'appell (non testé): (BURST-ONE (car (entsel)))
  8. Merci. Effectivement je suis parti sur la routine lisp en complétant quelques points que j'avais besoin. Dans l'ensemble cela a bien fonctionné, juste 2 contours générés qui avaient des sommets en double, voir triple et qui coinçaient pour la commande Mpolygon. Par curiosité, j'ai regardé l'aide DXF sur les hachures, et je me suis aperçu que certaines options sont destinés aux MPOLYGON, ce qui me laisse penser que la conversion est peut être possible à partir des entités HATCH. J'ai bien tenté un code vite fait, mais cela n'a rien donné :( La conversion est faite, c'est l'essentiel, il ne reste plus qu'à attacher des données OD
  9. Bonjour, Juste un renseignement pour un néophyte comme moi en matière de Map. Est-il possible de transformer une hachure classique (ici motif "SOLID") n'ayant pas de contour associé, en un MPolygone pour Map.
  10. Bonjour, Dessin ou gabarit pollué par des objets AEC ou Covadis, essayer de purger les dictionnaires !... Des entités Zombies, des wipeouts ? Autre suggestion: Mettre "FILEDIA" à 0 puis utiliser la commande "_NEW" et répondre "." De cette façon vous allez démarrer un nouveau dessin avec aucun gabarit. Essayer alors vos copier-coller, voir si cela va mieux.
  11. Bonjour, C'est un problème de codage de caractères entre DOS et Windows, les pages de codes n'étaient pas les mêmes. DBTrans fonctionnait très bien, mais comme c'est un ARX il ne fonctionne que pour les 1ères versions d'Autocad sous Windows. Ressortir un vieux CD d'Autocad (2000-2000i-2002) et utiliser DBTrans sous ces versions. Autrement mettre ton dessin en ligne (que les textes, éventuellement les attributs de bloc, peuvent suffire). Une routine pourrait faire la conversion des caractères étendu (il faudra l'écrire, mais c'est réalisable je pense)
  12. Bonjour, Je ne vois pas de solution à ton problème... Pour obtenir une superposition exacte, il faudrait que tes polylignes aient le MÊME point de départ et passe exactement par les sommets suivants. Donc si une même polyligne couvre le trajet de plusieurs autres polylignes, elle ne pourra avoir plusieurs point de départ, donc la superposition ne pourra être bonne pour l'ensemble. Seule solution, dupliquer le contour de façon unique (comme si tu parcourais un trajet et non pas un contour; une espèce de maillage...) sur un autre calque. Garder tes contours multiples en gelant le calque concerné. J'espère m'être fait comprendre...
  13. bonuscad

    Oervkill - Textmask

    La commande "_EXPRESSTOOLS" Elle réinitialise complétement l'environnement des Express. Si cette commande est inconnue, c'est que les Outils express n'ont jamais été installés. Faire l'installation depuis le CD / DVD d'autocad (à moins que 2010 l'installe par défaut)
  14. Je confirme, c'est devenu une pointure. Moi je suis rester dans les chaussettes, c'est lui qui maintenant me fait progresser, mais le temps (et des fois l'envie) me manque pour décortiquer ses codes et les comprendre. Son investissement sur le site m'époustoufle, je n'en n'aurais pas fait autant :P Bravo à lui et merci !
  15. Salut fabbcad, Avec Map j'ai essayé ce code (c'est un premier jus, sans contrôles d'erreurs, de tables) et ça à l'air de fonctionner. Si ça t'inspire... (vl-load-com) (defun surf_cadastrale (xs / h a ca) (cond ((and xs (numberp xs)) (setq h (fix (cvunit xs "mètre_carré" "hectare")) a (fix (cvunit xs "mètre_carré" "are")) ca (fix (cvunit xs "mètre_carré" "centare")) ) (strcat (if (not (zerop h)) (strcat (itoa h) "h ") "") (if (not (zerop a)) (strcat (itoa (if (not (zerop h)) (- a (* h 100)) a)) "a ") "") (if (not (zerop ca)) (strcat (itoa (if (not (zerop a)) (- ca (* a 100)) ca)) "ca") "") ) ) ) ) (defun c:surf_cad2od ( / js tbl tbldef n target_obj obj_vlax data_lst tblstr fldnamelist fldtypelist fldtypelist) (or (setq js (ssget "_I")) (setq js (ssget "_P")) ) (cond (js (sssetfirst nil js) (initget "Existant Nouveau _Existent New") (if (eq (getkword "\nTraiter jeu de sélection [Existant/Nouveau] : ") "New") (progn (sssetfirst nil nil) (setq js (ssadd) js (ssget))) ) ) (T (setq js (ssget))) ) (cond (js (ade_oddefinetab '( ("Tablename" . "SURFACES-AGRAIRES") ("TableDesc" . "") ("Columns" ( ("ColName" . "NOM-SURFACE") ("ColDesc" . "Nomination de la surface") ("ColType" . "Character") ("DefaultVal" . "Où") ) ( ("ColName" . "CLASSE-SURFACE") ("ColDesc" . "Appartenance de la surface") ("ColType" . "Character") ("DefaultVal" . "Classe Surface") ) ( ("ColName" . "VALEUR-SURFACE") ("ColDesc" . "Valeur en Hectare Are Centiare") ("ColType" . "Character") ("DefaultVal" . "0ha0a0ca") ) ) ) ) (setq tbl "SURFACES-AGRAIRES" tbldef (ade_odtabledefn tbl)) (repeat (setq n (sslength js)) (setq obj_vlax (vlax-ename->vla-object (setq target_obj (ssname js (setq n (1- n)))))) (cond ((vlax-property-available-p obj_vlax "Area") (setq data_lst (list (vlax-get obj_vlax 'Layer) (itoa (vlax-get obj_vlax 'Color)) (surf_cadastrale (vlax-get obj_vlax 'Area)) ) tblstr (cdr (nth 2 tbldef)) fldnamelist () fldtypelist () ) (foreach fld tblstr (setq fldnme (cdr (nth 0 fld)) fldtyp (cdr (nth 2 fld)) fldnamelist (append fldnamelist (list fldnme)) fldtypelist (append fldtypelist (list fldtyp)) ) ) (ade_odaddrecord target_obj tbl) (mapcar '(lambda (x y) (ade_odsetfield target_obj tbl x 0 y)) fldnamelist data_lst ) ) ) ) ) ) (prin1) )
  16. Oui et non, je vais pas lui apprendre son boulot, j'ai juste indiqué une méthode rapide sur une LT. Pour bien faire, un peu d'intelligence doit suivre. Il peut travailler sur une copie de sa sélection pour mettre les textes à l'endroit, décomposer ensuite cette copie pour dissocier les textes et les remettre ces textes à leur place en masquant les anciens à l'envers. A lui de voir... Mais s'il faut décrire la démarche de A à Z pour les personnes qui appliquerait en aveugles les réponses sans aucun bon sens et sans vérifications.... Déjà le dessin d'origine qui emploi le même bloc pour définir les 2 sens d'ouvertures, (va te faire un récapitulatif avec une extraction de bloc). Ce genre dessin est grave dès le départ même sans faire aucune modif.
  17. J'ai regardé le fichier et essayé une manip En utilisant _.QSELECT (ou filtre rapide dans les propriétés) Dans dessin entier, prendre le type d'objet "Référence de bloc" dans les propriétés, prendre "Echelle X" et l'opérateur "= Egal à" et mettre la valeur -1 Une fois la sélection faites, dans le volet propriétés changer la valeur de "Echelle en X" de -1 à 1 et les bloc se retrouvent écrit à l'endroit....
  18. Hé mais il y a des rois du script ici :P Plus sérieusement, j'avais pas fais attention au forum, mais le script ne me semble pas impossible. Un export pour avoir les points d'insertion, et on réimporte dans le scu identique en xy mais opposé en Z. Peut être un déplacement de la taille du bloc à gérer si le point d'insertion n'est pas au centre de celui-ci.
  19. Changer le vecteur de la normale du bloc (comme si celui-ci avait été inséré dans une vue du dessous) Passer de (210 0.0 0.0 1.0) vers (210 0.0 0.0 -1.0) ou vice-versa
  20. Bonjour, J'avais proposé une adaptation d'un lisp de patrick_35 pour l'écriture des surfaces au format h, a, ca -> ici De là a le faire apparaitre dans la fenêtre de propriété, à part peut être avec les od de map...
  21. Bonjour, Pour des ronds pleins tu peux regarder cette réponse
  22. bonuscad

    commande _PistPlRacPbTgPtRay

    Ce qui est bizarre, la commande fonctionne dans d'autres fichiers. Dans ce projet ou ça ne fonctionne pas , la création des profils TN a été faite sur des polylignes3D existantes et non sur un maillage... D'ailleurs j'ai aussi un problème de dessin des profils en travers, il ne me réduit pas le dessin selon les paramètres (1 m du projet), donc mes profils sont systématiquement mis au 200 alors que le 100 serait bon s'il me réduisait le TN... Je bataille :P
  23. Bonjour, Dans le module profil en long, je n'arrive pas à utiliser la commande _PistPlRacPbTgPtRay (parabole Tangente Point Rayon) Voici le message en ligne de commande Que je saisisse un point au clavier ou graphiquement le *Annuler* apparait systématiquement (alors que je n'ai rien annulé) et bien sûr aucune solution n'apparait à l'écran, difficile donc de faire la sélection. Autocad Map2009 et Covadis 11.0a. Est ce un bug, ou j'ai raté quelque chose? (un paramètre dans les profondeurs de Covadis).
  24. Bonjour, Essayes ceci, ça utilise la cotation ordonnée (le style de cotation est supposé bien réglé a ton dessin) (vl-load-com) (defun c:Dim_PolyCenArc ( / js ename obj pr pt_sel seg_bulge pt_cen) (princ "\nSélectionner une polyligne.") (while (null (setq js (ssget "_+.:E:S" '((0 . "LWPOLYLINE"))))) (princ "\nCe n'est pas une LWPolyLine!") ) (setq ename (ssname js 0) obj (vlax-ename->vla-object ename) pr -0.5 ) (command "_.undo" "_begin") (repeat (fix (vlax-curve-getEndParam obj)) (setq pt_sel (vlax-curve-GetPointAtParam obj (setq pr (1+ pr))) seg_bulge (vla-GetBulge obj (- pr 0.5)) ) (if (not (zerop seg_bulge)) (command "_.dimordinate" "_none" (setq p_cen (osnap (trans pt_sel 0 1) "_cen")) "_none" (polar p_cen 0 (getvar "dimtxt")) "_.dimordinate" "_none" p_cen "_none" (polar p_cen (* pi 0.5) (getvar "dimtxt")) ) ) ) (command "_.undo" "_end") (prin1) ) [Edité le 11/3/2010 par bonuscad]
  25. Ça fait un petit moment que je n'ai pas trempé sur la gestion d'un réseau, donc je peux dire des conneries. Je pense que c'est simplement un problème de gestion de droit d'utilisateur sur les dossiers partagés du serveur. A priori, j'ai l'impression que c'est le system du serveur qui prends les droits en se rendant propriétaires des fichiers du dossier, du coup ils se retrouvent en lecture seule pour les utilisateurs non déclarés. Lors de copie sur ta station ou d'autres, le fichier reste la propriété du system du serveur et le changement de l'attribut devient impossible puisque tu n'es plus le propriétaire. Il faut bien faire le distinguo entre les attributs et les droits sur les fichiers, cela n'est pas la même chose. Normalement un admin n'a aucune difficulté à ce rendre propriétaire, un click droit sur le dossier/fichier -> propriété -> avancée (ou un truc proche) et on reprend possession des fichiers.
×
×
  • 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é