Aller au contenu

"Zoom" "Objet" tout petit


Messages recommandés

Posté(e)

Bonjour,

Lorsque j'effectue la commande "zoom" "objet" :

Sur un dessin léger (10 objets à l'écran), cela zoome (objet) comme il faut.

Sur un autre dessin plus dense (corps de rue 1km), le zoom objet est tout petit (1/10 de l'écran)

Que dois je corriger ?

Merci

Patrice

Posté(e)

Bonjour @PATRICE69

Tel que c'est expliqué, j'ai essayé de reproduire le souci puisqu'il n'y a pas de DWG soumis pour tester sur le même fichier.
Il m'est impossible de reproduire ce qui est reproché, je suis allé jusqu'à des fichiers de plus de 500 000 entités.

Pistes de recherches :

  • L'entité cliquée fait-elle partie d'un bloc ?
  • L'entité cliquée fait-elle partie d'un groupe ?


 

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

Bonjour @PATRICE69

Comme d'habitude, il faut utiliser les essais/erreurs et revenir en arrière à chaque test pour être certain d'avoir trouvé le souci.

Certes, il y a des objets en type de continu, mais mêmes modifiés, pas de zoom objet.
Il y a aussi des objets dans des calques gelés assez loin du reste du dessin, mais même effacés, pas de zoom objet.
Il y a des objets Covadis (proxy), mais même effacés, pas de zoom objet.

Le seul test qui rend le zoom objet fonctionnel est de se dédouaner des grandes valeurs de coordonnées.
En déplaçant TOUT depuis le centre du dessin vers 1000,2000 (valeurs d'exemple), le zoom objet redevient fonctionnel.

Ce n'est pas la première fois que ces valeurs de coordonnées (Lambert sans doute) font cafouiller le logiciel qui n'en peut plus de travailler avec des valeurs numériques en millions.
Il arrive même que certaines commandes, prolonger, ajuster se mettent à cafouiller à cause de ces valeurs.

 

PS : vous avez vérifié @MamyTina votre réponse ?, car je n'ai pas remarqué que ça résolvait le problème évoqué.

 

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

Bonjour

@MamyTina, @PATRICE69

J'ai essayé, non cela ne fonctionne pas mieux
Il faut toujours tester avant de répondre quelque chose d'erroné sur un forum !
une fois que c'est écrit, des gens peuvent lire et dire que le forum est bidon, ce qui n'est pas le cas.

 

J'ai déplacé en 0,0, cela ne fonctionne pas mieux.

J'ai testé et le changement est radical
Il faut le faire en 0,0,0 du SCU Général, ce que je n'ai pas dit, pardon.
Merci de revenir confirmer si ça fonctionne.

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

Bonjour @PATRICE69,

 

Avec les grandes coordonnées, le zoom objet ne sait pas calculer correctement l'emprise. 

En partant de cette proposition de Gilles dans cette discussion https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/zoom-object-problem/td-p/5031146, on peut proposer ce lisp qui fonctionne quelque soit le SCU et les coordonnées.

; Code de gilles Chanteau proposé dans cette discussion
; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/zoom-object-problem/td-p/5031146
(defun gc:TMatrixFromTo	(from to)
  (append
    (mapcar
      (function
	(lambda	(v o)
	  (append (trans v from to T) (list o))
	)
      )
      '((1. 0. 0.) (0. 1. 0.) (0. 0. 1.))
      (trans '(0. 0. 0.) to from)
    )
    '((0. 0. 0. 1.))
  )
)

(defun zoomObjects (ss / i obj minPt maxPt ll ur)
  (vl-load-com)
  (or *acad* (setq *acad* (vlax-get-acad-object)))
  (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
  (setq  wcs2ucs (vlax-tmatrix (gc:TMatrixFromTo 0 1))
         ucs2wcs (vlax-tmatrix (gc:TMatrixFromTo 1 0))
         )
  (repeat (setq i (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
    (vla-TransformBy obj ucs2wcs)
    (vla-GetBoundingBox
      obj
      'minPt
      'maxpt
    )
    (vla-TransformBy obj wcs2ucs)
    (setq ll (cons (vlax-safearray->list minPt) ll)
          ur (cons (vlax-safearray->list maxPt) ur)
    )
  )
  (vla-ZoomWindow
    (vlax-get-acad-object)
    (vlax-3d-point (trans (apply 'mapcar (cons 'min ll)) 1 0))
    (vlax-3d-point (trans (apply 'mapcar (cons 'max ur)) 1 0))
  )
)

(defun C:ZOO ()
  (zoomObjects (ssget))
)

J'ai nommé la commande ZOO car la commande ZO existe déjà dans Covadis mais elle ne permet que de sélectionner un seul objet.

Sans Covadis elle peut être renommée à volonté.

 

Olivier

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é