Big666 Posté(e) le 7 novembre 2012 Posté(e) le 7 novembre 2012 bonjour je revient a la charge avec plin_block je rappelle que ce lisp fonctionne très bien sur v2012 et pas sur mon poste en v2009 . certes j'ai changer des choses ,mais c'est les mes changement sur 2012.je ne comprend pas voici le code et je remercie encor une fois gille chanteau l'auteur .*ce lisp et devenue indispensable pour mon collège et pour mois qui l'est découvert nada . ;;; sf -Gilles Chanteau- 13/04/07 ;;; Insère le bloc "sf" 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 c:sf (/ 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 "sf")) (findfile (setq bloc "sf.dwg")) ) (progn ;; attribut "nom de la pièce" (if (not (setq nom (getname "Nom de la pièce"))) (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 "sf" "ech")) (vlax-ldata-put "sf" "ech" 1) ) (if (not (setq ech (getreal (strcat "\nEntrez le facteur d'échelle <" (rtos (vlax-ldata-get "sf" "ech")) ">: " ) ) ) ) (setq ech (vlax-ldata-get "sf" "ech")) (vlax-ldata-put "sf" "ech" ech) ) (setq id (vla-get-ObjectID obj) ;; Attribut périmètre (mm -> m) long (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id) ">%).Length \\f \"%lu2%pr2%ct8[1.00]\">%" ) ;; Attribut surface (mm² -> m²) aire (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id) ">%).Area \\f \"%lu2%pr2%ct8[1e-0]\">%" ) ) (setq ref (vla-InsertBlock Space (vlax-3d-point (trans ins 1 0)) bloc ech ech 1 (angle '(0 0 0) (trans (getvar 'ucsxdir) 0 (trans '(0 0 1) 1 0 T))) ) ) ;; 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 \"sf\" est introuvable.") ) (princ) ) Nous vivons tous dans le ventre d'un chien géantTout le monde le sait mais personne ne dit rien du tout ultra Vomit
(gile) Posté(e) le 7 novembre 2012 Posté(e) le 7 novembre 2012 Salut, Ce n'est pas la peine de multiplier les sujets, ça ne t'amèneras pas plus de réponses. Tu en avais commencé un, tu aurais dû continuer dans celui-là. Ceci dit, je répète ce que j'ai dit, il n'y a rien dans le code que tu as posté qui puisse provoquer une erreur.Le fichier "GetName.dcl" est-il bien dans un répertoire des chemins de recherche ?Un bloc "sf" avec 3 attributs (nom, aire, long) est-il bien présent dans le dessin ou sous forme de fichier dwg ("sf.dwg") dans un répertoire des chemins de recherche ? Par ailleurs, le message d'erreur que tu as posté dans l'autre sujet montre qu'un LISP chargé autre que pline_block a une mauvaise gestion d'erreur. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Big666 Posté(e) le 8 novembre 2012 Auteur Posté(e) le 8 novembre 2012 mea culpa Je ne comprend pas pour quoi cela ne marche pas ,lisp pline_block ;getname ;getname dcl ,sont au même endroit que tous les autres lisp qui eu fonctionne . merci de toute aide . Nous vivons tous dans le ventre d'un chien géantTout le monde le sait mais personne ne dit rien du tout ultra Vomit
alala Posté(e) le 8 novembre 2012 Posté(e) le 8 novembre 2012 Le fichier "GetName.dcl" est-il bien dans un répertoire des chemins de recherche ?Je pense que le soucis est ici, il faut ajouter le répertoire ou est situer le DCL à la liste des chemin de recherche dans les option d'AutoCad.Sous 2011 que j'ai sous la main il faut se rendre dans "Option", dans l'onglet "Fichier" puis sur "Chemin de recherche des fichiers de support"Et la ajouter une entrée correspondante à l'emplacement de ton fichier DCL. C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
Big666 Posté(e) le 8 novembre 2012 Auteur Posté(e) le 8 novembre 2012 merci et bravo je n'y aurais jamais pense car pour la version 2012 il n'y a qu'un chemin.bon ça marche Nous vivons tous dans le ventre d'un chien géantTout le monde le sait mais personne ne dit rien du tout ultra Vomit
Big666 Posté(e) le 9 novembre 2012 Auteur Posté(e) le 9 novembre 2012 je te remercie encoretu n'a pas idée du service que tu ma rendu . Nous vivons tous dans le ventre d'un chien géantTout le monde le sait mais personne ne dit rien du tout ultra Vomit
alala Posté(e) le 9 novembre 2012 Posté(e) le 9 novembre 2012 Pas de soucis, si ça peu dépanner, c'est le genre de truc qui arrive au taf et auquel on ne pense pas! C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
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