Aller au contenu

Commande REPERE améliorée


didier

Messages recommandés

Bonjour,

 

au début de CadXp, j'avais diffusé une routine

je me souviens avoir eu du mal à expliquer son utilité.

 

il s'agit de garder sa hauteur et son centrage de zoom

à la suite d'un changement de scu

 

Si un nouveau scu est redéfini et qu'on lance la commande REPERE

( UCSFOLLOW à 0)

le résultat est qu'on a perdu le point de vue à cause du zoom étendu

cette routine à 20 centimes d'euro revoit le problème

 

à utiliser dans un fichier assez étendu en superficie des entités

 

faire un zoom serré

définir un nouveau SCU

lancer RP2

 

merci de me dire si ça vaut le coup,

ou si je garde pour moi mes pseudos améliorations

vous comprenez que j'ai besoin de reconnaissance,

mon chien est parti, mon psy s'est pendu, et je perds mes dents...

ah trois fois zut, j'ai encore omis l'italique

 

le tout, amicalement

 

(defun c:rp2 ()

(setvar "cmdecho" 0)

(setq h (getvar "viewsize"))

(setq ce (trans (getvar "viewctr") 1 0))

(command "repere" "")

(command "_zoom" "_c" (trans ce 0 1) h)

(princ)

)

 

[Edité le 9/7/2008 par didier]

Lien vers le commentaire
Partager sur d’autres sites

coucou,

 

sur un fichier assez étendu

pas besoin de travailler en 3D pour s'y retrouver

la commande REPERE d'AutoCad

nous fait perdre le point de vue initial

et c'est pas cool de se recentrer sur un point précis.

 

amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

Des que j'ai l'occasion d'essayer je penserais à toi!!

 

A mon avis c'est très utile.............

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Lien vers le commentaire
Partager sur d’autres sites

  • 5 semaines après...

Bjr à tous,

Je reviens un peu sur mon commentaire précédent et fait donc machine arrière :casstet:

Je prends régulièrement RP2 "en défaut", peut être ai-je mal assimiler son fonctionnement (!?)

Voilà mon problème, il m'arrive après avoir lancer RP2 de ne plus rien voir à l'écran ... un zoom dynamique me permet alors de voir que si la hauteur et le facteur de zoom sont correctes,

à priori, le zoom ne se fait pas par rapport au nouveau SCU ou en tous cas pas centré sur l'origine de celui-çi !

Ca m'étonne d'autant plus que celà ne se produit pas systématiquement ...

 

Voilà, une révison en perspective peut être

 

 

Je travaille en double écrans ... il m'est avis que c'est le pourquoi du comment !!! Désolé :(

Attends tout de même un avis autorisé, merçi

Lien vers le commentaire
Partager sur d’autres sites

Hello,

 

pourquoi parles-tu de zoom sur l'origine du SCU ?

 

il n'en n'a jamais été question.

 

le principe de RP2 c'est comme la commande REPERE (_plan)

c'est à dire, mettre l'Axe des X parallèle à l'écran

mais, à l'opposé de REPERE

qui fait un zoom étendu

et donc te fais perdre la zone de travail précédente

RP2 mémorise les entités centrées à l'écran

et fais aussi un REPERE mais en recentrant

à la suite du zoom étendu.

 

je m'en sert plusieurs fois par jour,

et je félicite à chaque fois

celui qui a écrit ces trois lignes de Lisp (hihihi)

 

amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

Salut , la remarque de thry0 est justifié , c'est un problème que l'on rencontre en utilisation 3D ,le même que j'ai eu avec PDVZ. Selon l' orientation 3d le changement de scu décale la profondeur du centre de la vue ce qui fait que lorsqu'on rebascule la vue, l'objet se retrouve en dehors de la zone écran.

Lien vers le commentaire
Partager sur d’autres sites

hello,

 

je viens effectivement de constater des dysfonctionnements

dans certains cas de rotation de SCU.

 

je n'ai pas d'explication à fournir, et encore moins de solutions

vous serez les premiers avertis, le cas échéant.

 

je me rassure, en constatant, le fonctionnement attendu

dans la majorité des cas,

mais ce n'est pas suffisant, je vous l'accorde

 

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

 

P'tit sujet sympathique...j'avais fait un lisp, il y a quelques temps "Il ne correspond pas exactement au sujet mais assez proche me semble t il..."

 

 ;PROGRAMME POUR CHANGER DE REPERE ET DE VUE
;Fait par l.barraud le 28 juin 2006
;*********************************************

;création de la commande raccourci au clavier
(defun c:repscu ()

;cliquez le premier point
(setq P1 (getpoint "\ncliquer le point premier point du scu: "))

;cliquez le deuxieme point
(setq P2 (getpoint "\ncliquer le point deuxieme point du scu: "))

;création de la ligne de repere
(command "_line" P1 P2 "" )
(command "scu" "ob" (entlast))
(command "repere" "c")
(command "zoom" "o" (entlast) "")
(command "effacer" (entlast) "")
);fin du dedun c:repscu

 

Bon utilisation à tous

 

@plus

 

LB

Lien vers le commentaire
Partager sur d’autres sites

Je ne sais pas si l'effet escompté sera au rendez-vous, mais pour l'utilisation en 3D, peut être quand utilisant la variable TARGET (point cible de la caméra) cela corrigerait le problème

 

Essayez en remplaçant VIEWCTR par TARGET dans le lisp de didier pour voir...

 

Petits détails: Déclarer les variable en locale: h et ce, repere = _.plan en international.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bon les gars , je crois que cette fois-ci le lisp est polyvalent 2D 3D.

Je me suis inspiré de tout le monde , c'est du vrai collectif.

par rapport à REPSCU de lovecraft , j'ai remplacé la ligne par un cercle

car on peut utiliser les options de la cde scu (je n'ai pas tout testé) et je

n'ai donc pas forcément 2 points pour la ligne.

 

;;usegomme le 11-08-2008
;;le while sur la cde SCU permet d' utiliser les options
;;de cette dernière.
(defun c:rp (/ ce h )
(setvar "cmdecho" 1)
(setq h (getvar "viewsize"))
(command "_ucs" )
(while (not (zerop (getvar "cmdactive")))(command pause))
(setq ce (getvar "viewctr") )
(command "_circle" "_none" ce (* h 0.5))
(command "_plan" "_c")
(command "_zoom" "_o" (entlast) "")
(command "_erase" (entlast) "")
(setq ce (getvar "viewctr") )
(command "_zoom" "_c" ce h)
) 

Lien vers le commentaire
Partager sur d’autres sites

Bjr à tous,

 

Désolé de passer pour le rabas-joie de service mais toujours pas concluant pour moi (!)

Le Lisp est pris en défaut systématiquement lorsque l'on fait appel à un SCU

qui n'est pas visible sur le zoom "initial" (lorsqu'on lance RP), soit le point de vue est bon mais l'origine de celui ci n'est pas au centre de l'écran, soit carrément rien à l'écran et obligation, au mieux de faire un zoom dynamique ou bien un zoom étendu pour rattrapper le coup ... enfin le zoom désiré. Test effectué sur une 3D constituée d'un cylindre et d'un cube donc pas très compliquée à gérer.

Lien vers le commentaire
Partager sur d’autres sites

Désolé de passer pour le rabas-joie

Non tu ne passes pas pour , tu es un rabas-joie , mais bon

pour cette fois tu es pardonné , car c'est pour la bonne cause.

Bon, j'ai amélioré le fonctionnement ,mais ce ne sera pas encore

parfait .

PS :

d'un cylindre et d'un cube donc pas très compliquée à gérer

Cela n' entre pas en ligne de compte pour le lisp.

 

;;usegomme le 12-08-2008 
;; commande repère améliorée
;;le while sur la cde SCU permet d' utiliser les options
;;de cette dernière.
(defun c:rp (/ ce h )
(setvar "cmdecho" 1)
(setq ce '(0.0 0.0 0.0))
(command "_ucs" )
(while (not (zerop (getvar "cmdactive")))(command pause))
(setq h (getvar "viewsize"))
(if (equal ce (getvar "ucsorg"))
(progn
(setq ce (getvar "viewctr") )
(command "_circle" "_none" ce (* h 0.5))
(command "_plan" "_c")
(command "_zoom" "_o" (entlast) "")
(command "_erase" (entlast) "")
(setq ce (getvar "viewctr") )
)
(command "_plan" "_c")
) 
(command "_zoom" "_c" ce h)
(princ)
) 

Lien vers le commentaire
Partager sur d’autres sites

Oui je me doute, je voulais simplement "situé" le plan test :

j'avais affecté un SCU différent pour chaque entité, le cylindre et le cube

placés à 90° l'un par rapport à l'autre et décalé en profondeur !

Je vais testé la nouvelle mouture :)

 

Lien vers le commentaire
Partager sur d’autres sites

Merci. J'ai qu'en même rajouté une correction pour un problème peu fréquent mais..

 

;;usegomme le 12-08-2008 
;; commande repère améliorée
;;le while sur la cde SCU permet d' utiliser les options
;;de cette dernière.
(defun c:rp (/ ce h xdir ydir)
(setvar "cmdecho" 1)
(setq ce '(0.0 0.0 0.0))
(setq xdir '(1.0 0.0 0.0))
(setq ydir '(0.0 1.0 0.0))
(command "_ucs" )
(while (not (zerop (getvar "cmdactive")))(command pause))
(setq h (getvar "viewsize"))
(if (equal ce (getvar "ucsorg"))
(progn
(if (or (not (equal xdir (getvar "ucsxdir")))
(not (equal ydir (getvar "ucsydir"))))
(command "_ucs" "")
)
(setq ce (getvar "viewctr") )
(command "_circle" "_none" ce (* h 0.5))
(command "_plan" "_c")
(command "_zoom" "_o" (entlast) "")
(command "_erase" (entlast) "")
(setq ce (getvar "viewctr") )
)
(command "_plan" "_c")
) 
(command "_zoom" "_c" ce h)
(princ)
) 

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é