Aller au contenu

Histoire de blocs come baK


curvasud

Messages recommandés

Salut,

 

Alors voilà j'essaie de travailler à l'aide du .VLX, ok j'ai bien la boite de dialogue qui apparait...

Mais, et la mes limites prennent le dessus, je sollicite ainsi vos qualités, car si je crée un bloc dans une symbologie de calque autre que "DUCALQUE...DUCALQUE....", il n'accepte pas les modifications ulterieures apportees sur le bloc, par exemple, si j'ai des blocs ainsis crrees, et inseres sur un calque qui possede une couleur particuliere, que je modifie cette couleur puis active l'outil redefinitionn de blocs afin que mes blocs epousent alors ma nouvelle couleur, cela ne marche pas... :o

 

Je suis en train de baisser les bras.....

 

Quicun aurait il une lumiere ?,,

 

A plus arnaud.

 

Lien vers le commentaire
Partager sur d’autres sites

Il me semble comprendre que tu parles du LISP Edit_bloc.

 

Si tu veux que toutes les entités composant un bloc prennent la couleur du calque sur lequel le bloc est inséré, il faut mettre ces entités sur le calque 0, en couleur "DuBloc" (de même pour les autre propriétés.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

j'utilise un code comme suit qui fonctionne d'ailleurs très bien :

;; ****************************************
;;; - NORMALISER BLOCS                     -
;;; ****************************************
;;; Patrick_35 de CadXP modifié par Ludwig
;;; Récupéré le 27/01/2005
;;; sur http://www.cadxp.com/sujetXForum-4609.htm
;;;
;;; Manque :
;;; - extraction du nom du calque sur lequel est inséré le bloc
;;; - deverouillage de ce calque s'il était verrouillé
;;; - traitement
;;; - reverrouillage s'il était verrouillé

(defun c:CADXP_NormaliseBlocs (/ i n tot)

;;; Normalisation des blocs dans la table des blocs
;;; -----------------------------------------------
 (setq	i   (tblnext "block" t)
tot 1
 )
;;; RECHERCHE LA PREMIERE ENTREE DANS LA TABLE DES BLOCS 
 (while i
   (setq n (cdr (assoc -2 i)))
;;; SELECTIONNE LA PREMIERE ENTITE QUI COMPOSE LE BLOC
   (while n
     (setq n (entget n))
;;; RECUPERE LES VALEURS DES ENTITES QUI COMPOSE LE BLOC
     (if (/= (cdr (assoc 8 n)) "0")
(progn
  (setq n (subst (cons 8 "0") (assoc 8 n) n))
;;; SI L'ENTITE N'EST PAS SUR 0, LA DEPLACE SUR 0
  (entmod n)
)
     )
     (if (not (assoc 62 n))
;;; SI L'ENTITE N'A PAS LE CODE DXF 62 (=DuCalque), LE CREE ET LUI AFFECTE LA VALEUR 0 (=DuBloc)
(setq n (append n (list (cons 62 0))))
(if (/= (cdr (assoc 62 n)) 0)
;;; SI L'ENTITE N'EST PAS DE COULEUR 0, LA CHANGE EN 0 (=DuBloc)
  (setq n (subst (cons 62 0) (assoc 62 n) n))
)
     )
     (entmod n)
     (setq n (entnext (cdr (assoc -1 n))))
     ;; ENTITE SUIVANTE

   )
   (setq i   (tblnext "block")
  tot (1+ tot)
   )
   ;; BLOC SUIVANT
 )
;;; Normalisation des étiquettes d'attributs de blocs dans le dessin (car une étiquette peut avoir des valeurs de calque, couleur, etc. différentes de l'attribut)
;;; -----------------------------------------------

 (setq sel (ssget "x" (list (cons 0 "INSERT"))))
 (setq j 0)
 (while (and sel (ssname sel j))
   (setq n (entget (ssname sel j)))
   (if	(assoc 66 n)
     (progn
(setq i (entget (entnext (cdr (assoc -1 n)))))
(while (/= (cdr (assoc 0 i)) "SEQEND")
  (setq i (subst (cons 8 "0") (assoc 8 i) i))
  ;; mettre l'attribut sur le même calque que celui du bloc par exemple
  (setq i (subst (cons 62 0) (assoc 62 i) i))
  ;; mettre l'attribut sur le même calque que celui du bloc par exemple

  (entmod i)
  ;; modifier l'entité
  (entupd (cdr (assoc -1 i)))
  ;; mettre à jour sur l'écran l'entité
  (setq i (entget (entnext (cdr (assoc -1 i)))))
)
     )
   )
   (setq j (1+ j))
 )

;;; Résultat
;;; -----------------------------------------------

 (princ
   (strcat "\nTraitement de "
    (itoa (+ tot j))
    " bloc(s) ("
    (itoa tot)
    " dans la table des blocs et "
    (itoa j)
    " étiquettes d'attributs de blocs dans le dessin"
   )
 )

 (princ)
)

 

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

AutoCAD, Revit, GstarCAD, Fisa-CAD, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Lien vers le commentaire
Partager sur d’autres sites

:casstet: :casstet: :casstet:

Mais on t'aime Didier quand même

 

... CADxp serait devenu un site de rencontre ??? :casstet:

 

c'est bien l'eclectisme, mais là ça devient hors sujet !!!... il y a la "Pause Café" pour ça, Messieurs !!! ;)

 

En tout cas, mes félicitation !!! :D

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

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é