Aller au contenu

les groupes de calques ne suivent pas


Messages recommandés

Posté(e)

Bonjour,

 

J'ai des plans avec des groupes de calques.

Si je fait un wbloc d'objet, le calque suit(normal), mais pas le groupe.

la plupart du temps, cela m'arrange bien.

mais la, suis obligé de le recréer, ou le récupérer avec design center.

pas vu de variable, mais peut etre l'ai je ratée, ou autre chose...

vous me direz, encore une occasion de coder...

mais pas facile à atteindre

Posté(e)

Hello

 

Si je me souviens bien Gilles avait développé une Routine LSP qui permettait le transfert inter-DWG de l'UN des 2 types de groupes de calque...

 

A vérifier ?!

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Salut Fraid,

 

 

Les Groupes de calques sont liés au fichier/dessin/gabarit... Donc pas importables... Mais si tu charge ton gabarit tu devrait récupérer tes groupes. (comme les filtres de propriétés d'ailleurs...)

"98% des soucis informatiques sont assis entre la chaise et le bureau !"

 

"C'est parce que la vitesse de la lumière est supérieure à celle du son que tant de gens paraissent brillants avant d'avoir l'air con."
Posté(e)

Merci pour ce conseil,

vais tout de suite enregistrer mon fichier principale vidé de ses objets en dwt.

je ne vais pas me lancer a coder cela, d'autres chantier lisp en cours..

et c'est vraiment rare pour moi de devoir gérer des groupes...

à tantôt

Posté(e)

Salut,

 

LayerFilterImportExport devrait fonctionner sur des "AutoCAD modernes".

Charger LayerFilterImportExport.dll jusqu'à AutoCAD 2012 et LayerFilterImportExport_19 pour 2013 et plus.

Par contre, je rappelle que LayerFilterImportExport permet d'importer ou d'exporter les filtres de propriété.

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

Posté(e)

Bonjour,

 

-LayerFilterImportExport.dll ne fonctionne pas avec les Groupes de calques sur 2018 (import/export)

-le dwt, le wbloc ouvre systématiquement l'acadiso vais pas le remplacer

et ne trouve pas la variable qui gére les gabarits utilisés au moment d'un wbloc...

je ne sait plus ou j'ai vu que cela fonctionnais avec design center, marche pah non plus,

les lisp de Bred non plus...

reste, ce code moissonné grace à lui, sur un site japonais

 

(defun y_layergroup_get(
/
ACADOBJ
E_DATA
E_NAME_LIST
)
(setq ACADOBJ (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'Layers))
(setq ACADOBJ (vlax-invoke-method ACADOBJ 'GetExtensionDictionary))
(setq E_DATA (entget (vlax-vla-object->ename ACADOBJ)))
;AutoLISP
;(setq E_DATA (entget (cdr (assoc 360 (entget (cdr (assoc 330 (entget (tblobjname "layer" "0")))))))))
(setq E_DATA (entget (cdadr (member '(3 . "ACLYDICTIONARY") E_DATA))))
(foreach n E_DATA
	(if (= (car n) 350)
		(setq E_NAME_LIST (append E_NAME_LIST (list (cdr n))))
	)
)
E_NAME_LIST
)
(defun y_layergroup_create(
GROUP_NAME
/
TBL_E_DATA
DIC_E_DATA
AD_E_DATA
E_NAME
)
(setq TBL_E_DATA (entget (y_dxfdata 330 (entget (tblobjname "layer" "0")))))
(setq DIC_E_DATA (entget (y_dxfdata 360 TBL_E_DATA)))
(setq AD_E_DATA (entget (cdadr (member '(3 . "ACLYDICTIONARY") DIC_E_DATA))))
(setq E_NAME
	(entmakex
		(list
			'(0 . "XRECORD")
			'(102 . "{ACAD_REACTORS")
			(cons 330 (y_dxfdata -1 AD_E_DATA))
			'(102 . "}")
			(cons 330 (y_dxfdata -1 AD_E_DATA))
			'(100 . "AcDbXrecord")
			'(280 . 1)
			'(290 . 1)
			'(1 . "AcLyLayerGroup")
			'(90 . 1)
			(cons 300 GROUP_NAME)
		)
	)
)
(setq E_NAME
	(y_dxfdata -1
		(entmod
			(append AD_E_DATA (list (cons 3 "*") (cons 350 E_NAME)))
		)
	)
)
(setq E_NAME
	(y_dxfdata -1
		(entmod
			(append
				(reverse (cdr (reverse DIC_E_DATA)))
				(list (cons 360 E_NAME))
			)
		)
	)
)
(y_dxfchange 360 E_NAME TBL_E_DATA)
)
(defun y_dxfdata (
D_CODE
E_DATA
/
)
(cdr (assoc D_CODE E_DATA))
)
(defun y_dxfchange(
D_CODE
NEW_DATA
E_DATA
/
)
(if (y_dxfdata D_CODE E_DATA)
	(entmod (subst (cons D_CODE NEW_DATA) (assoc D_CODE E_DATA) E_DATA))
	(entmod (append E_DATA (list (cons D_CODE NEW_DATA))))
)
)

 

vais testé cela ce week end

Merci

Posté(e)

tester pendant l'apéro

 

sa marche imppécable

vais me servir de y_layergroup_create

j'ai deja une liste consultable de correspondance calques/Groupes du genre

 

(defun ListGroupe (num / ListCod)
  (setq  ListCod   	   	  '((22 . "MACHIN")
			   (32 . "TRUC")
			   (84 . "LAUTRE"
                                   ;....
			)
  )
(mapcar '(lambda (x) 
	(if (= (car x) (atoi num)) (setq Txt (cdr x))))
	ListCod
)
(eval Txt)
)

num etant le nom du calque qui sont des entiers qui arrive en string (il fait chaud a st malo)

 

(y_layergroup_create (ListeGroupe (num))

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é