CADxp: Autocad 2007 - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Autocad 2007 ALtitude Attribut de Bloc

#1 L'utilisateur est hors-ligne   phil2 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 18
  • Inscrit(e) : 31-mai 06

Posté 04 avril 2013 - 14:06

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))
)
)
)
)


						
						
0

#2 L'utilisateur est hors-ligne   -Olivier- 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1030
  • Inscrit(e) : 08-mars 12

Posté 04 avril 2013 - 14:26

Bonjour phil2,

- Le bloc ne serait pas un bloc dynamique ?
- Le nom du bloc est bien TCPOINT ?
Olivier
0

#3 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8664
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 04 avril 2013 - 14:50

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
0

#4 L'utilisateur est hors-ligne   phil2 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 18
  • Inscrit(e) : 31-mai 06

Posté 04 avril 2013 - 15:13

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
0

#5 L'utilisateur est hors-ligne   phil2 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 18
  • Inscrit(e) : 31-mai 06

Posté 04 avril 2013 - 15:31

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
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)