Aller au contenu

SVP Routine \"HACH_HACH\"


lecrabe

Messages recommandés

 

Hello

 

SVP je fais appel aux gentils developpeurs fous de ce forum ! :)

 

Je desire une routine en VLisp ou en Lisp qui puisse automatiser un truc que je fais a la main mais a la longue c penible !

 

----- CCTP / CDC -----

 

1) Selection classique AutoCAD

 

2) Recuperation des hachures (par un filtre) pour les tranferer sur N calques "xxxxxx_HACH"

 

Sous entendu, cela va permettre de transferer les hachures sur des calques "xxxxxx_HACH" dont le nom est base sur le calque d'origine de l'objet hachure ! :)

 

Ainsi des dessins de Cadastre / VRD / POSPLU / Batiment / etc ou les gens ont "malheureusement" hachurer sur le MEME calque que l'objet hachure vont pouvoir apres passage de la routine avoir les hachures sur un calque SEPARE / DIFFERENT !! :D

 

Je suis fou quand je vois des dessins avec les MURs et les HACHUREs sur le calque MUR ! :o

 

idem avec les dessins de POSPLU et toutes les hachures sur le MEME calque que le type d'objet hachure ...

 

Autre exemple avec les dessins et des calques du genre : POSPLU, EBC, ER, DPU, ZONE_ARCHEO, PPRI, PPRMT, etc ... :(

 

SVP en sortie qq infos :

- nombre de hachures selectionnees

- nombre de hachures transferees

- nombre de hachures NON transferees car hachures isolees ou autre cas particulier

 

A votre bon coeur et en vous remerciant d'avance, Le Decapode

 

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

comme d'habitude par manque de temps

je livre un truc vite fait mais qui fonctionne

(améliorable par exeple avec les couleurs)

 

amicalement

 

 
((setq jeuhach (ssget "x" (list (cons 0 "HATCH"))))
(setq n 0)
(repeat (sslength jeuhach)
 (setq listent (entget (ssname jeuhach n))
calent (cdr(assoc 8 (entget (ssname jeuhach n))))
listent (subst (cons 8 (strcat calent "_Hach")) (cons 8 calent)  listent)
)
 (entmod listent)
 (setq n (+ 1 n))
 )

 

[Edité le 28/10/2010 par didier]

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

tu m'en vois fort marri !

sans plus d'explication de ta part

je ne saurai pas où est le dysfonctionnement

 

as-tu un message particulier ?

passe moi un fichier exemple si tu le peux,

tu auras mon mail par MP si tu ne l'as pas déjà.

 

chez moi, dans un fichier simple

pas de souci, je n'aurais pas publié sinon.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

 

Hello Didier

 

Voici le resultat du copier/coller !

Je tape une parenthese fermante "a la main" car elle semble manquer !

et j'ai une erreur ...

 

Commande: ((setq jeuhach (ssget "x" (list (cons 0 "HATCH"))))

(_> (setq n 0)

(_> (repeat (sslength jeuhach)

((_> (setq listent (entget (ssname jeuhach n))

(((_> calent (cdr(assoc 8 (entget (ssname jeuhach n))))

(((_> listent (subst (cons 8 (strcat calent "_Hach")) (cons 8 calent) listent)

(((_> )

((_> (entmod listent)

((_> (setq n (+ 1 n))

((_> )

(_>

(_> )

; erreur: type d'argument incorrect: lselsetp nil

 

Le Decapode

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

dans ma routine de nettoyage de plans j'utilise cette routine pour passer toutes les hachures en couleur 254:

(defun modifh2 ()

 (vl-load-com)

 (setq	a (vla-get-blocks
    (vla-get-activedocument (vlax-get-acad-object))
  )
 )

 (vlax-for bl a

   (vlax-for ent bl

     (if (= (vla-get-objectname ent) "AcDbHatch")

(vla-put-Color ent 254)

     )

   )

 )

 (vla-regen (vla-get-activedocument (vlax-get-acad-object))
     acActiveViewport
 )

) 

 

il me semble ça pourait t'aider

a+

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

après relecture je te donne çà :

 

(setq jeuhach (ssget "x" (list (cons 0 "HATCH")))
     n 0)

(repeat (sslength jeuhach)
(setq listent (entget (ssname jeuhach n))
      calent  (cdr (assoc 8 (entget (ssname jeuhach n))))
      listent (subst
	 (cons 8 (strcat calent "_Hach"))
	 (cons 8 calent)
	 listent)
      )
   (entmod listent)
   (setq n (+ 1 n))
   )

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

 

Hello

 

Merci Didier neanmoins ton bout de programme est "un peu insuffisant" pour moi ! :P

 

Un petit UP pour reclamer SVP un petit programme un peu plus complet !? :)

 

Par exemple il serait bien que les calques crees (nommes "xxxxxx_HACH") reprennent les proprietes du calque d'origine "xxxxxx" et aussi que l'on passe par une selection classique ...

 

Merci d'avance, Le Decapode

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

c'est bien parce que c'est un jour férié, hein !

je blague

j'ai rajouté une ligne qui devrait aller dans ton sens...

 

(setq jeuhach (ssget (list (cons 0 "HATCH")))
     n 0)
(repeat (sslength jeuhach)
(setq listent (entget (ssname jeuhach n))
      calent  (cdr (assoc 8 (entget (ssname jeuhach n))))
      coucal (cdr (assoc 62 (tblsearch "layer" calent)))
      listent (subst
	 (cons 8 (strcat calent "_Hach"))
	 (cons 8 calent)
	 listent)
      )
   (entmod listent)
 (command "_layer" "_co" (itoa coucal) (strcat calent "_hach") "")
 (setq n (+ 1 n))
 )

 

amicalement

 

[Edité le 1/11/2010 par didier]

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é