Aller au contenu

Zonage dynamique


Messages recommandés

Bonjour,

 

Je dois contrôler visuellement des kms de réseaux par analyse d'un filaire de canalisation (ou de rue). Le problème, c'est que comme tout est ramifié, au bout d'un moment à force de zoom (+ pan) avec la molette de la souris, je ne sais plus où je suis passé et ce que j'ai contrôlé.

J'avais dans l'idée de développer un outil pour "zoner" c'est à dire dessiner une hachure ou autre objet sur chaque zone contrôlée.

Le dessin devrait se faire sur la zone centrale visible et cela seulement lorsque mon zoom est en dessous d'une certaine taille (ej dois être assez près pour considérer que c'est contrôlé).

Je pensais "coller" un réacteur sur la modification des variables VIEWCTR et VIEWSIZE et dessiner cette zone un peu comme un stabilo qui suivrait le centre de ma vue pendant que je me déplace.

 

Est-ce que c'est jouable? Il faudrait que le zonage se dessine en arrière plan (ou transparent). Je ne sais pas ce que ça pourrait donner en terme de temps de réponse pendant le pan. Je ne suis même pas sûr que l'on puisse dessiner un objet pendant que l'on zoom à la molette a moins de passer par un graphique transient.

 

Si quelqu'un a déjà joué avec ça et me dire si c'est réaliste, je suis preneur de toute info.

 

Merci

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je me suis retrouvé dans même panade, et je n'avais pas le temps de programmer quoique ce soit.

du coup je faisait un rectangle hachuré que j'ajoutais a un calque caché.

je le réactivais des que j’étais perdu.

donc ta 1ere idée est la bonne, mais pas besoin de le voir tout le temps...

 

suis pas sure de t'avoir beaucoup aidé...

Lien vers le commentaire
Partager sur d’autres sites

Salut Olivier,

Pour ce genre de problème, balayage visuel d'un zone,

j'utilise plutôt les outils de zoom de PowerClic Mon lien

ci dessous le code de création d'une succession de zoom pour parcourir un rectangle.

Dans ton cas, si il faut parcourir un linéaire, j'utiliserai la commande "mesure" sur les linéaire, et je créerai des points dans un calque "$zoom" espacés de la taille du zoom voulu

une fois ces points créés, j'utilise mon plug-in "parcourir" qui crée la liste des points

j'ai 2 icones de menu, 1 avec le zoom arrière, l'autre avec le zoom avant

je parcours mon dessin en avançant et en reculant, comme ça je n'oublie rien.

J'utilise toujours ce sytème quand je dois vérifier des éléments diffus sur un plan

(par exemple, contrôler que tous les PI ont une conduite en 100: sélection et parcours de tous les bloc PI)

 

je te donne ci dessous le contenu très simple du menu

**TB_ZOOM_PARCOURS_ENTITEES
              [_Toolbar("Zoom Parcours entitees", _Top, _Show, 2, 0, 1)]
ID_zar         [_Button("Zar", "zar16", "zar24")]'zoom c !(pw_nthc (setq zt-i (- zt-i 1)) zt-l-pt-zoom) ;
ID_zav         [_Button("Zav", "zav16", "zav24")]'zoom c !(pw_nthc (setq zt-i (+ zt-i 1)) zt-l-pt-zoom) ;

 

 

 

 

 

 

 

;;*******************************************************************
;;§/plugg/ prépare une série de zoom sur un zone rectangulaire/none
;;la taille de la fenetre est demandée après

(defun c:zoomzone ( / pz lval blsel1 blsel  zch l zt-lblsel 4p 4pf pfb pzb pzh xdec ydec nbcol nbrang derent xcadre ycadre selpt)
 (prompt "\nCadrez la zone à couvrir:")
 (setq 4p (pw_saisie_rectang))
 (setq angltrav (angle (car 4p) (cadr 4p)))
 (pw_setvar1 "snapang" angltrav)
 (setq pzb (car 4p))
 (setq pzh (caddr 4p))
 
 (prompt "\nCadrez la taille de la fenetre du zoom:")
 ;;cadre
 (setq xcadre (distance (cadr 4p) pzb))
 (setq ycadre (distance (car 4p) (last 4p)))

 ;;fenetre zoom
 (setq 4pf (pw_saisie_rectang))
 (setq pfb (car 4pf))
 (setq pfh (caddr 4pf))
 (setq xdec (* 0.8 (distance (cadr 4pf) pfb)))
 (setq ydec (* 0.8 (distance (car 4pf) (last 4pf))));
 
 ;tableau
 (setq nbcol (atoi (rtos (/ xcadre xdec) 2 0)))
 (setq nbrang (atoi (rtos (/ ycadre ydec) 2 0)))

 ;;tableau
 (setq derent (pw_real_entlast))
 (command "_point" (pw_prp pzb (/ xdec 2.0) (/ ydec 2.0)))
 (command "_array" (eval (entlast)) "")
 (command "_r" nbrang nbcol ydec xdec)
 (setq selpt (pw_selafter derent))
 (pw_sssetfirst selpt selpt)
 (command "_zoom" "_w" pfb pfh)

;;la suite correspond à cross_entity_zoom !
;;ecartes les blocs definis dans l'espace papier
(if (setq blsel1 (ssget "_p" (list '(-4 . "<NOT")'(67 . 1)'(-4 . "NOT>") )))
 (setq zt-lblsel (pw_listsel blsel1))
)
(setq zt-i 0)
;;
(setq zt-l-pt-zoom
(mapcar '(lambda (x)
           (PW_scg2scu (cdr (assoc 10 (entget x))))
	  )
	  zt-lblsel
       )
)
(command "_erase" "_p" "")
(foreach pz  zt-l-pt-zoom
 (command "_zoom" "_c" pz "")
 (getstring "\nEntrée pour suivant ou esc pour fin")
 (setq zt-i (+ zt-i 1))
)
(pw_setvar2 "snapang" )

)  

a+

gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é