phil2 Posté(e) le 2 octobre 2012 Posté(e) le 2 octobre 2012 Bonjour a tous j'ai trouvé sur ce site un lisp tres pratique qui met a jour un attribut de bloc par rapport a son altitude (MAJZ)mais existe-il le contraire ???l'altitude du bloc qui se modifie en fontion du texte de l'attributse qui donneraitAVANT bloc a Z=0 pour attribut 29.30APRES bloc à Z=29.30 pour attribut 29.30 merci d'avancePhil
VDH-Bruno Posté(e) le 2 octobre 2012 Posté(e) le 2 octobre 2012 Bonjour, l'altitude du bloc qui se modifie en fontion du texte de l'attributse qui donneraitAVANT bloc a Z=0 pour attribut 29.30APRES bloc à Z=29.30 pour attribut 29.30Voici un lien sur un sujet similaire.. (il y en a beaucoup d’autres)http://cadxp.com/index.php?/topic/33778-resolu-point-topographique-covadis-2d-3d/page__p__182436__fromsearch__1#entry182436 En réponse n°6 tu trouveras un code et une explication sur les constantes à modifier pour l’adapter à ton cas. j'ai trouvé sur ce site un lisp tres pratique qui met a jour un attribut de bloc par rapport a son altitude (MAJZ)As-tu le lien du lisp que tu cites ? Personnellement je pense que pour ce type de situation quant c’est possible les champs me semblent plus adapté qu’un lisp. A+ Apprendre => Prendre => Rendre
phil2 Posté(e) le 3 octobre 2012 Auteur Posté(e) le 3 octobre 2012 Bonjourmerci a toi pour ce lisp qui fonctionne partaitementnon je n'ai pas le lien,je sais que c'est un lisp crée par brice studer en mars 2011le probleme avec le champs c'est que je travaliie sur des blocs que je recupere et pas que je crée A+Phil
bryce Posté(e) le 3 octobre 2012 Posté(e) le 3 octobre 2012 Bonjour, non je n'ai pas le lien,je sais que c'est un lisp crée par brice studer en mars 2011 Alors ça doit être celui-ci:http://www.creao.fr/uploads/lisp/majZ.lsp;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
VDH-Bruno Posté(e) le 5 octobre 2012 Posté(e) le 5 octobre 2012 Bonjour bryce, Rapidement une suggestion vis-à-vis de ma remarque formulé plus haut :As-tu le lien du lisp que tu cites ? Personnellement je pense que pour ce type de situation quant c’est possible les champs me semblent plus adapté qu’un lisp. Je verrai bien alors une micro modif dans ton code, pour faire une majZ+ il suffirait de varianter la séquence suivante :(if (= blk (vla-get-effectivename B)) (if (and (setq ins (vlax-get b 'InsertionPoint)) (setq ins (caddr ins))) (putattvalue b att (rtos ins 2 precision)) ) ) ;if b = blk Par(if (= blk (vla-get-effectivename B)) ;; (if (and (setq ins (vlax-get b 'InsertionPoint)) (setq ins (caddr ins))) ;; (putattvalue b att (rtos ins 2 precision)) (putattvalue b att (strcat "%<\\AcObjProp Object(%<\\_ObjId " (gc:GetObjectIdString B) ">%).InsertionPoint \\f \"%lu2%pt4%pr" (itoa precision) "\">%" ) ) ;;) ) ;if b = blk Puis de terminer avec un (vla-regen acdoc acActiveViewport) en sortie de code. Voilà histoire mettre tout le monde d’accord sur le sujet ;) A+ (Ps : le code de la routine associée écrite par (gile));; gc:GetObjectIdString ;; Retourne l'ObjectId de 'obj' sous forme de chaîne représentant un entier 32 ou 64 bits ;; ;; Argument ;; obj : l'objet dont on cherche l'ObjectId (vla-object) (defun gc:GetObjectIdString (obj) (or *util* (setq *util* (vla-get-Utility (vla-get-ActiveDocument (vlax-get-acad-object))))) (if (vlax-method-applicable-p *util* 'GetObjectIdString) (vla-GetObjectIdString *util* obj :vlax-false) (itoa (vla-get-ObjectId obj)) ) ) Apprendre => Prendre => Rendre
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