Aller au contenu

Messages recommandés

Posté(e)

Bonjour

j'ai recuperer ce lisp fait par didier qui permet de mettre

le Bloc en Z en fonction de son attribut

mais j'ai un bug sur certains blocs avec ce type de messages

 

; erreur: type d'argument incorrect: lselsetp nil

 

quelqu'un aurait il une solutions ??????

 

(defun c:tcpointz (/ jeusel n ent altval pospt tempo)

 

(setq jeusel (ssget (list (cons 0 "INSERT")

(cons 2 "TCPOINT")

)))

(setq n 0)

(repeat (sslength jeusel)

(setq ent (ssname jeusel n))

(if (= "ALT" (cdr (assoc 2 (entget (entnext (entnext ent))))))

(progn

(setq altval (cdr

(cons 1 (cdr (assoc 1 (entget (entnext (entnext ent)))))))

pospt (cdr (assoc 10 (entget ent)))

tempo (subst (cons 10 (list (car pospt) (cadr pospt) (atof altval)))

(cons 10 pospt)

(entget ent)

)

)

(entmod tempo)

(entupd ent)

(setq n (+ 1 n))

)

)

)

)

 

Posté(e)

Hello

 

SVP tu essayes cette excellente routine BLOC-ALT de notre "indispensable" Gilles ...

 

Chargement par APPLOAD

 

Commande au clavier : BLOC-ALT

 

Vous faites un CLIC (pour le selectionner) sur l'Attribut DU Bloc (Symbole)

contenant la valeur numerique de l'Altitude ou Elevation

et automatiquement TOUS les Blocs (Symboles) changent d'Altitude ou Elevation !

 

Rappel : si jamais votre Attribut (de Bloc) concerne est INVISIBLE

alors vous faites un ATTECRAN AC (pour ACtif)

ainsi TOUS les Attributs deviennent Visibles

donc vous pouvez le selectionner pour la routine BLOC-ALT

et apres execution de la Routine, vous faites un ATTECRAN N (pour Normal)

 

lecrabe

 

 


;; Par GC le 13/03/2008
;; Commande :  BLOC-ALT 
;; Mettre les blocs a l'altitude d'un attribut

(vl-load-com)

(defun c:bloc-alt (/ att elst blk tag ss n ins)

(if
(and
(setq att (car (nentsel "\nSelectionnez l'attribut \"altitude\": ")))
(setq elst (entget att))
(= (cdr (assoc 0 elst)) "ATTRIB")
(setq blk (cdr (assoc 330 elst)))
(setq name (cdr (assoc 2 (entget blk))))
(setq tag (cdr (assoc 2 elst)))
(setq ss (ssget "_X" (list '(0 . "INSERT") (assoc 2 (entget blk)))))
(setq n -1)
)
(progn
(while (setq blk (ssname ss (setq n (1+ n))))
(setq elst (entget blk)
ins (cdr (assoc 10 elst))
att (entnext blk)
)
(while (and att (= (cdr (assoc 0 (entget att))) "ATTRIB"))
(if (= (cdr (assoc 2 (entget att))) tag)
(entmod
(subst
(list 10
(car ins)
(cadr ins)
(atof (cdr (assoc 1 (entget att))))
)
(assoc 10 elst)
elst
)
)
)
(setq att (entnext att))
)
)
(vl-cmdf "_.attsync" "_n" name)
)
)
(princ)

)  

Autodesk Expert Elite Team

Posté(e)

RE

Effectivement le nom du bloc n'etait pas TCPOINT

une fois renomé ca fonctionne

merci a toi OLIVIER

 

Merci LECRABE Je teste la routine et je reviens

Posté(e)

RE RE

 

LECRABE je viens de tester ta routine

elle fonctionne parfaitement bien et ce qui est tres interressant

c'est qu'elle marche quel que soit le nom du bloc

 

Encore merci a tous les deux

Phil

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité