blizard Posté(e) le 21 février 2008 Partager Posté(e) le 21 février 2008 merci pour la réponse, ce lisp est vraiment tres utile, par contre je n'arrive pas encore vraiment à saisir comment je peut mettre mon tableau à jour après que ma polyligne ait été modifiée. Comment met-on à jour les champs? Lorsque je fais regen les surfaces des polylignes modifiés se corrige, mais le tableau d'export ne se modifie pas. [Edité le 21/2/2008 par blizard] Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 22 février 2008 Auteur Partager Posté(e) le 22 février 2008 Salut, Quand tu modifies une polyligne liée à un bloc "pline_block", tu peux mette à jour les attributs/champs avec les commandes METTREAJOURCHAMP ou REGEN.Quand les attributs/champs ont été mis à jour, le tableau d'extraction est devenu obsolète et il devrait apparaître dans la zone de notification l'information suivante : http://img442.imageshack.us/img442/8900/extattbexu9.png Si elle n'apparaît pas, vérifie que l'option "Activer les notifications..." est bien cochée quand tu fais clic droit sur l'icône "Extraction d'attributs" de la barre d'état. http://img20.imageshack.us/img20/1908/extattbe2dx9.png Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
blizard Posté(e) le 22 février 2008 Partager Posté(e) le 22 février 2008 c superbe!!!, merci mille fois pour l'aide!merci encore Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité davidly Posté(e) le 23 mars 2011 Partager Posté(e) le 23 mars 2011 Salut,J'ai un souci quand j'installe pline_block sur les autres PC de mon travail, ça ne fonctionne pas correctement, sur le mien pas de problème par contre les autres pas terrible: - le getname fonctionne y a pas de souci dessus - par contre au niveau de la surface et du périmètre j'ai ça d'afficher ####.Si quelqu' pouvais me conseiller ce serais pas mal. Merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 23 mars 2011 Auteur Partager Posté(e) le 23 mars 2011 Salut, Difficile de répondre comme ça. As tu modifié le LISP ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité davidly Posté(e) le 24 mars 2011 Partager Posté(e) le 24 mars 2011 Salut Gile,J'avais mis celui que j'avais modifié et j'avais ce problème donc après j'ai retéléchargé le tien sur ton site perso et là pareil. Est ce que c'est pas lié directement par rapport au paramètre d'autocad? Le fichier DCL est bien dans le fichier de support d'autocad aussi non il ne trouverait pas le nom et les deux fichiers lisp sont eux aussi bien ranger, je ne comprend pas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 24 mars 2011 Auteur Partager Posté(e) le 24 mars 2011 Si tu as #### qui s'affiche, c'est que la formule de champ n'est pas valide.Vérifie dans le code (en utilisant le mode d'emploi : Pline_block.pdf et la boite de dialogue de la commande CHAMP) que la formule correspond bien au champ que tu veux obtenir. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité davidly Posté(e) le 25 mars 2011 Partager Posté(e) le 25 mars 2011 J'ai vérifié en double cliquant sur le champ, il indique dans la colone "nom du champ": *inconnu* que ce soit avec le pline_block que j'ai modifié par rapport à des expliquation que tu as donnée ou avec le lisp d'origine. J'ai le même problème avec le lisp surf sur les autres poste ça ne fonctionne pas correctement. Par contre ton lisp totalarea fonctionne et met d'une grande utilité.Encore merci pour tes réponses. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité davidly Posté(e) le 30 mars 2011 Partager Posté(e) le 30 mars 2011 J'ai vérifié sur les autres postes de l'agence, il travaille sur un autocad V2008 32bit et moi un 64bit peut-être que ça vient de là. Je sais que j'ai déjà vu ça sur un forum mais peut-on avec pline_block faire pour qu'il s'arrête au deuxième chiffre après la virgule sans qu'il arrondissent.Merci pour vos réponse. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce Posté(e) le 30 mars 2011 Partager Posté(e) le 30 mars 2011 Bonjour, Sans vouloir marcher sur les plate-bandes de (gile), et en attendant qu'il te réponde, j'ai modifié pline_block.lsp pour le rendre compatible 32 et 64 bits.Je n'ai pas testé (pas de 64 bits pour le moment), mais ça devrait fonctionner : ;;; Pline_block -Gilles Chanteau- 13/04/07 ;;; Insère le bloc "pline_block" après sélection d'une polyligne ;;; Attribut 1 : Nom de la pièce ;;; Attribut 2 : Longueur de la polyligne ;;; Attribut 3 : Aire de la polyligne (defun GetObjectID ( obj doc ) ;; Lee Mac (if (eq "X64" (strcase (getenv "PROCESSOR_ARCHITECTURE") ) ) (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false ) (itoa (vla-get-Objectid obj)) ) ) (defun c:pline_block (/ AcDoc Space bloc nom ent obj ins op reg ech id long aire ref) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (if (or (tblsearch "BLOCK" (setq bloc "Pline_block")) (findfile (setq bloc "Pline_block.dwg")) ) (progn ;; attribut "nom de la pièce" ;; possibilité de changer le titre de la boite de dialogue "Choisir un nom" (if (not (setq nom (getname "Choisir un nom"))) (setq nom "") ) (while (not (setq ent (car (entsel))))) (setq obj (vlax-ename->vla-object ent)) (if (= "AcDbPolyline" (vla-get-ObjectName obj)) (progn (if (not (setq ins (getpoint "\nSpécifiez le point d'insertion ou < Centre >: " ) ) ) (progn (if (= (vla-get-closed obj) :vlax-false) (progn (vla-put-closed obj :vlax-true) (setq op T) ) ) (setq reg (vlax-invoke space 'addRegion (list obj)) ins (vlax-get (car reg) 'Centroid) ) (if op (vla-put-closed obj :vlax-false) ) (vla-delete (car reg)) ) ) (if (not (vlax-ldata-get "Pline_block" "ech")) (vlax-ldata-put "Pline_block" "ech" 1) ) (if (not (setq ech (getreal (strcat "\nEntrez le facteur d'échelle <" (rtos (vlax-ldata-get "Pline_block" "ech")) ">: " ) ) ) ) (setq ech (vlax-ldata-get "Pline_block" "ech")) (vlax-ldata-put "Pline_block" "ech" ech) ) (setq id (GetObjectID obj AcDoc) ;; Attribut périmètre (mm -> m) long (strcat "%<\\AcObjProp Object(%<\\_ObjId " (id) ">%).Length \\f \"%lu2%pr2%ct8[0.001]\">%" ) ;; Attribut surface (mm² -> m²) aire (strcat "%<\\AcObjProp Object(%<\\_ObjId " (id) ">%).Area \\f \"%lu2%pr2%ct8[1e-006]\">%" ) ) (setq ref (vla-InsertBlock Space (vlax-3d-point (trans ins 1 0)) bloc ech ech 1 0.0 ) ) ;; attribution de leur valeur aux attributs (mapcar '(lambda (x y) (vla-put-TextString x y)) (vlax-invoke ref 'GetAttributes) (list nom long aire) ) (vla-regen AcDoc acActiveViewport) ) (alert "L'objet sélectionné n'est pas une polyligne.") ) ) (alert "Le bloc \"Pline_block\" est introuvable.") ) (princ) ) Edit: corrigé un oubli... [Edité le 30/3/2011 par bryce] Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 30 mars 2011 Auteur Partager Posté(e) le 30 mars 2011 Salut, Tu peux essayer la version proposée par bryce, mais personnellement je n'ai aucun problème avec la version originale sur AutoCAD 2011 64 bits. qu'il s'arrête au deuxième chiffre après la virgule sans qu'il arrondissent. ????Je ne comprends pas la demande, mais de toute façon c'est le formatage du code champ (CF le mode d'emploi) qui détermine le nombre de décimales. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité davidly Posté(e) le 31 mars 2011 Partager Posté(e) le 31 mars 2011 Merci pour vos réponse rapide et pour le lisp modifié.Ce que je disais c'est que je travaille avec un 64 bits et que je n'est aucun problème.Pour ma question sur ne pas arrondir la valeur de ma surface, quelqu'un pourrait me répondre, je m'explique. Quand j'utilise pline_block pour les surfaces de chacune de mes pièces et ensuite que j'utilise totalarea pour ma surface de logement la surface total ne correspond pas à l'addition de toutes les surfaces indiquée par pline_block.Merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 1 avril 2011 Auteur Partager Posté(e) le 1 avril 2011 Salut Tout ça est, à mes yeux, très normal.Si on considère un exemple très simple où les nombres sont arrondis au nombre entier : 3.6 est arrondi à 44.7 est arrondi à 5 la somme : 3.6 + 4.7 = 8,3 est arrondie à 8la somme des arrondis = 4 + 5 = 9 On retrouve la même chose avec des cotes suivant qu'on utilise des cotes continues ou cumulées : http://img171.imageshack.us/img171/2442/arrondi.png Donc, si je comprends bien, tu préfères avoir la somme des arrondis qui, bien qu'elle soit moins précise que l'arrondi de la somme, correspond à ce qui est affiché (autrement dit, "forcer" la cote pour qu'elle marque 9). Ce n'est donc pas pline_block qu'il faut modifier mais TotalArea.J'avais répondu à une demande similaire ici. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant