le_chti Posté(e) le 31 janvier 2007 Posté(e) le 31 janvier 2007 bonjour,j'utilise autocad en 3d depuis peu.A partir d'une piece de base type parallelepipede rectangle avec un trou au centre,je voudrais creer des couches avec un pas fixe entre chaque couche. Est il eté possible de créer plusieurs fichiers contenant chaqu'un une seule coupe?Les coupes suivent le meme axe (Z par exemple), et les hachures où il y a de la matiere seront espacés de 0.02mm voir 0.03 mm.Y aurait-il possibilité de gerer le pas entre chaque coupe? Les pieces 3d modelisées messurent 3 mm de hauteur. Ce qui fait environ un nombre de 150 coupes! Donc les créer à la main serait.....Je pense qu'il doit etre question d'une macro mais je ne sais comment faire.Je me sert de autocad 2002. Merci pour votre aide.
Tramber Posté(e) le 31 janvier 2007 Posté(e) le 31 janvier 2007 Je me sert de autocad 2002. Alors pourquo qu'teu t'sert deu foreum 2007, ch'ti gars ? Il faut faire un script avec la commande COUPE puis -WBLOC sur le dernier objet (P en script). Les scripts, pour toi, c'est du chinois ou t'as déjà fait ? Découvrir les scripts avec Excel. Sinon, en lisp, mais là ca ne sera pas toi qui fera l'effort si tu ne connais pas le lisp du tout (alors que le script est facile à apprendre). Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
le_chti Posté(e) le 31 janvier 2007 Auteur Posté(e) le 31 janvier 2007 merci pour ta reponse.j'avais pas vu le topic 2007. J'ai deja fais un peu de macro sous excel.Peux tu me donner un peu plus d'explication sur les fonction coupe et wbloc ou est ce que tu as des tutus sur ces fonctions?J'ai pas mal regarder ceux que j'ai trouvé sur le net et ils sont assez dur à comprendre.mercia+ [Edité le 1/2/2007 par le_chti]
(gile) Posté(e) le 1 février 2007 Posté(e) le 1 février 2007 Salut, Un petit LISP, pas très élégant, mais qui devrait te dépanner. Tu copies le code ci-dessous, le colle dans le bloc-note, l'enregistres sous le nom que tu veux avec l'extension .lsp, depuis AutoCAD, tu entres APPLOAD ou dans le menu Outils >> AutoLISP >> Charger une application. Pour lancer le LISP tu entres wbloc-coupe et tu réponds aux invites de la ligne de commande : Commande: WBLOC-COUPE Spécifiez le pas entre chaque coupe: Spécifiez un point sur le premier plan de coupe:Spécifiez un point sur le dernier plan de coupe:Sélectionnez le solide: Les coupes sont faites suivant des plans parallèles au plan XY du SCU courant.Le nombre de coupes est calculé en fonction du pas spécifié et des altitudes des points sur les premiers et derniers plan de coupe. Si la différence d'altitude n'est pas un multiple du pas, les coupes sont effectuées régulièrement suivant le pas à partir du premier plan de coupe et la dernière est faite sur le dernier plan spécifié.Chaque coupe est hachurée et enrgistrée dans un fichier différent dans le même dossier que le dessin courant (il doit être enregistré avant de lancer la commande) avec le même nom auquel est ajouté le suffixe _coupe_1.dwg, _coupe_2.dwg etc... EDIT : Réparé une petite erreur, le LISP fonctionne désormais aussi pour faire un seule coupe en spécifiant 0 pour le pas et/ou le même point pour pour le premier et le dernier plan (c'est ce dernier qui est retenu aucas où il serait différent du premier). (defun c:Wbloc-Coupe (/ epais obj alt0 alt1 nb n cnt file echo osmo coupe hach) (if (zerop (getvar "DWGTITLED")) (alert "Le dessin doit être enregistré avant de lancer la commande." ) (if (and (setq epais (getdist "\nSpécifiez le pas entre chaque coupe: ")) (setq alt0 (caddr (getpoint "\nSpécifiez un point sur le premier plan de coupe: " ) ) ) (setq alt1 (caddr (getpoint "\nSpécifiez un point sur le dernier plan de coupe: " ) ) ) (setq obj (car (entsel "\nSélectionnez le solide: "))) (= (cdr (assoc 0 (entget obj))) "3DSOLID") (if ( (setq nb (/ (abs (- alt0 alt1)) epais)) (setq nb 0) ) (if (= (fix nb) nb) (setq nb (fix nb)) (setq nb (1+ (fix nb))) ) (or ( (setq cnt 1) (setq n 0) (setq file (strcat (getvar "dwgprefix") (vl-string-right-trim ".dwg" (getvar "dwgname")) "_Coupe_" ) ) ) (progn (setq echo (getvar "CMDECHO")) (setvar "CMDECHO" 0) (setq osmo (getvar "OSMODE")) (setvar "OSMODE" 0) (while (findfile (strcat file (itoa cnt) ".dwg")) (setq cnt (1+ cnt)) ) (if ( (repeat nb (command "_section" obj "" "XY" (list 0.0 0.0 (+ alt0 (* n epais))) ) (setq coupe (entlast)) (command "_move" coupe "" (list 0.0 0.0 (+ alt0 (* n epais))) '(0.0 0.0 0.0) ) (command "_bhatch" "_s" coupe "" "_p" "ANSI31" "1.0" "" "") (setq hach (entlast)) (command "_wblock" (strcat file (itoa cnt) ".dwg") "" '(0.0 0.0 0.0) coupe hach "" ) (setq cnt (1+ cnt) n (1+ n) ) ) ) (command "_section" obj "" "XY" (list 0.0 0.0 alt1)) (setq coupe (entlast)) (command "_move" coupe "" (list 0.0 0.0 alt1) '(0.0 0.0 0.0) ) (command "_bhatch" "_s" coupe "" "_p" "ANSI31" "1.0" "" "") (setq hach (entlast)) (command "_wblock" (strcat file (itoa cnt) ".dwg") "" '(0.0 0.0 0.0) coupe hach "" ) (setvar "CMDECHO" echo) (setvar "OSMODE" osmo) ) ) ) (princ) ) [Edité le 1/2/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
le_chti Posté(e) le 2 février 2007 Auteur Posté(e) le 2 février 2007 ok merci a toi.je suis super heureux. ca marche nikel. merci bcp.Il ne me reste plus qu'a exporter les fichiers au format plt. Sinon les hachures sont crees par la ligne:(command "_bhatch" "_s" coupe "" "_p" "ANSI31" "1.0" "" "")avec 1.0 l'espacement des hachures. Je voudrais s'avoir comment faire pour quel soit du type "defini par l'utilisateur" pour avoir des hachures horizontales espacés de 0.02mm? encore merci.A+ Je viens de trouver pour le format plt. Je cree un traceur hpgl et apres je fais fichier>imprimer>tracer dans un fichier.Y a t'il moyen de le faire automatiquement de le lsp?Ces trop bien ce script je desire craiment aprendre ce language.Aurais tu des tutos a dispositions?Merci. [Edité le 3/2/2007 par le_chti]
(gile) Posté(e) le 3 février 2007 Posté(e) le 3 février 2007 Salut, Excuse moi je n'avais pas vu que tu avais modifié ta réponse. Je voudrais s'avoir comment faire pour quel soit du type "defini par l'utilisateur" pour avoir des hachures horizontales espacés de 0.02mm? Tu remplaces la ligne :(command "_bhatch" "_s" coupe "" "_p" "ANSI31" "1.0" "" "") par :(command "_bhatch" "_s" coupe "" "_p" "_u" "0.0" "0.02" "_n" "") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
le_chti Posté(e) le 5 février 2007 Auteur Posté(e) le 5 février 2007 Nikel mareci beaucoup pour ton aide. C terrible, ça marche trop bien. :)
le_chti Posté(e) le 5 février 2007 Auteur Posté(e) le 5 février 2007 Pour la toute derniere etape de mon process, est il possible de faire les commandes suivante dans le fichier lsp: fichier>imprimer>configuration du traceur >Lhpgl generique.pc3et tracer dans un fichier Merci.
(gile) Posté(e) le 5 février 2007 Posté(e) le 5 février 2007 Re, Ce que tu demandes n'est pas aisé à faire en LISP. Un programme LISP fonctionne dans le dessin dans lequel il est lancé et chacune de tes coupes est dans un fichier différent. Je pense qu'il serait plus facile de faire un script (c'est assez simple) qui ouvre chaque fichier, fait la mise en page et la configuration du traceur, puis lance l'impression. Regarde le lien donné par Tramber pour écrire des scripts avec Excel. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
le_chti Posté(e) le 5 février 2007 Auteur Posté(e) le 5 février 2007 ok merci. Je regarde tout ça. ;) Je te tiens au courant si j'ai une petite question.a+
Tramber Posté(e) le 7 février 2007 Posté(e) le 7 février 2007 Comme tu es Chtimi, et par solidarité, j'ai décidé de te livrer aussi la solution en script.Elle est simple à mettre en oeuvre pour qui ne connait pas le lisp car Excel suffit à faire des miracles.Le langage script est un peu retors, on pouvait controler certaines variables (EXPERT, OSMODE,...) mais je décris plus loin des conditions qui évite de régler trop de choses dans le script. C'est un vieux message mais j'ai de tels problèmes de publication des longs messages dû à un problème avec mon fournisseur en ce moment que je sis devenu bien hors sujet. coupe d XY 0,0,10 -wbloc C:/EXPORT/bloc001.dwg 0,0,10 d coupe d XY 0,0,20 -wbloc C:/EXPORT/bloc002.dwg 0,0,20 d coupe d XY 0,0,30 -wbloc C:/EXPORT/bloc003.dwg 0,0,30 d Le dernier objet doit être le solide que tu veux couper ou le seul que contient ton dessin, D comme Dernier appelle le dernier objet créé, aujourd'hui ou hier dans le DWG d'origine.Cet objet doit être réellement coupé lors de ces coupes et dès la première ligne du scriptLes fichiers de destination ne doivent pas existerLes accrochages aux objets seront désactivés avant le lancement du scriptLe dossier C:/EXPORT doit exister (et être vidé des éventuels bloc001.dwg) Dernière remarque très importante: chaque espace ou retour chariot vaut ENTREE, or sur CADxp, on ne peut les montrer et les dernier d'une ligne ne sont souvent pas publiésDans ce script ca finit par la lettre D suivi d'un espace avant le retour à la ligne. Ca se configure sans problème dans le CONCATENER d'Excel expliqué dans mon lien. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
le_chti Posté(e) le 2 avril 2007 Auteur Posté(e) le 2 avril 2007 merci bien a vous tous. Ma boite viens d'acquerir autocad 2007.J e viens d'essayer ce programme en lsp et il ne le reconnait pas.Pouvez vous me donner une solition?Merici bien
(gile) Posté(e) le 2 avril 2007 Posté(e) le 2 avril 2007 Salut, Peut tu préciser la procédure que tu as suivie et le message d'erreur qui s'en suit, s'il te plait. J'avais ce LISP avec 2007 et je viens de le re-essayer sur 2007, ça fonctionne. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
le_chti Posté(e) le 2 avril 2007 Auteur Posté(e) le 2 avril 2007 Merci bcp pour ta reponse.Je viens d'utiliser le lsp sous 2007 avec une piece de base cree sous 2007 et ca marche nkel. Par contre pour la piece qui minteresse, autcad 2007 me dit ceci: Commande: wbloc-coupeSpécifiez le pas entre chaque coupe: 0.5Spécifiez un point sur le premier plan de coupe:Spécifiez un point sur le dernier plan de coupe:Sélectionnez le solide:Le plan de coupe ne passe pas par le solide sélectionné. Cette piece a eté crée sous Proeng wilfire 2 par le client.Ensuite il me la envyé au format igs. Ensuite je l'ai ouverte sous turbocad pour lenregistré en dwg.Puis je l'ouvre avec autocad 2007 pour lancer wbloc-coupe et la ca foire. Je pense que le pb doit venir de l'exportation sous different soft... Avez vous 1 soluce? C'est superimportant pour mon taf je dois vraiment reussir a decouper cette piece....merci bien [Edité le 2/4/2007 par le_chti]
Tramber Posté(e) le 2 avril 2007 Posté(e) le 2 avril 2007 Mauvaise manip ! Faut l'enregistrer en SAT(ou STEP) et l'ouvrir directement avec AutoCAD. avec ACISIN. A un moment, ton truc a pu devenir un maillage au lieu de rester un solide. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
le_chti Posté(e) le 2 avril 2007 Auteur Posté(e) le 2 avril 2007 ok merci beaucoup tramber j'essaye demain au boulot. je vous tiens au courant.Merci pour tout vos conseil. C'est sympa de votre part:)
le_chti Posté(e) le 3 avril 2007 Auteur Posté(e) le 3 avril 2007 une petite question sous autocad est il possible de charger les fichiers Stp.?en effet, je voudrais creer des pieces sous catia que l'on a au taf et ensuite les decouper sous autocad. mon soucis est le suivant: Je ne sais pas comment faire pour ouvrir des .stp sous autocad? [Edité le 3/4/2007 par le_chti]
le_chti Posté(e) le 4 avril 2007 Auteur Posté(e) le 4 avril 2007 Nikel ça marche terrible! Que dois je rajouter dans le lsp pour exploder(decomposer) toutes les sections?
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