azop Posté(e) le 29 mars 2013 Posté(e) le 29 mars 2013 bonsoir, je vous ais mis un partie du programme que j'essais de terminer, la partie qui ne marche pas, c'est uniquement lors de l'utilisation de 'Target, si vous avez une idée de mon erreur ? (vl-load-com) ;;; Début Defun c:Présentation (defun c:présentation (/ sel lsel i ent att listatt lst gabarit fichier ltab htab lay liste_bloc bloc_name n0 n lesfenetres ii dir) (alert "Selectionner uniquement les bloc sig") (setq ltab (getreal "Largeur tablette [mm] :") htab (getreal "Hauteur tablette [mm] :") ) (if (= "local_sig " (substr (cdr (assoc 2 (setq n0 (tblnext "block" T)))) 1 10)) (setq liste_bloc (list (cons (cdr (assoc 2 n0)) (cdr (assoc -2 n0))))) ) ;;; debut while (while (setq n (tblnext "block" nil)) ;;;debut if (if (= "local_sig " (substr (cdr (assoc 2 n)) 1 10)) (setq liste_bloc (cons (cons (cdr (assoc 2 n)) (cdr (assoc -2 n))) liste_bloc)) )) ;;; fin while (setq sel (ssget) lsel (sslength sel) i 0 ) ;;;début while (while (< i lsel) (setq ent (ssname sel i) att (GetAttribs ent)) (setq bloc_name (cdr (assoc 2 (entget ent)))) (setq ente (cdr (assoc bloc_name liste_bloc))) ; Effacer les présentations (vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) (or (eq (vla-get-name lay) "Model") (vla-delete lay))) (command "presentation" "n" (cdr (assoc "NOM" att))) (command "presentation" "e" (cdr (assoc "NOM" att))) ;;;debut suppression des fenetres (setq lesfenetres (vla-get-paperspace (vla-get-activedocument (vlax-get-acad-object)))) (vla-delete (vla-item lesfenetres "0")) ;;;fin suppression des fenetres (command "-fenetres" '(0.0 0.0 0.0) (list ltab htab 0.0)) (setq entf (entlast)) (command "_.MSPACE") (setq centre-fenetre (getvar "VIEWCTR")) (command "_.PSPACE") (setq entfe (vlax-ename->vla-object entf)) ;;; Gis : routine renvoyant l'angle, le point cible.. (setq regl_fen (Gis ltab htab ente) Target (vlax-get entfe 'Target)) (vlax-put entfe 'TwistAngle (nth 0 regl_fen)) (setq centrebloc (mapcar '+ (nth 1 regl_fen) (cdr (assoc 10 (entget ent))))) (setq centrebloc (cons (car centrebloc) (cons (car (cdr centrebloc)) '(0.0))) ) (vlax-put entfe 'Target centrebloc) (vlax-put entfe 'CustomScale (* 1 (/ ltab (nth 3 regl_fen)))) (command "presentation" "ef" "présentation1") (setq fichier (strcat (getvar "DWGPREFIX") (cdr (assoc "NOM" att)) ".dwg")) (command "_SAVEAS" "2010" fichier) ;;;fin while (setq lst (cons listatt lst) i (1+ i)) ) ) ;;; Fin Defun c:psig
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