formula1 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Bonjours a tous, Je cherche à faire des hachures automatiques sans passer par la boite de dialogue d'autocad.Je m'explique; je veus mettre une hachure de type solid à l'aide de pickpoint dans un layers définit (et non current) et ensuite le mettre automatiquement en arriere plan.J'espère etre claire et remercie d'avance toute les personnes qui m'aurons aider.
lili2006 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Bonsoir à toutes et tous, Et les palettes, non ??!! Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
formula1 Posté(e) le 27 février 2008 Auteur Posté(e) le 27 février 2008 non, car je suis avec autocad 2004 anglais et puis les palette me donnes une hachure mais pas dans le layers qui convien et ne me la met pas automatiquement en arriere plan
lili2006 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Re, Ok ! Tu peux toujours associer ton motif de hachures à ton calque et ensuite isoler ce calque et lancer la commande d'arrière plan, non ? (je ne me rapelle plus sous une V2004, désolé !). Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
didier Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 bonjour, est ce que tu souhaites une solution lisp ? est ce que TOUTES les polylignes ferméesdu calque nommé doivent être hachurées ? quelle est, dans ce cas, l'utilité du point de sélection ? sans solution lisp : isoler le calque à hachurerlancer la commande hachures ( eh oui, il faut lancer la commande !!!)choix des objets par capturele tour est joué pour l'affichage arrièreje n'ai pas le souvenir que la création des hachures en arrière plan existait sur la 2004 si ce n'est pas le cascommande OrdreAffichagechoix des objets en FILTRANT les hachuresvalider le choix ARle tour est joué amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
formula1 Posté(e) le 28 février 2008 Auteur Posté(e) le 28 février 2008 Didier, c'est bien une solution lisp que je cherche. ce que je voudrais, c'est que la routine me permette d'hachurer mes objets et de mettre en arriere plan mes hachure. Je m'explique, la routine m'obligerais a utilisé par exemple le layer hach ensuite de m'obliger à utiliser le pattern par exemple solid et puis de demander à l'utilisateur de faire pick point afin d'achurer un ou plusieur élément et enfin de metre automatiquement l'hachure en arriere plan grace à la commande drauworder.
phil_vsd Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 Hello, On va essayer de réunir quelques bout de code parci parlà pour reconstruire ta routine... Ca c'est pour sélectionner et mémoriser le calque à hachurer. Fais un copier coller dans la ligne de commande pour le tester tel quel. (setq cname (cdr(assoc 8(entget(car(entsel)))))) Ca c'est pour créer un calque pour les hachures solides (entmake '((0 . "LAYER") ; type d'entité (100 . "AcDbSymbolTableRecord") ; marqueur de sous classe (100 . "AcDbLayerTableRecord") ; marqueur de sous classe (2 . "Hachures Solides") ; nom du calque (70 . 0) ; drapeau d'état (gelé, vérouillé...) (62 . 1) ; couleur (6 . "Continuous") ; type de ligne (370 . 18) ; épaisseur de ligne ) ) Ca c'est pour mémoriser le calque courant initial(Setq ccl (getvar "clayer")) Ca c'est pour rendre le calque des hachure courant(setvar "clayer" "Hachures Solides") Ca c'est pour lancer la comande hachure en mode solide(command "_hatch" "s" ) Ca je ne sais pas pourquoi mais ça fait masterclass ! On le met à la fin.(Princ) Manque plus que isoler les calques... Je teste "isocalque" et je reviens... Je reviens.... Mais je ne sais pas quand... Mais je reviens... Promis ! EDIT : J'oublieais ça : (setq ss(ssget "_x"(list'(cons 8 "TON CALQUE")))) Ce sera pour quand on lancera la commande hachure, pour qu'elle ne s'appluque qu'au calque que tu vaux hachurer... Hum je crois que je fais doublon avec ma prmière ligne de code... A méditer... [Edité le 28/2/2008 par phil_vsd] "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.
lesourd2 Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 Salut formula1 Il y a un post à peu pres similaire là.Mais je sais pas si cela pourrais t'aider ; à voir
rebcao Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 une simple MACRO permet déjà d'obtenir quelque chose de correct. *^c^c_-bhatch;P;SOLID;\;_ai_draworder;_Back;_L;;CHPROP;_L;;CA;[surligneur]" TON_CALQUE"[/surligneur];;regen; Il suffit de remplacer [surligneur] "TON_uCALQUE"[/surligneur] par le nom de calque que tu souhaites utiliser. Cette MACRO peut être utilisée dans les PROPRIETES des outils (icônes) de la PALETTE d'OUTILS ou derrière une icône classique... Je rejoins tout à fait LILI2006 qui a le réflexe d'utiliser les PALETTES D'OUTILS. Je trouve curieux qu'il y ait si peu d'utilisateur qui exploite toutes les possibilités de ces palettes. :P Christian [Edité le 28/2/2008 par rebcao] Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
formula1 Posté(e) le 28 février 2008 Auteur Posté(e) le 28 février 2008 merci rebcao c'est exactement ce que je cherchait mais je l'ai testée et il veut que je trace des ligne, pourquoi???
(gile) Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 Salut, Pour une solution en LISP (très proche de la macro de Rebcao), quelques suggestions pour faire simple et compréhensible en utilisant la fonction command. Comme le dit Phil_vsd (dont on peut admirer les rapides progrès), on commence par sauvegarder le calque courant. L'option Etablir (_make) de la commande CALQUE (_layer) rend le calque spécifié courant et le crée s'il n'existe pas (on peut ajouter des options comme la couleur rouge dans l'expression ci-dessous) La commande HACHURES (_bhatch) a, depuis les dernières versions, une option "ordre de Tracé" (_draw) Puis on restitue la calque courant. Le (princ) à la fin évite d'avoir le résultat de la dernière expression qui s'afiche sur la ligne de commande. (defun c:test (/ cc) (setq cc (getvar "clayer")) (command "_.layer" "_make" "Hachures_solid" "_color" 1 "Hachures_solid" "") (command "_.bhatch" "_properties" "solid" "_draw" "_back" pause "") (setvar "clayer" cc) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 Bonsoir à toutes et tous, rebcao, Je trouve curieux qu'il y ait si peu d'utilisateur qui exploite toutes les possibilités de ces palettes. pareil pour moi. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
formula1 Posté(e) le 28 février 2008 Auteur Posté(e) le 28 février 2008 un grand merci a toi gile, le lisp fonctionne a merveille, mais j'ai un probleme avec le draworder
phil_vsd Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Hello tous, D'abord merci à toi (gile) et à tous ceux qui prennent de leur temps pour guider les newbies de mon genre. Je note tous les post intéressants sur les bases du lisp. Le lisp à l'air de bien marcher. J'aimerai savoir ce que F1 trouve comme problème. Je travaille sur une version qui hachure automatiquement tous les objets d'un calque "x" pour éviter à les piquer un par un. A ++++ "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.
didier Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 coucou pourquoi est ce que peu de gens utilisent les palettes ? par négligence des nouvelles versions, tout simplementcelui qui commence avec cet environnement s'y met facilement,il n'a pas encore d'habitudes... celui qui tape sur son clavier des commandes depuis vingt ansne voit pas ce que ça lui apporte, je fais partie de cette dernière catégorie, vous l'aviez compris. et d'ailleurs, qu'elle est la REELLE amélioration qu'apporte cet outil ? je ne suis hermétique à rien, mais ce n'est qu'un parasited'écran supplémentaire à mes yeux. prouvez moi le contraire, et je changerai d'avis certainement. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
rebcao Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 prouvez moi le contraire, et je changerai d'avis certainement. Essayes d'insérer un bloc dans un dessin où il n'existe pas ! combien de temps ? ou tu vas me dire je tape I (alias de insérer) puis je choisi dans la liste le bloc ??? et HOP j'insère !... Avec la PALETTE si le bloc s'y trouve ça coute UN CLIC on va dire 2 secondes le temps de déplacer la souris... Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
bonuscad Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Il y avait ce sujet La version complétée: (defun c:mhatch (/ cmdecho mod_hatch ang_hatch esp_hatch dbl_hatch ss i ss1 pt) (setq cmdecho (getvar "CMDECHO")) (setvar "CMDECHO" 0) (command "_.UNDO" "_Group") (initget "Solide Utilisateur Courant _Solid User Current") (setq mod_hatch (getkword (strcat "\nUtiliser le motif [solide/Utilisateur/Courant]? <" (getvar "HPNAME") ">: "))) (cond ((eq mod_hatch "Solid") (setvar "HPNAME" "_SOLID")) ((eq mod_hatch "User") (setvar "HPNAME" "_USER")) ) (if (and (/= (getvar "HPNAME") "_SOLID") (/= (getvar "HPNAME") "SOLID")) (if (or (wcmatch (getvar "hpname") "_U*") (wcmatch (getvar "hpname") "U*")) (progn (setq ang_hatch (getangle (strcat "\nSpécifiez l'angle des lignes de hachures <" (angtos (getvar "HPANG")) ">: "))) (if ang_hatch (setvar "HPANG" ang_hatch)) (initget 6) (setq esp_hatch (getdist (strcat "\nSpécifiez l'espacement entre les lignes <" (rtos (getvar "HPSPACE")) ">: "))) (if esp_hatch (setvar "HPSPACE" esp_hatch)) (initget "Oui Non _Yes No") (setq dbl_hatch (getkword (strcat "\nDouble hachures? [Oui/Non] <" (if (zerop (getvar "HPDOUBLE")) "N" "O") ">: "))) (cond ((eq dbl_hatch "Yes") (setvar "HPDOUBLE" 1)) ((eq dbl_hatch "No") (setvar "HPDOUBLE" 0))) ) (progn (initget 6) (setq esp_hatch (getdist (strcat "\nSpécifiez l'échelle du modèle <" (rtos (getvar "HPSCALE")) ">: "))) (if esp_hatch (setvar "HPSCALE" esp_hatch)) (setq ang_hatch (getangle (strcat "\nSpécifiez l'angle du modèle <" (angtos (getvar "HPANG")) ">: "))) (if ang_hatch (setvar "HPANG" ang_hatch)) ) ) ) (princ "\nChoisir des objet ou pour point interne.") (setq ss (ssget '((-4 . [b]"<[/b]OR") (-4 . [b]"<[/b]AND") (0 . "POLYLINE") (-4 . [b]"<[/b]AND") (-4 . "&") (70 . 1) (-4 . [b]"<[/b]NOT") (-4 . "&") (70 . 16) (-4 . "NOT>") (-4 . "AND>") (-4 . "AND>") (-4 . [b]"<[/b]AND") (0 . "LWPOLYLINE") (-4 . [b]"<[/b]AND") (-4 . "&") (70 . 1) (-4 . "AND>") (-4 . "AND>") (-4 . [b]"<[/b]AND") (0 . "MLINE") (-4 . [b]"<[/b]AND") (-4 . "=") (71 . 3) (-4 . "AND>") (-4 . "AND>") (-4 . [b]"<[/b]AND") (0 . "CIRCLE") (-4 . "AND>") (-4 . [b]"<[/b]AND") (0 . "3DFACE") (-4 . "AND>") (-4 . [b]"<[/b]AND") (0 . "ELLIPSE") (-4 . [b]"<[/b]AND") (-4 . "=") (41 . 0) (-4 . "=") (42 . 6.283185307179586) (-4 . "AND>") (-4 . "AND>") (-4 . [b]"<[/b]AND") (0 . "SPLINE") (-4 . [b]"<[/b]AND") (-4 . "&") (70 . 1) (-4 . "AND>") (-4 . "AND>") (-4 . [b]"<[/b]AND") (0 . "REGION") (-4 . "AND>") (-4 . "OR>")) ) i -1 ss1 (ssadd) ) (cond (ss (repeat (sslength ss) (command "_.-bhatch" "_select" (ssname ss (setq i (1+ i))) "" "") (ssadd (entlast) ss1) ) ) (T (while (setq pt (getpoint "\nSpécifiez un point interne: ")) (command "_.-bhatch" pt "") (ssadd (entlast) ss1) ) ) ) (if (not (zerop (sslength ss1))) (command "_.draworder" ss1 "" "_back")) (command "_.UNDO" "_End") (setvar "CMDECHO" cmdecho) (princ) ) [Edité le 29/2/2008 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
bonuscad Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Une autre, pour une demande différente que j'ai posté sur un forum US, ci ça peut servir ... La demande était de hachurer une/ des polylignes optimisées "LwPolyLine" fermée avec le motif à 45° par rapport au plus grand coté de la polyligne. Par exemple Hachurer du bati en une seule fois sur une cartographie. (defun c:multi_hatch-45 ( / js n model_hatch scale_hatch ang_hatch ent dxf_ent lst_pt lst_d where alpha) (setq js (ssget '((0 . "LWPOLYLINE") (-4 . "[b]<[/b]AND") (-4 . "&") (70 . 1) (-4 . "AND>")))) (cond (js (setq n -1 model_hatch (getvar "HPNAME") scale_hatch (getvar "HPSCALE") ang_hatch (getvar "HPANG") ) (setvar "HPNAME" "ANSI31") (setvar "HPSCALE" (* (getvar "HPSCALE") (getvar "DIMSCALE"))) (repeat (sslength js) (setq ent (ssname js (setq n (1+ n))) dxf_ent (entget ent) lst_pt (mapcar '(lambda (x) (trans x ent 0)) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) dxf_ent))) lst_d (mapcar 'distance lst_pt (cons (last lst_pt) lst_pt)) where (- (length lst_pt) (length (member (apply 'max lst_d) lst_d))) alpha (angle (if (zerop where) (last lst_pt) (nth (1- where) lst_pt)) (nth where lst_pt)) ) (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) ) (T (princ "\nAucune LWPOLYLINE fermée trouvé !")) ) (princ) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lili2006 Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Bonsoir à toutes et tous, Beaucoup d'intérêt au contraire les palettes !Déjà, plus de problème de gestion des calques, les outils lignes, textes, cotations, hachures, multilignes, et j'en passe sont déjà associés. Ensuite un seul bloc pour tes 20 échelles. Encore, glisser-déposer de tout et n'importe quoi, un chantier entier si tu veux. Ou bien en un clic transformer ta bibliothèque en palette et donc plus de soucis de mise à jour incotrolé des blocs utilisés par l'entreprise . Exportation possible sur n'importe quel poste en 5 minutes à peine, d'ou, pour un bureau un travail homogène, bref un outil indispensable à la charte graphique. Et le ponpon, pour toi, didier qui utilise covadis, même combat, c'est à dire les outils utiles, les symboles, les hachures, les textes,...Encore plus fort, grace aux espaces de travail, tu changes de configuration (dont tes palettes bien sur !) en 1 clic, c'est pas beau ça,... Enfin bref, je serai aujourd'hui incapable de mieux organiser mon travail (ou au moins aussi bien) sans ses palettes, car bien sur il existe celle des XREFS, propriétés, tableau de bord, jeu de feuilles, désign-center,... et contrairement à ce que tu dis didier, elle prennent largement moins de place que tous les autres outils puisqu'elles ne s'ouvrent que si tu passes la souris dessus, alors,...même la ligne de commande => D'autes logiciels proposent mieux ? Sinon, je suis preneur ! <!--url{0}--> par négligence des nouvelles versions, tout simplement Pourquoi les acheter alors ? A chaque changement de versions, des outils extrordinaires sont proposés, pour moi les révolutions ? Jeux de feuilles, blocs dynamiques, liaisons avec Excel, annotatifs, tableaux, champs,espace de travail...et j'en passe. Effectivement, la deux cheveaux et la mercédés,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Re, bonuscad, toujours aussi balaise, comme quoi, il nous faut aussi des "vieux" *,... * : vieux routard, bien entendu ! Chez moi, pas de problème pour "mhatch", par contre pour "multi_hatch-45 ", j'ai ce message ?? MULTI_HATCH-45Choix des objets: Spécifiez le coin opposé: 2 trouvé(s)Choix des objets:; erreur: paramètre de la variable AutoCAD rejeté: "HPSCALE" 0.0Commande: Quelle est donc cette variable ? Merci d'avance. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
bonuscad Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 La personne voulait que son facteur d'échelle pour les hachures soit en relation avec l'échelle des cotations. Cela peut être supprimé dans le code, pour toi la variable "DIMSCALE" doit être à 0.0 pour entrainer cette erreur. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lili2006 Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Re, En effet, j'ai passé "DIMSCALE" à 1 et ça roule.Merci bonuscad. @+, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lesourd2 Posté(e) le 1 mars 2008 Posté(e) le 1 mars 2008 Salut lili j'avais meme pas pensé a organiser mes fenetres comme ça.Vachement interressant.J'arrive pas à comprendre comment tu fais ça. tu as toutes tes fenetres les unes au dessus des autres et quand tu passes ta souris sur une des fenetres elle s'ouvre entierement sur toute la hauteur c'est ça ? @+
lili2006 Posté(e) le 1 mars 2008 Posté(e) le 1 mars 2008 Bonjour à toutes et tous, C'est exactement ça lesourd2 !. Pour organiser tes palettes de cette façon, tu le fais en 2 temps => Clic droit sur la bande bleu de la palette, autorisation ancrage, puis ancrage à droite ou à gauche. Et voilà! Celles-ci s'organise dans le sens de la création, donc tu peux les disposer comme tu veux dans un espace de travail, pui différemment dans un autre espace, entr'autres,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant