Aller au contenu

RE ASSOCIATION DE HACHURAGE


PHILPHIL

Messages recommandés

bonjour

 

est ce qu'il y a une fonction pour ré associer un hachurage a sa polyligne ?

 

ou faut il crer un programme LISp pour ca ??

 

qui va recréer un hachurage associatif

en fonction de la polyligne choisi

 

avec meme type de hachure

meme calque

meme tout quoi

 

j'ai bien programmer un tit truc

mais je trouve qu'il manque quelque chose

 

phil

 

 

;;;%20%20%20%20%20---------------------------------------------

(setq LESPOLY NIL)

(while (null LESPOLY)

(setq LESPOLY (ssget (list (cons -4 "

(cons 0 "CIRCLE")

(cons 0 "polyline")

(cons 0 "lwpolyline")

(cons 0 "AEC_POLYGON")

(cons -4 "or>")

)

)

)

)

(setq S1 (getstring t "\nVOULEZ VOUS SELECTIONNER LE TYPE DE HACHURAGE SI OUI TAPPER S "))

(if (or (= S1 "S") (= S1 "s"))

(progn (setq H2 NIL)

(setq HACH1 NIL)

(setq TEST1 0)

(while (/= TEST1 1)

(setq ENT1 (car (nentsel "\nSELECTIONNER LA HACHURE DE BASE.")))

(setq TEST (cdr (assoc 0 (entget ENT1)))

TEST1 (cond ((= TEST "HATCH") 1))

)

)

(setq TYPEHACH (cdr (assoc 2 (entget ENT1)))

CALQUEHACH (cdr (assoc 8 (entget ENT1)))

)

(if (or (= TYPEHACH "SOLID") (= TYPEHACH "solid"))

(setq ECHELHACH 1

ANGLHACH 0

)

(setq ECHELHACH (cdr (assoc 41 (entget ENT1)))

ANGLHACH (* (cdr (assoc 52 (entget ENT1))) (/ 180 pi))

)

)

)

(progn (prompt "\nSOLID - remplissage de solide")

(prompt "\nANGLE - angle acier")

(prompt "\nANSI31 - fer, brique, maçonnerie en pierres")

(prompt "\nANSI32 - acier")

(prompt "\nANSI33 - bronze, laiton, cuivre")

(prompt "\nANSI34 - plastique, élastique")

(prompt "\nANSI35 - brique réfractaire, matériau réfractaire")

(prompt "\nANSI36 - marble, ardoise, verre")

(prompt "\nANSI37 - plomb, zinc, magnesium, isolation acoustique/thermique/électrique")

(prompt "\nANSI38 - aluminium")

(prompt "\nAR-B816 - support d'élévation de bloc 8x16")

(prompt "\nAR-B816C - support d'élévation de bloc avec des joints de mortier 8x16")

(prompt "\nAR-B88 - support d'élévation de bloc 8x8")

(prompt "\nAR-BRELM - support standard en brique pour l'élévation de bloc à l'anglaise avec" )

(prompt "\nAR-BRSTD - support standard en brique pour l'élévation de bloc")

(prompt "\nAR-CONC - point au hasard et motif en pierres")

(prompt "\nAR-HBONE - motif de brique standard en arête de poisson à 45 degrés")

(prompt "\nAR-PARQ1 - revêtement de sol de 2x12 : motif de 12x12")

(prompt "\nAR-RROOF - toiture en galet")

(prompt "\nAR-RSHKE - toiture en bois")

(prompt "\nAR-SAND - motif de points disposés au hasard")

(prompt "\nBOX - boîte en acier")

(prompt "\nBRASS - matériau en laiton")

(prompt "\nBRICK - surface en brique ou en maçonnerie")

(prompt "\nBRSTONE - briques et pierres")

(prompt "\nCLAY - argile")

(prompt "\nCORK - liège")

(prompt "\nCROSS - une série de croix")

(prompt "\nDASH - tirets")

(prompt "\nDOLMIT - marcottage géologique de roches")

(prompt "\nDOTS - une série de points")

(prompt "\nEARTH - terre ou terrain - sous terre - ")

(prompt "\nESCHER - motif Escher")

(prompt "\nFLEX - matériau flexible")

(prompt "\nGRASS - aire gazonnée")

(prompt "\nGRATE - grille")

(prompt "\nGRAVEL - Motif gravier")

(prompt "\nHEX - héxagones")

(prompt "\nHONEY - motif alvéolaire")

(prompt "\nHOUND - pied de poule")

(prompt "\nINSUL - matériau isolant")

(prompt "\nACAD_ISO02W100 - tiret")

(prompt "\nACAD_ISO03W100 - tiret espace")

(prompt "\nACAD_ISO04W100 - tiret long points")

(prompt "\nACAD_ISO05W100 - tiret long deux points")

(prompt "\nACAD_ISO06W100 - tiret long trois points")

(prompt "\nACAD_ISO07W100 - point")

(prompt "\nACAD_ISO08W100 - tiret long point court")

(prompt "\nACAD_ISO09W100 - tiret long deux tirets courts")

(prompt "\nACAD_ISO10W100 - tiret points")

(prompt "\nACAD_ISO11W100 - deux tirets point")

(prompt "\nACAD_ISO12W100 - tiret deux points")

(prompt "\nACAD_ISO13W100 - deux tirets deux points")

(prompt "\nACAD_ISO14W100 - tiret trois points")

(prompt "\nACAD_ISO15W100 - deux tirets trois points")

(prompt "\nLINE - lignes horizontales parallèles")

(prompt "\nMUDST - boue et sable")

(prompt "\nNET - grille horizontale / verticale")

(prompt "\nNET3 - motif réseau 0-60-120")

(prompt "\nPLAST - matériau plastique")

(prompt "\nPLASTI - matériau plastique")

(prompt "\nSACNCR - béton")

(prompt "\nSQUARE - alignement de petits carrés")

(prompt "\nSTARS - étoile de David")

(prompt "\nSTEEL - matériau métallique")

(prompt "\nSWAMP - zone marécageuse")

(prompt "\nTRANS - matériau thermoconducteur")

(prompt "\nTRIANG - triangles équilatéraux")

(prompt "\nZIGZAG - effet d'escalier")

(setq TYPE1 (getstring t (strcat "\nVEUILLEZ ENTRER LE NOUVEAU TYPE DE HACHURAGE <" TYPEHACH ">: ")))

(if (/= TYPE1 "")

(setq TYPEHACH TYPE1)

)

(if (/= TYPEHACH "solid")

(progn (setq ECHL1 (getdist (strcat "\nENTRER LA VALEUR DE L'ECHELLE DE HACHURAGE <" (rtos ECHELHACH 2 8) ">: ")))

(if ECHL1

(setq ECHELHACH ECHL1)

)

(setq ANGL1 (getdist (strcat "\nENTRER LA VALEUR DE L'ANGLE DE HACHURAGE <" (rtos ANGLHACH 2 8) ">: ")))

(if ANGL1

(setq ANGLHACH ANGL1)

)

)

)

)

)

(setq FERM NIL)

(setq COMPT 0)

(command "-fhach" "p" TYPEHACH ECHELHACH ANGLHACH "A" "A" "O" "" "")

(if (= CALQUEHACH NIL)

(command "-calque" "ch" CALQUEHACH2 "")

(command "-calque" "ch" CALQUEHACH "")

)

(setq COM (sslength LESPOLY))

(while (< COMPT COM)

(progn (setq UNEPOLY (ssname LESPOLY COMPT))

(setq FORME (cdr (assoc 0 (entget UNEPOLY))))

(setq FERM (cdr (assoc 70 (entget UNEPOLY))))

(setq NBPOINT (cdr (assoc 90 (entget UNEPOLY))))

(if (= FORME "CIRCLE")

(setq FERM 1

NBPOINT 3

)

)

(if (and (or (= FERM 129) (= FERM 1)) (> NBPOINT 2))

(command "-fhach" "SE" UNEPOLY "" "")

)

(setq COMPT (1+ COMPT))

)

)

(princ)

(setq COMPT 0)

(initget "O N")

(setq ANS (getkword "EST CE QUE LE HACHURAGE VOUS CONVIENT ? (O/N):"))

(if (= ANS "N")

(progn (while (< COMPT COM) (command "ANNULER" "") (setq COMPT (1+ COMPT))))

)

(setcfg "APPDATA/typehach" TYPEHACH)

(setcfg "APPDATA/echelhach" (rtos ECHELHACH 2 8))

(setcfg "APPDATA/anglhach" (rtos ANGLHACH 2 8))

(setvar "osmode" OSM)

(setvar "clayer" CAV)

(princ)

)' alt='>)'>

 

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

oupss programme incomplet

 

 

 

 

 

;;; ---------------------------------------------

;;; REMPLIT PAR UN HACHURAGE LES POLYLIGNES FERMEE

;;; ---------------------------------------------

 

 

(defun C:HAC2 (/)

(setvar "cmdecho" 1)

(setvar "dimzin" 0)

(setq CAV (getvar "clayer"))

(setq OSM (getvar "osmode"))

(setvar "osmode" 0)

(setq TYPEHACH (getcfg "APPDATA/TYPEHACH"))

(setq ECHELHACH (atof (getcfg "APPDATA/ECHELHACH")))

(setq ANGLHACH (atof (getcfg "APPDATA/ANGLHACH")))

(setq CALQUEHACH2 (getcfg "APPDATA/Tcalq2"))

(setq CALQUEHACH NIL)

(princ "\n")

(princ "\n")

(setq S1 (getstring t "\nVOULEZ VOUS SELECTIONNER LE TYPE DE HACHURAGE SI OUI TAPPER S "))

(if (or (= S1 "S") (= S1 "s"))

(progn (setq H2 NIL)

(setq HACH1 NIL)

(setq TEST1 0)

;;; (setq ENT1 nil)

;;; (while (null ENT1)

;;; (setq ENT1 (ssget (list (cons -4 "

;;; (cons 0 "HATCH")

;;; (cons -4 "or>")

;;; )

;;; )

;;; )

;;; )

(while (/= TEST1 1)

(setq ENT1 (car (nentsel "\nSELECTIONNER LA HACHURE DE BASE.")))

(setq TEST (cdr (assoc 0 (entget ENT1)))

TEST1 (cond ((= TEST "HATCH") 1))

)

)

(setq TYPEHACH (cdr (assoc 2 (entget ENT1)))

CALQUEHACH (cdr (assoc 8 (entget ENT1)))

)

(if (or (= TYPEHACH "SOLID") (= TYPEHACH "solid"))

(setq ECHELHACH 1

ANGLHACH 0

)

(setq ECHELHACH (cdr (assoc 41 (entget ENT1)))

ANGLHACH (* (cdr (assoc 52 (entget ENT1))) (/ 180 pi))

)

)

)

(progn (prompt "\nSOLID - remplissage de solide")

(prompt "\nANGLE - angle acier")

(prompt "\nANSI31 - fer, brique, maçonnerie en pierres")

(prompt "\nANSI32 - acier")

(prompt "\nANSI33 - bronze, laiton, cuivre")

(prompt "\nANSI34 - plastique, élastique")

(prompt "\nANSI35 - brique réfractaire, matériau réfractaire")

(prompt "\nANSI36 - marble, ardoise, verre")

(prompt "\nANSI37 - plomb, zinc, magnesium, isolation acoustique/thermique/électrique")

(prompt "\nANSI38 - aluminium")

(prompt "\nAR-B816 - support d'élévation de bloc 8x16")

(prompt "\nAR-B816C - support d'élévation de bloc avec des joints de mortier 8x16")

(prompt "\nAR-B88 - support d'élévation de bloc 8x8")

(prompt "\nAR-BRELM - support standard en brique pour l'élévation de bloc à l'anglaise avec" )

(prompt "\nAR-BRSTD - support standard en brique pour l'élévation de bloc")

(prompt "\nAR-CONC - point au hasard et motif en pierres")

(prompt "\nAR-HBONE - motif de brique standard en arête de poisson à 45 degrés")

(prompt "\nAR-PARQ1 - revêtement de sol de 2x12 : motif de 12x12")

(prompt "\nAR-RROOF - toiture en galet")

(prompt "\nAR-RSHKE - toiture en bois")

(prompt "\nAR-SAND - motif de points disposés au hasard")

(prompt "\nBOX - boîte en acier")

(prompt "\nBRASS - matériau en laiton")

(prompt "\nBRICK - surface en brique ou en maçonnerie")

(prompt "\nBRSTONE - briques et pierres")

(prompt "\nCLAY - argile")

(prompt "\nCORK - liège")

(prompt "\nCROSS - une série de croix")

(prompt "\nDASH - tirets")

(prompt "\nDOLMIT - marcottage géologique de roches")

(prompt "\nDOTS - une série de points")

(prompt "\nEARTH - terre ou terrain - sous terre - ")

(prompt "\nESCHER - motif Escher")

(prompt "\nFLEX - matériau flexible")

(prompt "\nGRASS - aire gazonnée")

(prompt "\nGRATE - grille")

(prompt "\nGRAVEL - Motif gravier")

(prompt "\nHEX - héxagones")

(prompt "\nHONEY - motif alvéolaire")

(prompt "\nHOUND - pied de poule")

(prompt "\nINSUL - matériau isolant")

(prompt "\nACAD_ISO02W100 - tiret")

(prompt "\nACAD_ISO03W100 - tiret espace")

(prompt "\nACAD_ISO04W100 - tiret long points")

(prompt "\nACAD_ISO05W100 - tiret long deux points")

(prompt "\nACAD_ISO06W100 - tiret long trois points")

(prompt "\nACAD_ISO07W100 - point")

(prompt "\nACAD_ISO08W100 - tiret long point court")

(prompt "\nACAD_ISO09W100 - tiret long deux tirets courts")

(prompt "\nACAD_ISO10W100 - tiret points")

(prompt "\nACAD_ISO11W100 - deux tirets point")

(prompt "\nACAD_ISO12W100 - tiret deux points")

(prompt "\nACAD_ISO13W100 - deux tirets deux points")

(prompt "\nACAD_ISO14W100 - tiret trois points")

(prompt "\nACAD_ISO15W100 - deux tirets trois points")

(prompt "\nLINE - lignes horizontales parallèles")

(prompt "\nMUDST - boue et sable")

(prompt "\nNET - grille horizontale / verticale")

(prompt "\nNET3 - motif réseau 0-60-120")

(prompt "\nPLAST - matériau plastique")

(prompt "\nPLASTI - matériau plastique")

(prompt "\nSACNCR - béton")

(prompt "\nSQUARE - alignement de petits carrés")

(prompt "\nSTARS - étoile de David")

(prompt "\nSTEEL - matériau métallique")

(prompt "\nSWAMP - zone marécageuse")

(prompt "\nTRANS - matériau thermoconducteur")

(prompt "\nTRIANG - triangles équilatéraux")

(prompt "\nZIGZAG - effet d'escalier")

(setq TYPE1 (getstring t (strcat "\nVEUILLEZ ENTRER LE NOUVEAU TYPE DE HACHURAGE <" TYPEHACH ">: ")))

(if (/= TYPE1 "")

(setq TYPEHACH TYPE1)

)

(if (/= TYPEHACH "solid")

(progn (setq ECHL1 (getdist (strcat "\nENTRER LA VALEUR DE L'ECHELLE DE HACHURAGE <" (rtos ECHELHACH 2 8) ">: ")))

(if ECHL1

(setq ECHELHACH ECHL1)

)

(setq ANGL1 (getdist (strcat "\nENTRER LA VALEUR DE L'ANGLE DE HACHURAGE <" (rtos ANGLHACH 2 8) ">: ")))

(if ANGL1

(setq ANGLHACH ANGL1)

)

)

)

)

)

(setq S2 (getstring t "\nVOULEZ VOUS SELECTIONNER DES POLYLIGNES OU DES POINTS SI OUI TAPPER P "))

(if (or (= S2 "P") (= S2 "p"))

(progn (prompt "CLIQUER LES POINT A HACHURER:")

;;; (if (= calquehach nil)

(command "-calque" "ch" CALQUEHACH "")

;;; (command "-calque" "ch" calquehach "")

;;; )

;;; (princ "\)

;;; (princ "\)

(command "-fhach" "p" TYPEHACH ECHELHACH ANGLHACH "A" "A" "O" "")

;;; (initget "O N")

;;; (setq ANS (getkword "EST CE QUE LE HACHURAGE VOUS CONVIENT ? (O/N):"))

;;; (if (= ANS "N")

;;; (command "ANNULER" "")

;;; )

;;; (setvar "clayer" cav)

;;; (command "-fhach")

)

(progn (command "-fhach" "p" TYPEHACH ECHELHACH ANGLHACH "A" "A" "O" "" "")

(if (= CALQUEHACH NIL)

(command "-calque" "ch" CALQUEHACH2 "")

(command "-calque" "ch" CALQUEHACH "")

)

(prompt "CLIQUER SUR L'ENTITE(S) POLYLIGNE(S) A HACHURER :")

(setq LESPOLY NIL)

(while (null LESPOLY)

(setq LESPOLY (ssget (list (cons -4 "

(cons 0 "CIRCLE")

(cons 0 "polyline")

(cons 0 "lwpolyline")

(cons 0 "AEC_POLYGON")

(cons -4 "or>")

)

)

)

)

(setq FERM NIL)

(setq COMPT 0)

(setq COM (sslength LESPOLY))

(while (< COMPT COM)

(progn (setq UNEPOLY (ssname LESPOLY COMPT))

(setq FORME (cdr (assoc 0 (entget UNEPOLY))))

(setq FERM (cdr (assoc 70 (entget UNEPOLY))))

(setq NBPOINT (cdr (assoc 90 (entget UNEPOLY))))

(if (= FORME "CIRCLE")

(setq FERM 1

NBPOINT 3

)

)

(if (and (or (= FERM 129) (= FERM 1)) (> NBPOINT 2))

(command "-fhach" "SE" UNEPOLY "" "")

)

(setq COMPT (1+ COMPT))

)

)

(princ)

(setq COMPT 0)

(initget "O N")

(setq ANS (getkword "EST CE QUE LE HACHURAGE VOUS CONVIENT ? (O/N):"))

(if (= ANS "N")

(progn (while (< COMPT COM) (command "ANNULER" "") (setq COMPT (1+ COMPT))))

)

(setvar "clayer" CAV)

)

)

(setcfg "APPDATA/typehach" TYPEHACH)

(setcfg "APPDATA/echelhach" (rtos ECHELHACH 2 8))

(setcfg "APPDATA/anglhach" (rtos ANGLHACH 2 8))

(setvar "osmode" OSM)

;;; (setvar "clayer" cav)

(princ)

)

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é