CadXP: faire passer les hachures en second plans dans un bloc - CadXP

Aller au contenu

  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

faire passer les hachures en second plans dans un bloc ou la pénibilité de créer une bibliothèque correcte

#21 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 404
  • Inscrit(e) : 02-septembre 05

Posté 27 mars 2020 - 16:04

Salut,

Le LISP de (feu) Patrick_35 traite toutes les hachures contenues dans des blocs sans demander de sélection.

Je propose deux commandes :
- H2B qui place toutes les hachures de tous les blocs en arrière plan (comme la routine de Patrick_35) ;
- SH2B qui place les hachures des blocs sélectionnés en arrière plan.
Les deux commandes utilise l'ordre de tracé (au lieu de copier/effacer) les routines sont extraites des bibliothèques AutomationHelpers et Sortents en bas de cette page.

(vl-load-com)
(or *acad* (setq *acad* (vlax-get-acad-object)))
(or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
(or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*)))

;; gc:GetItem
;; Retourne le vla-object de l'item s'il est présent dans la collection (ou nil)
;;
;; Arguments
;; col : la collection (vla-object)
;; name : le nom de l'objet (string) ou son indice (entier)

(defun gc:GetItem (col name / obj)
  (vl-catch-all-apply
    (function (lambda () (setq obj (vla-Item col name))))
  )
  obj
)

;; gc:GetObject
;; Retourne un objet (Custom Object) du dictionnaire d'après son nom (ou nil)
;; Arguments
;; dict : le dictionnaire (vla-object)
;; name : le nom de l'objet (string)

(defun gc:GetObject (dict name / obj)
  (vl-catch-all-apply
    (function (lambda () (setq obj (vla-GetObject dict name))))
  )
  obj
)

;; gc:GetSortentsTable
;; Retourne la table d'ordre de tracé du block record (bloc ou espace)
;;
;; Argument
;; block : le block record
;; 
;; Fonctions requises :
;; - gc:GetObject (gc_AutomationHelpers.lsp))
(defun gc:GetSortentsTable (block / sort)
  (cond
    ((gc:GetObject (vla-GetExtensionDictionary block) "ACAD_SORTENTS"))
    ((vla-AddObject (vla-GetExtensionDictionary block) "ACAD_SORTENTS" "AcDbSortentsTable"))
  )
)

;; gc:MoveToBottom
;; Place les objets en arrière (draworder)
;;
;; Argument
;; blk : le block record auquel appartiennent les objets
;; olst : liste des objets à placer en arrière (vla-objects)
(defun gc:MoveToBottom (blk olst)
  (vlax-invoke (gc:GetSortentsTable blk) 'MoveToBottom olst)
)

;; gc:MoveHatchtoBottom
;; Place les hachures en arrière (draworder)
;;
;; Argument
;; blk : le block record auquel appartiennent les objets
(defun gc:MoveHatchtoBottom (blk / lst)
  (vlax-for obj	blk
    (if	(= (vla-get-ObjectName obj) "AcDbHatch")
      (setq lst (cons obj lst))
    )
    (if	lst
      (gc:MoveToBottom blk lst)
    )
  )
)

;; Commande H2B
;; Place toutes les hachures dans tous les blocs à l'arrière plan
(defun c:H2B ()
  (vlax-for blk	*blocks*
    (if	(= (vla-get-IsLayout blk) :vlax-false)
      (gc:MoveHatchtoBottom blk)
    )
  )
  (vla-Regen *acdoc* acAllViewports)
  (princ)
)

;; Commande SH2B
;; Place les hachures des les blocs sélectionnés à l'arrière plan
(defun c:SH2B (/ ss br blk)
  (if (ssget '((0 . "INSERT")))
    (progn
      (vlax-for	br (setq ss (vla-get-ActiveSelectionSet *acdoc*))
	(if (setq blk (vla-Item *blocks* (vla-get-Name br)))
	  (gc:MoveHatchtoBottom blk)
	)
      )
      (vla-Delete ss)
      (vla-Regen *acdoc* acActiveViewport)
    )
  )
  (princ)
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#22 L'utilisateur est hors-ligne   lecrabe 

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

Posté 28 mars 2020 - 16:29

Hello Gilles

Est ce que tu utilises la MEME Technique que notre regrette Patrick_35 ?
- ReCreation de toutes les entites NON Hatch
- Suppression des anciennes
- Comme cela, on est SUR d'avoir les Hachures EN DESSOUS !

LA SANTE, Bye, lecrabe "triste"
Automne 2020, la retraite
Autodesk Expert Elite Team
0

#23 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 404
  • Inscrit(e) : 02-septembre 05

Posté 28 mars 2020 - 16:41

Non, j'utilise l'ordre de tracé (object AcDbSortentsTable stocké dans le dictionnaire d'extension des espaces et définition de blocs).
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#24 L'utilisateur est hors-ligne   Chloé17 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-mars 20
  • LocationCharente Maritime

Posté 30 mars 2020 - 08:49

Citation

Le LISP de (feu) Patrick_35


Ooh je suis désolée d'apprendre cela…

Citation

Je propose deux commandes :



Merci pour ces commandes
Alors,H2B me met le même message que pour le LISP de Patrick, et SH2B ne rapport pas d'erreur, me propose de faire une sélection, ce sont bien des blocs qui sont sélectionnés, mais une fois validé et régénéré, les blocs n'ont pas changé…

Chloé
Projeteuse VRD - Paysage
Autocad MAP 3D 2019
Covadis 17f - Autoturn 10
Windows 10 64bits
0

#25 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 028
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 30 mars 2020 - 10:53

Bonjour,

Je vois que tu possède Covadis,
Le problème vient peut etre de la.
Je ne suis pas un spécialiste de ce dernier, fait une recherche dans ce sens
Je sait qu'il existe une commande du genre CONVERTCOVADIS pour convertir les objets.
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#26 L'utilisateur est hors-ligne   Chloé17 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-mars 20
  • LocationCharente Maritime

Posté 30 mars 2020 - 11:09

Bonjour,

Alors, justement, avec le confinement, pas de Covadis ! Je l'ai uniquement au bureau… Idem pour Autoturn
Projeteuse VRD - Paysage
Autocad MAP 3D 2019
Covadis 17f - Autoturn 10
Windows 10 64bits
0

#27 L'utilisateur est hors-ligne   lecrabe 

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

Posté 30 mars 2020 - 11:52

Hello

En principe les Routines Lsip ne gere pas ou pas tres bien , les objets Proxy !

C pourquoi la fonction "Enregistrer Sans Covadis" est importante !


De facon generale, il faut toujours travailler sous AutoCAD , ACAD LT, ACAD MAP, ACAD Archi, etc ...

avec les TROIS variables System PROXY = 1

PROXYSHOW = 1 ( Pour VOIR les Objets PROXY )

PROXYGRAPHICS = 1 ( Pour enregistrer l'Image des Objets PROXY )

PROXYNOTICE = 1 ( Pour avoir l'Info de la presence d'Objets PROXY dans le DWG )


La commande clavier Covadis pour enregistrer en objets AutoCAD "simples" est :

COVAENREGSANSCOVADIS < Entree >


LA SANTE, Bye, lecrabe "triste"
Automne 2020, la retraite
Autodesk Expert Elite Team
0

#28 L'utilisateur est hors-ligne   Chloé17 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-mars 20
  • LocationCharente Maritime

Posté 30 mars 2020 - 18:11

Toutes ces variables sont sur 1 sauf notice, que j'ai remise à 0 car à chaque fois j'avais une fenêtre qui s'ouvrait (imports d'Xréf utilisant Covadis)
Mais le fichier où je veux passer les hachures en arrière est mon fichier "mère" sans objet covadis, et dans tous les cas je n'ai pas Covadis d'installé sur le poste que j'utilise, à cause du confinement, donc je pense pas que ça vienne de là.

Chloé
Projeteuse VRD - Paysage
Autocad MAP 3D 2019
Covadis 17f - Autoturn 10
Windows 10 64bits
0

#29 L'utilisateur est hors-ligne   Chloé17 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-mars 20
  • LocationCharente Maritime

Posté 07 avril 2020 - 16:06

Bonjour,

Je reviens vers vous concernant ce sujet. Je n'ai pas trouvé de solution, auriez-vous une idée de pourquoi il me retourne une erreur pour H2B et ne fait rien pour SH2B?
Merci beaucoup,
Chloé
Projeteuse VRD - Paysage
Autocad MAP 3D 2019
Covadis 17f - Autoturn 10
Windows 10 64bits
0

Partager ce sujet :


  • 2 Pages +
  • 1
  • 2
  • 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)