Invité Paniro Posté(e) le 13 juillet 2011 Posté(e) le 13 juillet 2011 Bonjour à tous, Je suis totalement novice en matière de macro et je me demande s'il est possible de réaliser une action.http://img718.imageshack.us/img718/3614/acad.png C'est un peu compliqué à expliquer, mais je vais essayer d'être clair.Ce tracé sert de base à un pliage de tôle. Pour arriver à ce tracé, on part d'une côte finie (après pliage), puis un retrait, puis un décalage extérieur. Enfin une série de "prolonger", "ajuster" pour les angles. L'idéal serait une boite de dialogue (ou une invite de commande) qui me demanderait 3 valeurs : hauteur, largeur, profondeur finies. La macro s'occuperait ensuite de dessiner le développé de la tôle. Je ne sais pas du tout si c'est réalisable avec AutoCAD et ses macros, j'ai donc besoin de vos avis là-dessus :) Merci.
bryce Posté(e) le 13 juillet 2011 Posté(e) le 13 juillet 2011 Bonjour, C'est très simple à faire en Lisp (si tu as bien une version complète et non une LT), mais il faudrait indiquer sur ton dessin à quoi correspondent les données : hauteur, largeur, profondeur finies, retrait... ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité Paniro Posté(e) le 14 juillet 2011 Posté(e) le 14 juillet 2011 Voici la démarche, un peu plus détaillée.http://img37.imageshack.us/img37/8631/macroj.png L'invite de commande aurait besoin de connaître les 3 valeurs : HTF, LGF, PFF (hauteur, largeur et profondeur finies). Bonne journée.
(gile) Posté(e) le 14 juillet 2011 Posté(e) le 14 juillet 2011 Salut, En programmation (ici LISP) on ne procède pas forcément comme on le ferait quand on dessine.Le petit programme que je te propose, récupère les dimensions finies dans une petite boite de dialogue, puis, à partir de ces données calcule les points pour directement dessiner la polyligne (en fait chaque point est calculé en fonction du précédent). Si tu veux changer les valeurs par défaut, change les valeurs surlignées dans le code. Pour l'utilisation des LISP voir ce sujet. (defun c:devbox (/ setValue tmp file dcl_id status width height depth) (defun setValue (key val) (if (and (setq val (distof val)) ( ) (set (read key) val) (progn (alert "Nécessite un nombre valide") (mode_tile key 2) ) ) ) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") width [surligneur]80.[/surligneur] height [surligneur]50.[/surligneur] depth [surligneur]20.[/surligneur] ) (write-line "devbox : dialog { label = \"DevBox\"; : edit_box { label = \"Largeur : \"; key = \"width\"; width = 8; fixed_width = true; allow_accept = true; } : edit_box { label = \"Hauteur : \"; key = \"height\"; width = 8; fixed_width = true; allow_accept = true; } : edit_box { label = \"Profondeur :\"; key = \"depth\"; width = 8; fixed_width = true; allow_accept = true; } spacer; ok_cancel; }" file ) (close file) (if (and ( (new_dialog "devbox" dcl_id) ) (progn (foreach k '("width" "height" "depth") (set_tile k (rtos (eval (read k)))) (action_tile k "(setValue $key $value)") ) (setq status (start_dialog)) (unload_dialog dcl_id) (vl-file-delete tmp) (if (and (= status 1) (setq pt (getpoint "\nSpécifiez le point d'insertion: ")) ) (progn (setq pt (trans pt 1 0) pt (list (car pt) (cadr pt)) height (- height 1.5) width (- width 1.5) depth (- depth 2.) ) (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 12) '(70 . 1) (cons 10 pt) (cons 10 (setq pt (list (car pt) (- (cadr pt) depth)))) (cons 10 (setq pt (list (+ (car pt) width) (cadr pt)))) (cons 10 (setq pt (list (car pt) (+ (cadr pt) depth)))) (cons 10 (setq pt (list (+ (car pt) depth) (cadr pt)))) (cons 10 (setq pt (list (car pt) (+ (cadr pt) height)))) (cons 10 (setq pt (list (- (car pt) depth) (cadr pt)))) (cons 10 (setq pt (list (car pt) (+ (cadr pt) depth)))) (cons 10 (setq pt (list (- (car pt) width) (cadr pt)))) (cons 10 (setq pt (list (car pt) (- (cadr pt) depth)))) (cons 10 (setq pt (list (- (car pt) depth) (cadr pt)))) (cons 10 (setq pt (list (car pt) (- (cadr pt) height)))) ) ) ) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité Paniro Posté(e) le 14 juillet 2011 Posté(e) le 14 juillet 2011 Wow, merci beaucoup gile, ça me donne une super base :D Je ne connais pas le LISP, mais je pratique le PHP et avec le lien que tu m'as donné, ça devrait aller. Merci encore pour le coup de main et bonne journée.
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