Results 1 to 3 of 3

Thread: Un champ (fied) imbriqué dans un autre

Hybrid View

  1. #1
    100 Club
    Join Date
    2002-08
    Posts
    101

    Unhappy Un champ (fied) imbriqué dans un autre

    Bonjour,

    J'ai réalisé un champ imbriqué, mais un problème m'enquiquine.

    Pour illustrer mon propos, je vous propose de tracer une ligne et d'appliquer le code d'essai suivant pour créer le champ. Il prend la longueur de l'objet et rajoute 2 valeurs en diesel. (10+5+longueur)

    ((lambda ( / )
    (vl-load-com)
    (princ "\nSélectionner une ligne.")
    (while (null (setq js (ssget "_+.:E:S" '((0 . "LINE"))))))
    (setq obj_vlax (vlax-ename->vla-object (ssname js 0)))
    (setq
    AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
    Space
    (if (= 1 (getvar "CVPORT"))
    (vla-get-PaperSpace AcDoc)
    (vla-get-ModelSpace AcDoc)
    )
    )
    (initget 1)
    (vla-addMtext
    Space
    (vlax-3d-point (trans (getpoint "\nPoint d'insertion du champ: ") 1 0))
    0.0
    (strcat
    "%<\\AcDiesel $(+,10,5,"
    "%<\\AcObjProp Object(%<\\_ObjId "
    (itoa (vla-get-ObjectID obj_vlax))
    ">%).Length>%"
    ")>%"
    )
    )
    ))

    Si le champ est bien créé, le problème vient que si je déplace un sommet, et que j'utilise METTREAJOURCHAMP (_updatefield), il me signale bien que 2 champ ont été trouvés et mis à jour.
    Le problème c'est que la valeur n'est pas mis à jour (ni lors d'une sauvegarde et réouverture ultérieure)
    Cependant si je double-clique sur le champ pour entrer dans l'éditeur de Texte-Multiligne et que je fais un click-droit (avec le curseur sur le champ, pas en dehors) pour obtenir le menu contextuel dans lequel je choisis "Mettre à jour le champ".
    Grâce à cette manip. le champ dans ce cas se met à jour.

    Comment faire pour mettre à jour ce champ simplement sans rentrer dans l'éditeur de texte.

    La question n'est pas simple et risque de rester sans réponse, surtout que ça à l'air d'être un dysfonctionnement de la commande _updatefield....
    Une piste?

    Merci déjà de m'avoir lu.

  2. #2
    Member
    Join Date
    2009-11
    Posts
    2

    Default Re: Un champ (fied) imbriqué dans un autre

    Essai avec ce lisp :

    (defun c:az (/)
    (setq ss (ssget "_x" '((8 . "XXXXX"))))
    (command "_.updatefield" ss "")

    XXXX = nom du calque où sont les champs

    A +++

    phil_vsd

  3. #3
    100 Club
    Join Date
    2002-08
    Posts
    101

    Lightbulb Re: Un champ (fied) imbriqué dans un autre

    Merci de ton aide,

    J'ai bien essayé ta suggestion, mais cela ne résous pas le problème.

    Sache que depuis mon 1er post, j'ai trouvé la solution.
    (il vaut mieux, dans le cas là, utiliser "AcExpr" que "AcDiesel")

    Donc en remplaçant par
    (strcat
    "%<\\AcExpr ("
    (rtos 10.0 2 (getvar "LUPREC"))
    " + "
    (rtos 5.0 2 (getvar "LUPREC"))
    " + "
    "%<\\AcObjProp Object(%<\\_ObjId "
    (itoa (vla-get-ObjectID obj_vlax))
    ">%).Length>%) \\f \"%lu6\">%"
    )

    dans le code exemple du 1er post, cela fonctionne très bien.

    Sujet résolu pour le lecteur de par ta réponse.

Similar Threads

  1. Champ nombre vide
    By m.bize.206400 in forum Revit Architecture - L'art et la manière
    Replies: 0
    Last Post: 2012-02-14, 07:14 AM
  2. Profondeur de champ
    By batproj in forum Français - 3ds Max / Maya
    Replies: 2
    Last Post: 2010-06-14, 09:11 PM
  3. adapter ossature imbriqué
    By yusukens82 in forum Revit Architecture - Familles
    Replies: 6
    Last Post: 2008-10-02, 01:12 PM
  4. ''link'' dans un autre fichier
    By rachidqc in forum Revit Architecture - Général
    Replies: 1
    Last Post: 2008-07-15, 02:44 PM
  5. Rotation d'objet imbriqué
    By lau.gay in forum Revit Architecture - Familles
    Replies: 1
    Last Post: 2007-09-28, 09:58 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •