Aller au contenu

Création automatique de fenêtres de présentation pour phasage


Zaher_chn

Messages recommandés

Bonjour,

Je vous sollicite aujourd'hui car j'ai besoin d'une commande capable de dupliquer automatiquement les fenêtres de présentation suivant la présentation en cours, tout gardant le bon décalage d'une phase à l'autre.

Actuellement, je prépare d'abord ma présentation, ensuite je la duplique et enfin d'utilise la commande "-pan" pour effectuer le décalage suivant la vue que je veux.

Mais lorsqu'on a 20 présentations ça devient très long, d'où la recherche d'une commande rapide.

Je vous remercie d'avance pour votre attention.

Zaher 🙂

Lien vers le commentaire
Partager sur d’autres sites

le pb dans ton truc, c'est que ton pan  change à chaque dessin... et puis dans quel sens?

mais ça me rappelle un truc que j'utilise pour plomber les étages. J'ai l'habitude d'aligner mes dessin à une cote fixe et j'ai une ft pour recopier l'objet sélectionné (mes trémies ou mes chutes) vers les étages en faisant une copie X mètres plus haut puis déplacer la vue à l'étage

Quand je fait mes présentations, je me sert de ça pour placer direct l'étage dans la vue (je lance ma fonction puis valide 2 fois car pas d'objet sélec)

Bref, j'ai 6 fonction, 

5 qui définit le pas vertical entre étage (entre phase pour toi)
55 qui définit le pas horizontal (les 2 peuvent être différents)

puis 4,8,6,2 qui recopie, déplace suivant les direction des flèche du clavier

ya des fonctions annexes pour rappeler des vues pour les autres touche du pavé vue à créer suivant le patern vue0 vue1 ...

en espérant qua ça te soit utile même si il te faudra passer par chaque présentation (mais c'est vite fait et toujours bien callé)

;| enchaine une copie et un pan auteur joch04
5 fonctions déffinies
 2 4 8 6 copie la sélection dans la direction quardinale désignée
 5 invite à définir un pas hertical par défaut le pas horizontal est le même
 55 permet de définir un pas horizontal diférent
 si rien n'est selectionné, pan seul (valider 2fois)
5 autres fonctions pour la 3d,
 0 1 3 7 9 Qui restaurent des vues autocad (qu'il faut avoir créées) mais quand on fait de la 3d ça vaut le coup
|;


;;;fonction de changement de pas de déplacement horizontal
(defun c:5 (/ pas test)

  (setq test 0)
  (setq dir 0)
  (princ "\nPas du décalage vertical enregistré: ")
  (princ (getvar "USERR1"))
  
  (or (setq pas (getreal "\nChanger cette valeur ou entrée "))
      (progn
	(setq pas (getvar "USERR1"))
	(setq test 1)
	(princ "\n pas de changement : ")
      )
  )
  (if (= test 0)
    (setvar "USERR1" pas)
  )
  (princ "\n nouveau pas de décalage : ")
  (princ (getvar "USERR1"))
  
  (if (= 0.0 (getvar "USERR2"))
    (setvar "USERR2" pas)
)
  (princ "\nPas du décalage horizontal enregistré: ")
  (princ (getvar "USERR2"))
  (print "55 pour enregistrer un pas horizontal diférent")
  
  (princ)
)

;;;fonction de changement de pas de déplacement horizontal
(defun c:55 (/ pas test)

  (setq test 0)
  (setq dir 0)
  (princ "\nPas du décalage horizontal enregistré: ")
  (princ (getvar "USERR2"))

  (or (setq pas (getreal "\nChanger cette valeur ou entrée "))
      (progn
	(setq pas (getvar "USERR2"))
	(setq test 1)
	(princ "\n pas de changement : ")
      )
  )
  (if (= test 0)
    (setvar "USERR2" pas)
  )
  (princ "\n nouveau pas horizontal : ")
  (princ (getvar "USERR2"))
  (princ)
)



;;;fonctions de Copie PAN

(defun c:2 (/ tmp P1 P0)
  (setq tmp (getvar "USERR1"))
  (princ tmp)
  (setq *derent (pw_real_entlast))
  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 5 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list 0 (* -1 (getvar "USERR1"))))
      (setq sel (ssget))

	  ;;;mise en mémoire du scu courant et passer scu g
		(if (not (tblsearch "ucs" "scu_init"))
			(progn
				(command "_ucs" "_save" "scu_init")
				(command "_ucs" "_world")
			)
		)
  
  
	  (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
	  
;;;restaure et efface le scu_ini	  
	  (command "_ucs" "_restore" "scu_init")
      (command "_ucs" "_delete" "scu_init")
	  
	  
    )
  )
  (princ)
)

(defun c:4 (/ tmp P1 P0)
  (setq tmp (getvar "USERR2"))
  (princ tmp)
  (setq *derent (pw_real_entlast))
  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 55 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list (* -1 (getvar "USERR2")) 0))
      (setq sel (ssget))
	  (setq P0 (trans P0 0 1))
	  (setq P1 (trans P1 0 1))
      (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
    )
  )
  (princ)
)

(defun c:8 (/ tmp P1 P0)
  (setq tmp (getvar "USERR1"))
  (princ tmp)
  (setq *derent (pw_real_entlast))
  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 5 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list 0 (getvar "USERR1")))
      (setq sel (ssget))
	  (setq P0 (trans P0 0 1))
	  (setq P1 (trans P1 0 1))
      (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
    )
  )
  (princ)
)

(defun c:6 (/ tmp P1 P0)
  (setq tmp (getvar "USERR2"))
  (princ tmp)
  (setq *derent (pw_real_entlast))
  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 55 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list (getvar "USERR2") 0))
      (setq sel (ssget))
	  (setq P0 (trans P0 0 1))
	  (setq P1 (trans P1 0 1))
      (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
    )
  )
  (princ)
)




;; fonction qui renvoie la dernière entité et une autre pour récupérer les derniers objets créer par 2 4 8 ou 6
;; voir ici pourquoi enlast ne suffit pas http://cadxp.com/topic/42928-reprendre-les-derniers-objets-copies/page__view__findpost__p__244244
;; merci GEGEMATIC Vincent et tous les autres


(defun pw_real_entlast ( / ent tmp ok eg tp)
 (setq ok T)
 (if (setq ent (entlast))
  (while (and (setq tmp (entnext ent)) ok)
   (setq eg (entget ent))
   (setq tp (cdr (assoc 0 eg)))
   (if (= "SEQEND" tp)
     (setq ok nil)
   )
   (setq ent tmp)
  )
 )
 ent
)

(defun der-ent-copie (/ ent sel)
  (setq ent (entnext *derent))
  (setq sel (ssadd))
  (while (not (null ent))
    (ssadd ent sel)
    (setq *derent ent)
    (setq ent (entnext *derent))
  )
  sel
)

;;; Vue prédéfinies depuis le pavé numérique (gile)
;;; daptation pitoyable de vues-pave de (gile)


(mapcar
  '(lambda (f v)
     (eval (list 'defun-q
		 f
		 nil
		 (list 'command "_.view" "_restore" v)
		 '(princ)
	   )
     )
   )
  '(c:0 c:1 c:3 c:7 c:9)
  '("vue0" "vue1" "vue3" "vue7"	"vue9")
)


;; fonctions 22 44 88 66
;; idem 2 4 8 6 mais en reprenant les derniers objets copié pour les placer sur un autre étage
;; faire par exemple 8 pour la 1ere puis 88 pour les autres étages


(defun c:22 (/ tmp P1 P0 ent sel)
  (setq tmp (getvar "USERR1"))
  (princ tmp)

  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 5 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list 0 (* -1 (getvar "USERR1"))))

      (setq sel (der-ent-copie))

	  (setq P0 (trans P0 0 1))
	  (setq P1 (trans P1 0 1))
      (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
    )
  )
  (princ)
)



(defun c:44 (/ tmp P1 P0)
  (setq tmp (getvar "USERR2"))
  (princ tmp)
  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 5 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list (* -1 (getvar "USERR2")) 0))
      (setq sel (der-ent-copie))
	  
	  (setq P0 (trans P0 0 1))
	  (setq P1 (trans P1 0 1))
      (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
    )
  )
  (princ)
)

(defun c:88 (/ tmp P1 P0)
  (setq tmp (getvar "USERR1"))
  (princ tmp)
  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 5 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list 0 (getvar "USERR1")))
      (setq sel (der-ent-copie))
	  
	  (setq P0 (trans P0 0 1))
	  (setq P1 (trans P1 0 1))
      (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
    )
  )
  (princ)
)

(defun c:66 (/ tmp P1 P0)
  (setq tmp (getvar "USERR2"))
  (princ tmp)
  (if (= 0.0 tmp)
    (princ
      "\nPour deffinir un décalage des déplacements tapper 5 puis entrée"
    )
    (progn
      (setq P0 (list 0 0))
      (setq P1 (list (getvar "USERR2") 0))
      (setq sel (der-ent-copie))
	  
	  (setq P0 (trans P0 0 1))
	  (setq P1 (trans P1 0 1))
      (command "_.copy" sel "" "_none" P0 P1)
      (command "-pan" P1 P0)
    )
  )
  (princ)
)

 

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @x_all,

Je te remercie pour cette réponse assez rapide, je ne suis pas sûr d'avoir bien compris, mais je vais essayer le programme.

L'idée c'est que je voudrais que le programme me demande de renseigner le décalage qu'il faut que ce soit horizontale et/ou vertical et puis il aura juste à se baser sur la dernière présentation pour faire le décalage.

Ex:

Etape 1: Dupliquer la présentation

Etape 2: Faire le décalage des vues

Etape 3: Dupliquer la dernière présentation et rebelotte.

Je ne sais pas si c'est assez clair.

 

Zaher 🙂

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

J'avais créé une Palette d'OUTILS compatible avec TOUTES les versions AutoCAD et AutoCAD LT pour réaliser des ENCARTAGES... voir la vidéo ci-dessous

    https://www.youtube.com/watch?v=jplxukLp_ms

Voir si ça peut convenir ? Il faudra juste les BLOCS des différents formats... BLOCS à mettre à la "sauce" de l'Entreprise...

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 @)

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité