Aller au contenu

Messages recommandés

Posté(e)

Bonjour a tous...

 

Je souhaiterais dessiner des hachures dans une zone,

avec un angle à 50 grades de l'objet selectionné.

Pour le moment voila mon début, mais j'ai quelques problemes...

(Defun C:murb ( / AncienPlan p1 p2)
(setvar "cmdecho" 0)
(setvar "LUNITS" 2)             		
(setvar "AUNITS" 2)             		
(setvar "ANGBASE" (/ pi 2))     		
(setvar "ANGDIR" 1)  
          		
(setq p1 (getpoint "\n1er point : "))
(setq p2 (getpoint "\t2ème point : "))
(setq Ang12 (angle p1 p2))

(command "_-Hatch" "p" "ANSI31" Ang12 "0" "")

(princ)
)

En fait la commande Hatch ne se lance pas et je

n'arrive pas a recuperer l'angle correctement.

 

Si quelqu'un peu me m'etre sur la voie...

Merci d'avance.

 

Posté(e)

Bonjour,

 

Je te renvois sur cette réponse .

 

Tu pourras l'adapter si elle ne te convient pas tout à fait:

L'échelle des hachures est en rapport avec DIMSCALE, à modifier le cas échéant.

L'angle est imposé par rapport au segment le plus long de la polyligne, traite une sélection multiple.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

En fait, je cherche a faire quelquechose de moins

perfectionné dans la selection

 

Je te renvois sur cette réponse .

Tu pourras l'adapter si elle ne te convient pas tout à fait:

L'échelle des hachures est en rapport avec DIMSCALE, à modifier le cas échéant.

L'angle est imposé par rapport au segment le plus long de la polyligne, traite une sélection multiple.

:

 

Juste selectioner une ligne puis piqué un point

et un hachurage est insérer dans la zone avec

un angle à 45° du gisement de la ligne ainsi

qu'une echelle de 0.01 par exemple.

 

Pour hachuré plusieurs polyligne j'utilise ce petit code:

 

 
   ;Hachure multiples éléments
(SetQ Jeu (SSGet))
(setq i 0 lg (if jeu (sslength jeu) 0))
(while (< i lg)
                    (Command "_HATCH" "S" (ssname jeu i) "") 
(setq i (1+ i))
 )
(prin1)

 

Merci pour vos réponse.

Posté(e)

Une autre façon,

 

Avec les 2 tu arriveras bien à tirer quelque chose

 

(defun c:hatch-45 ( / ent obj_curv pt_sel param deriv alpha model_hatch scale_hatch ang_hatch)
(vl-load-com)
(while (not (setq ent (entsel "\nSelect the long side polyline to hatch it: "))))
(setq obj_curv (vlax-ename->vla-object (car ent)))
(cond
((and
(eq (vlax-get-property obj_curv 'ObjectName) "AcDbPolyline")
(eq (vla-get-closed obj_curv) :vlax-true)
)
(setq
pt_sel (vlax-curve-getClosestPointTo obj_curv (trans (cadr ent) 1 0))
param (vlax-curve-getparamatpoint obj_curv pt_sel)
deriv (vlax-curve-getfirstderiv obj_curv param)
alpha (atan (cadr deriv) (car deriv))
model_hatch (getvar "HPNAME")
scale_hatch (getvar "HPSCALE")
ang_hatch (getvar "HPANG")
)
(setvar "HPNAME" "ANSI31")
(setvar "HPSCALE" (* (getvar "HPSCALE") (getvar "DIMSCALE")))
(setvar "HPANG" (angle (trans '(0 0 0) 0 1) (trans (polar '(0 0 0) alpha scale_hatch) 0 1)))
(command "_.HATCH" "" "" "" ent "")
(setvar "HPNAME" model_hatch)
(setvar "HPSCALE" scale_hatch)
(setvar "HPANG" ang_hatch)
)
)
(princ)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Merci je vais prendre surrement un peu plus de temps que vous,

mais je vais me battre et j'espere réussir avec succès ce projet.

 

A bientot....

Posté(e)

Voila c'est peu etre pas trop conventionnel mais

SA FONCTIONNE exactement comme je le souhaitais :

 

 
(Defun C:murb ( / OldAccr p1 p2 Ang12 pt)
(Setq OldAccr (Getvar "OSMODE"))
(setvar "cmdecho" 0)
(setvar "LUNITS" 2)             		
(setvar "AUNITS" 2)             		
(setvar "ANGBASE" (/ pi 2))     		
(setvar "ANGDIR" 1)  
(command "_.layer" "_make" "Murs_Bas" "_color" 8 "Murs_Bas" "")          		
(Setvar "OSMODE" 33)
(setq p1 (getpoint "\n1er point : "))
(setq p2 (getpoint "\t2ème point : "))
(setq Ang12 (angle p1 p2))
(setvar "HPANG" Ang12)
(setvar "HPNAME" "ANSI31")
(setvar "HPSCALE" 0.02)
(Setvar "OSMODE" 0)
(setq pt (getpoint "\nSpécifiez un point dans la zone: "))
(command "_.-bhatch" pt "")
(command "_.layer" "CH" "0" "" "") 
(Setvar "OSMODE" OldAccr)         		
(princ)
)

 

Merci à tous

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é