Demixav Posté(e) le 12 juin 2017 Posté(e) le 12 juin 2017 Bonjour, J'ai un bloc comprenant des points topo covadis ayant un attribut altitude. J'ai déplacé mon bloc en altitude et je souhaiterai que l'altitude des points topo se mettent à jour sans décomposer le bloc... c'est possible déjà? si oui, comment faire? Je précise que "cov.edition→pts topo→ z→alt" ne fonctionne pas avec les blocs! Merci et bonne journée!Xav AutoCad Map 3D 2011 - Covadis v16.0dWindows 7 - 64b
didier Posté(e) le 12 juin 2017 Posté(e) le 12 juin 2017 Coucou Je réponds à la première question : NON ce n'est pas possibleEt la deuxième question devient sans objet Je dis que ce n'est pas possible, c'est avec les outils de baseAvec un lisp bien sûr que tu peux le faire. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Demixav Posté(e) le 12 juin 2017 Auteur Posté(e) le 12 juin 2017 Salut Didier, Merci pour ta réponse... je m'en doutais un peu mais bon, sait on jamais! Le LISP... Ô grand mystère !!! :( Bonne fin de journée!Xav AutoCad Map 3D 2011 - Covadis v16.0dWindows 7 - 64b
bryce Posté(e) le 12 juin 2017 Posté(e) le 12 juin 2017 Bonjour, Le lisp suivant devrait t'aider: majZLe nombre de décimales souhaité est modifiable directement dans le fichier (3 par défaut). Le code: (defun c:MAJZ (/ obj acdoc precision *error* oldcmdecho blk b att ss ins) ; Met à jour pour toutes les références du bloc choisi un attribut sélectionné, ; pour y afficher la coordonnée Z du bloc. ; Brice Studer, mars 2011 ; ;~~~~~~~ CONFIG ~~~~~~~~~~~ (setq precision 3) ; nombre de décimales de l'altitude ;~~~~~~~ FIN CONFIG ~~~~~~~ (vl-load-com) (setq acdoc (vla-get-ActiveDocument (setq obj (vlax-get-acad-object))) ) ;~~~~~~~ GESTION ERREURS ~~~~~~~~~~~ (defun *error* (msg) (vla-endundomark acdoc) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (if ss (vla-delete ss)) (princ) ) ;~~~~~~~ FIN GESTION ERREURS ~~~~~~~ ;~~~~~~~ SOUS-FONCTIONS ~~~~~~~~~~~ (defun PutAttValue ( object tag value ) (mapcar (function (lambda ( attrib ) (and (= tag (vla-get-TagString attrib)) (vla-put-TextString attrib value) ) ) ) (vlax-invoke object 'GetAttributes) ) value ) ;~~~~~~~ FIN SOUS-FONCTIONS ~~~~~~~ (vla-StartUndoMark acdoc) (while (not (and (setq blk (car (entsel "\nSélectionnez un des blocs à mettre à jour: "))) (setq blk (vlax-ename->vla-object blk)) (= (vla-get-ObjectName blk) "AcDbBlockReference") (setq blk (vla-get-effectivename blk)) );and );not (princ "\nL'objet sélectionné n'est pas un bloc ! ") );while no bloc (while (not (and (setq att (car (nentsel "\nCliquez sur une valeur d'altitude: "))) (setq att (vlax-ename->vla-object att)) (= (vla-get-ObjectName att) "AcDbAttribute") (setq att (vla-get-tagstring att)) );and );not (princ "\nL'objet sélectionné n'est pas un attribut ! ") );while no attribute (if (ssget "_X" '( (0 . "INSERT") ) ) (vlax-for b (setq ss (vla-get-ActiveSelectionSet acdoc)) (if (= blk (vla-get-effectivename B)) (progn (setq ins (caddr (vlax-get b 'InsertionPoint))) (putattvalue b att (rtos ins 2 precision)) ) );if b = blk );vlax-for );if ssget (*error* nil) (princ) );MAJZ (princ "\nCommande à utiliser: MAJZ") (princ) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
didier Posté(e) le 12 juin 2017 Posté(e) le 12 juin 2017 Coucou Si j'ai bien compris l'énoncé le point topo est un bloc imbriqué et à la lecture du code proposé je n'ai pas la certitude que cela soit pris en compte.Attendons dans tous les cas la réponse de Demixav... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
bryce Posté(e) le 12 juin 2017 Posté(e) le 12 juin 2017 Ah oui effectivement, j'avais mal compris la demande... :mellow: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Olivier Eckmann Posté(e) le 13 juin 2017 Posté(e) le 13 juin 2017 Bonjour, il suffit de créer un nouveau DWG par WBLOC à partir de la définition du bloc, puis ouvrir le DWG obtenu et faire une mise à jour des points topo avec les commandes habituelles de Covadis, puis de retour dans le dessin d'origine, lancer la commande Insérer / Bloc, bouton Parcourir et choisir le DWG modifié, AutoCAD va demander la REdéfinition du bloc, accepter, puis Echap pour ne pas l'insérer. Le bloc d'origine sera ainsi redéfini à l'identique du DWG modifié en altitude. Olivier
didier Posté(e) le 13 juin 2017 Posté(e) le 13 juin 2017 Coucou Là encore je réponds tel que j'ai compris l'énoncé, Demixav viendra abonder ou contredire.Olivier : je ne pense pas que ta solution soit possible dans le cas présentéJ'imagine bien un bloc (genre une boîte en 3D) avec des points topo sur les anglesIl écrit l’altitude des sommets de la boîte mais quand il déplace la boîte en altitude les Z ne peuvent se mettre à jour par CovadisJe ne pense pas que ce soit un bloc d'un ensemble de points topos ce qui correspondrait à la solution que tu proposes.Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Olivier Eckmann Posté(e) le 13 juin 2017 Posté(e) le 13 juin 2017 Didier, J'ai cru comprendre qu'il avait inséré un morceau de plan topo sous forme de bloc (complément ou autre portion extraite...). il souhaitait donc appliquer un DZ à tous les attributs ALT de son morceau de plan topo présent sous forme de bloc sans devoir le décomposer.Peut-être ai-je mal compris le problème? Olivier
Demixav Posté(e) le 13 juin 2017 Auteur Posté(e) le 13 juin 2017 Re, @Bryce, merci pour ta réponse et le LISP mais en effet, ça ne fonctionne pas pour ce que je veux faire. Les points topo (500 environs) sont imbriqués dans un bloc avec des poly, cercle, etc... @Olivier, merci également pour ta réponse mais ma question était surtout pour me faciliter le travail, et avoir un retour d'affichage rapide des altitudes de mon bloc après un déplacement par exemple tout en gardant mon bloc non-explosé. Le plus simple que j'ai trouvé, c'est la calculatrice... et jouer entre l'altitude du bloc et l'altitude des points. Source d'erreur mais bon... Encore merci à tous pour vos réponses et suggestions.Bonne journée!Xav AutoCad Map 3D 2011 - Covadis v16.0dWindows 7 - 64b
wiski69 Posté(e) le 13 juin 2017 Posté(e) le 13 juin 2017 Bonjour, Pour ton problème, peut-être que tu devrais utiliser la commande Cov2D / Point topo / Immatriculation d'entité. Cela te redéfinis des points topos. Bonne journée.
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