chocolatgc Posté(e) le 17 mars 2009 Posté(e) le 17 mars 2009 Bonjour je dois mettre en place un outil SIMPLE de DAO afin de construire un plan. Cet outil devra permettre de positionner sur un plan, des blocs rapidement issues d'une bibliothèque. Que me proposez-vous ? Merci
Arcasdk Posté(e) le 17 mars 2009 Posté(e) le 17 mars 2009 Moi j'avais fais ce petit programme ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Permet de créer une planche contenant tous les fichiers présent dans ;; ;; dans une destination donnée ;; ;; ;; ;; ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:scr (/ fic lst n x y w chemin pos name alpha dcx dcy dct nbc); Pour lancer le programme, Charger le .lsp, et taper scr dans la ligne de commande d'autocad (setq x 0 y 0) ;;Variables ci dessous à modifier si nécessaire (setq dcx 200 dcy 200 dct 10 nbc 11) ;;dcx = Taille des cases en x ;;dcy = Taille des cases en y ;;dct = Taille de la case contenant le texte en y ;;nbc = Nombre de colonne (vl-load-com) ;;Partie du programme servant à selectionner le dossier contenant tous les fichiers *.dwg (if (setq fic (getfiled "Sélectionnez un fichier cible: " "" "dwg" 16)) (progn (setq lst (acad_strlsort (vl-directory-files (vl-filename-directory fic) "*.dwg" 1)) n 0) ;;Compte le nombre de bloc (setq w 0) (while (nth w lst) (setq w (+ w 1))) (princ "\n") (princ w) (princ "\n") ;;Compte le nombre de bloc (FIN) (while (nth n lst) (setq chemin (strcat (vl-filename-directory fic) "\\" (nth n lst)) pos (list x y) ;;Recherche du nom de fichier et insertion du bloc size (strlen (nth n lst)) alpha (- size 4) name (substr (nth n lst) 1 alpha )) (setvar "CLAYER" "0") (command "_insert" chemin pos "1" "" "" "" "" "" "" "" "" "" "" "" "" "" "") ;;Positionnnement et Ecriture du texte (setq y (+ y (+ (/ dcy 2) (/ dct 2))) pos (list x y 0.0)) (setvar "CLAYER" "TEXTE") (command "texte" "j" "MC" pos "4" "" name "");; 4 est la taille de la police du nom de bloc (setq y (- y (+ (/ dcy 2) (/ dct 2))) pos (list x y 0.0)) ;;Suite du programme (Modification des positions et bouclage) (setq x (+ x dcx)) (setq n (+ n 1)) (if (= x (* nbc dcx)) (progn (setq y (+ y (+ dcy dct)) x 0 pos (list x y 0.0)) ) ) ) ;;Tracer les droites horizontales (setq n 0 x 0 y (- 0 (/ dcy 2)) pos (list x y 0.0)) (setvar "CLAYER" "CACHE") (command "droite" "h" pos "") (while (/= n (+ nbc 1)) (setq y (+ y dcy) pos (list x y 0.0)) (command "droite" "h" pos "") (setq y (+ y dct) pos (list x y 0.0)) (command "droite" "h" pos "") (setq n (+ n 1)) ) ;;Tracer les droites verticales (setq n 0 x (- 0 (/ dcx 2)) y 0 pos (list x y 0.0)) (while (/= n (+ nbc 1)) (command "droite" "v" pos "") (setq x (+ x dcx) pos (list x y 0.0) n (+ n 1)) ) ) ) ) [Edité le 17/3/2009 par Arcasdk] <IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG> <a href=www.formu-lan.net>www.FormuLan.net</a>
Charon Posté(e) le 17 mars 2009 Posté(e) le 17 mars 2009 Salut, Ben déjà ça dépend des plans de quoi et pour quel usage.... "Charon, nocher des enfers, faisait traverser aux morts les fleuves des enfers, le Styx et l'Acheron, moyennant une obole"
chocolatgc Posté(e) le 18 mars 2009 Auteur Posté(e) le 18 mars 2009 C'est juste afin de poser des détails 2D les uns à coté des autres et ce sur la base de bibliothèques de blocs 2D, à l'image d'autocad 2D.
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