Saltz Posté(e) le 21 septembre 2011 Posté(e) le 21 septembre 2011 Bonjour , j'aie une question un peu spéciale sur Autocad 2005 .(Je viens juste de m'y remettre apres 7 ans mis de coté) J'aie une courbe de 1 à 1200 sur l'axe des x et 100 à 3000 sur l'axe de y .Quand je fait un zoom étendu je vois toute ma courbe .L'axe y est bien encadre .Par contre l'axe x lui n'encadre pas les valeurs extremes (1 à 1200) correctement .J'aie une impression d'avoir une courbe compassée ; plein d'espace libre à gauche et plein d'espace libre à droite Ce que je voudrais c'est avoir une courbe qui occupe bien tout l'espace de l'écran .Pour cela il faut que j'étire la courbe sur l'axe des x qui encadre bien les valeurs 1 à 1200 .(Voir dans la barre d'état des coordonnés négatives du genre - 1438 ,2552 lorsque je bouge la souris n'est pas bon ; mes x seront toujours positifs) Donc il faut que j'étire ma courbe mais sans perdre mes coordonnées . Merci !
lili2006 Posté(e) le 21 septembre 2011 Posté(e) le 21 septembre 2011 Bonsoir à toutes et tous, Heu, perso, j'ai rien compris !:o Une p'tite image, un extrait de fichier ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Titi95 Posté(e) le 21 septembre 2011 Posté(e) le 21 septembre 2011 je ne comprend pas pourquoi tu veux occuper tout l'écran avec ton dessin (ta courbe)?!! :blink:surtout que ca change en fonction de :-ton type d'écran 4/3 16/9-Ta résolution-ou encore d'autocad ouvert en fenêtre non étendu dans windows... Occupe toi uniquement de ta fenêtre dans ta présentation (l'onglet en bas)Insert ton cadre et cartouche au bon format (A3, A2 etc...) et tu ouvres une fenêtre avec ton objet a l'échelle désirée Si j'ai répondu à coté de la plaque dsl j'ai donc rien compris (rires forts) :D 7 ans de coupure !Bonne reprise dans le monde de la DAO :P Mes anciennes réalisations Autocad
didier Posté(e) le 22 septembre 2011 Posté(e) le 22 septembre 2011 coucou c'est quoi une courbe "compassée" ? amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Saltz Posté(e) le 22 septembre 2011 Auteur Posté(e) le 22 septembre 2011 Voici la courbe en pièce jointe .Elle represente le CAC40 que j'aie dessiné à l'aide d'une routine VBA .Puis j'aie divisé les coordonnées en 2 .Le problème est que je trouve la courbe illisible .L'espace objet a plein de place libre ou rien n'est dessiné .Surtout à droite et à gauche de la courbe .Meme en zoomant , c'est toujours bof .C'est un peu comme un ressort comprimé sur l'axe des x, il faudrait qu'il reprenne sa forme normal sans faire bouger ses cooordonnés . NB : j'aie fait une coupure avec Autocad mais pas avec la DAO , je bosse sous MIAO
Saltz Posté(e) le 22 septembre 2011 Auteur Posté(e) le 22 septembre 2011 Oups ! Mon fichier ne passait pas il me semble .IL fallait que je le passe au format .zip car le dwg n'est pas accepté .TEST.dwg.zip
Titi95 Posté(e) le 22 septembre 2011 Posté(e) le 22 septembre 2011 ok je comprend mieux ton besoin maintenant ;) ce que tu as besoin c'est une fonction échelle que à l'horizontal sans que la verticale ne bougemais je ne suis pas sur que Autocad le face... :unsure: je passe mon tour :mellow: Mes anciennes réalisations Autocad
PHILPHIL Posté(e) le 22 septembre 2011 Posté(e) le 22 septembre 2011 hello avec ta courbe tu en fais un bloc ce bloc est a l'echelle 1donc x=1, y=1, z=1 tu peux lui donner des echelles différentes pour X, Y, et Z dans ton cas tu joues avec l'echelle X , et une fois que tu as la bonne "largeur" pour ta coubre tu décomposes le bloc et refait un "pljoin" pour recréer une seule coubre c'est tout a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
didier Posté(e) le 23 septembre 2011 Posté(e) le 23 septembre 2011 coucou pardon de revenir à la chargec'est quoi une courbe "compassée" ? je pense que la solution du bloc est efficace a posterioriquand la courbe est à l'écran c'est faisable. mais sinon il est possible dans ta routine d'appliquer un facteur multiplicateur aux coordonnées de l'axe des Xet là je pense que ce sera plus "propre" amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Saltz Posté(e) le 23 septembre 2011 Auteur Posté(e) le 23 septembre 2011 Didier "Compassée" est inexact .Voici d'autres terme une courbe compactée , comprimée (comme un ressort ou un accordéon) http://fr.wiktionary.org/wiki/compasser (compassée désigne plutot une attitude humaine vulgairement une personne constipée <img src='http://cadxp.com/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':(rires forts):' /> ) Mais revenons à nos moutons noirs . j'aie réussi à creer mon bloc mais je ne sais pas comment modifierl'échelle sur mon axe X seulement ...Quelle est le nom de la commande ? (cela m'interresse meme si je pense que hélas cela va modifier la valeur de mes coordonnées ) Si j'aie bonne mémoire le seule moyen de manipuler un objet sans lui faire perdre ses coordonnées c'est le SCU .Il me faudrait un SCU capable d'appliquer un facteur d'echelle uniquement sur l'axe de X .Ainsi ma courbe s'aggrandit sans toucher aux coordonnées (enfin je crois...) . Ce que je tente d'avoir c'est une sorte de fonction zoom .Les fonctions zoom existantes ne m'ont pas satifait .Je trouve la courbe toujours illisible .Il me faudrait une sorte de fonction zoom qui agrandit 2 fois plus dans le sens des x que dans le sens des y . Titi95 , tu as bien saisis le problème .ce que tu as besoin c'est une fonction échelle que à l'horizontal sans que la verticale ne bougemais je ne suis pas sur que Autocad le face... Peut-être que nous touchons une limite d'Autocad ?
Titi95 Posté(e) le 23 septembre 2011 Posté(e) le 23 septembre 2011 Saltzje crois que Philphil t'as donné une solution ...;) As tu essayé de créer un bloc avec ta courbe et de changer son échelle dans les abscisses (X)? Mes anciennes réalisations Autocad
(gile) Posté(e) le 23 septembre 2011 Posté(e) le 23 septembre 2011 Saltz, Les SCU dans AutoCAD sont toujours des repères orthonormés, on peut penser que c'est une "limite d'AutoCAD", personnellement, je pense que c'est beaucoup mieux comme ça. Certains utilisateurs ont du mal à maitriser les SCUs, je n'ose même pas imaginer ce que ça serait si on pouvait définir des repères non normés (avec des valeurs différentes suivant les axes) et/ou non orthogonaux. Les réponses à ta demande t'ont été données, tu peux modifier les échelles d'un bloc à l'insertion ou via la fenêtre de propriétés. Ceci dit, je pense comme Didier que si ta courbe est créée par une routine, il serait plus simple et plus propre de donner un facteur différent à tes coordonnées en X et Y. Dans tous les cas, les coordonnées seront modifiées, je ne vois pas en quoi cela peut poser un problème dans la mesure où tu sembles privilégier l'apparence de ta courbe. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Saltz Posté(e) le 23 septembre 2011 Auteur Posté(e) le 23 septembre 2011 J'aie bien créer un bloc mais je n'aie pas trouvé l'endroit pour jouer sur l'échelle des axes .J'aie retrouvé la commande xplode (de vieux souvenirs) mais pas son bouton sur la barre d'outils . Ou est la fenetre de propriétés ? Quelle ligne de commande ? Je ne me vois pas trop réinserer un bloc que je viens de creer c'est une étape de plus autant le manipuler directement ... Merci pour votre patience et votre réactivité
bonuscad Posté(e) le 23 septembre 2011 Posté(e) le 23 septembre 2011 Didier "Compassée" est inexact .Voici d'autres terme une courbe compactée , comprimée (comme un ressort ou un accordéon) http://fr.wiktionary.org/wiki/compasser (compassée désigne plutot une attitude humaine vulgairement une personne constipée <img src='http://cadxp.com/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':(rires forts):' /> ) Mais revenons à nos moutons noirs . j'aie réussi à creer mon bloc mais je ne sais pas comment modifierl'échelle sur mon axe X seulement ...Quelle est le nom de la commande ? (cela m'interresse meme si je pense que hélas cela va modifier la valeur de mes coordonnées ) Si j'aie bonne mémoire le seule moyen de manipuler un objet sans lui faire perdre ses coordonnées c'est le SCU .Il me faudrait un SCU capable d'appliquer un facteur d'echelle uniquement sur l'axe de X .Ainsi ma courbe s'aggrandit sans toucher aux coordonnées (enfin je crois...) . Ce que je tente d'avoir c'est une sorte de fonction zoom .Les fonctions zoom existantes ne m'ont pas satifait .Je trouve la courbe toujours illisible .Il me faudrait une sorte de fonction zoom qui agrandit 2 fois plus dans le sens des x que dans le sens des y . Titi95 , tu as bien saisis le problème . Peut-être que nous touchons une limite d'Autocad ? Pour les SCU c'est effectivement une solution.Le problème est que cela permet SEULEMENT de compresser pour déformer l'échelle sans modifier les cordonnées.Or dans ton fichier de Test du voudrait l'inverse. Comme j'ai bien envie de voir la courbe du CAC40 faire un beau plongeon Cela reste possible mais il va falloir appliquer un facteur de 1000 au coordonnées X pour décompresser la courbe. Dans ton fichier de test utilise la commande CONVERT pour convertir ta polyligne2D en LWPolyligne. Copie-colle le code qui suit en ligne de commande (defun c:mille_x ( / ent dxf_ent typ_ent up_def pt_lst n new_lst) (while (not (setq ent (entsel "\nChoisir une polyligne2D: ")))) (setq typ_ent (cdr (assoc 0 (setq dxf_ent (entget (car ent))))) new_lst '()) (cond ((eq typ_ent "LWPOLYLINE") (setq up_def (vl-remove-if '(lambda (x) (or (= (car x) 10) (= (car x) 40) (= (car x) 41) (= (car x) 42))) dxf_ent)) (setq pt_lst (vl-remove-if-not '(lambda (x) (or (= (car x) 10) (= (car x) 40) (= (car x) 41) (= (car x) 42))) dxf_ent)) (while pt_lst (setq new_lst (append (mapcar '(lambda (x / y) (setq y (nth x pt_lst)) (if (zerop x) (list 10 (* (cadr y) 1000.0) (caddr y)) y)) '(0 1 2 3)) new_lst)) (setq pt_lst (cddddr pt_lst)) ) (setq up_def (subst (cons 90 (/ (length new_lst) 4)) (assoc 90 up_def) up_def)) (entmod (append (subst (cons 90 (/ (length new_lst) 4)) (assoc 90 up_def) up_def) new_lst)) ) (T (princ "\nN'est pas une polyligne 2D optimisée!") ) ) (princ) ) Utilise alors la commande MILLE_X au clavierFais un zoom étendu.Tu auras ta courbe décompressée en XPar la suite pour jouer avec les SCU pour compresser la courbe tu peux utiliser le code suivant: (defun c:compress_view ( / echll) (initget 8) (setq echll (getpoint "\nEchelle de déformation <1000,1>: ")) (if (eq echll ()) (setq echll '(1000 1))) (setvar "ucsfollow" 0) (command "_.ucs" "_world") (command "_.ucs" "_y" (angtos (atan (/ (sqrt (- (* (car echll) (car echll)) (* (cadr echll) (cadr echll)) ) ) (cadr echll) ) ) 0 4 ) ) (if (tblsearch "UCS" (strcat (itoa (fix (car echll))) "-" (itoa (fix (cadr echll))))) (command "_.ucs" "_save" (strcat (itoa (fix (car echll))) "-" (itoa (fix (cadr echll)))) "_yes") (command "_.ucs" "_save" (strcat (itoa (fix (car echll))) "-" (itoa (fix (cadr echll))))) ) (command "_.plan" "_current") (command "_.ucs" "_previous") ) Avec la Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
bonuscad Posté(e) le 23 septembre 2011 Posté(e) le 23 septembre 2011 Didier "Compassée" est inexact .Voici d'autres terme une courbe compactée , comprimée (comme un ressort ou un accordéon) http://fr.wiktionary.org/wiki/compasser (compassée désigne plutot une attitude humaine vulgairement une personne constipée <img src='http://cadxp.com/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':(rires forts):' /> ) Mais revenons à nos moutons noirs . j'aie réussi à creer mon bloc mais je ne sais pas comment modifierl'échelle sur mon axe X seulement ...Quelle est le nom de la commande ? (cela m'interresse meme si je pense que hélas cela va modifier la valeur de mes coordonnées ) Si j'aie bonne mémoire le seule moyen de manipuler un objet sans lui faire perdre ses coordonnées c'est le SCU .Il me faudrait un SCU capable d'appliquer un facteur d'echelle uniquement sur l'axe de X .Ainsi ma courbe s'aggrandit sans toucher aux coordonnées (enfin je crois...) . Ce que je tente d'avoir c'est une sorte de fonction zoom .Les fonctions zoom existantes ne m'ont pas satifait .Je trouve la courbe toujours illisible .Il me faudrait une sorte de fonction zoom qui agrandit 2 fois plus dans le sens des x que dans le sens des y . Titi95 , tu as bien saisis le problème . Peut-être que nous touchons une limite d'Autocad ? Pour les SCU c'est effectivement une solution.Le problème est que cela permet SEULEMENT de compresser pour déformer l'échelle sans modifier les cordonnées.Or dans ton fichier de Test du voudrait l'inverse. Comme j'ai bien envie de voir la courbe du CAC40 faire un beau plongeon Cela reste possible mais il va falloir appliquer un facteur de 1000 au coordonnées X pour décompresser la courbe. Dans ton fichier de test utilise la commande CONVERT pour convertir ta polyligne2D en LWPolyligne. Copie-colle le code qui suit en ligne de commande (defun c:mille_x ( / ent dxf_ent typ_ent up_def pt_lst n new_lst) (while (not (setq ent (entsel "\nChoisir une polyligne2D: ")))) (setq typ_ent (cdr (assoc 0 (setq dxf_ent (entget (car ent))))) new_lst '()) (cond ((eq typ_ent "LWPOLYLINE") (setq up_def (vl-remove-if '(lambda (x) (or (= (car x) 10) (= (car x) 40) (= (car x) 41) (= (car x) 42))) dxf_ent)) (setq pt_lst (vl-remove-if-not '(lambda (x) (or (= (car x) 10) (= (car x) 40) (= (car x) 41) (= (car x) 42))) dxf_ent)) (while pt_lst (setq new_lst (append (mapcar '(lambda (x / y) (setq y (nth x pt_lst)) (if (zerop x) (list 10 (* (cadr y) 1000.0) (caddr y)) y)) '(0 1 2 3)) new_lst)) (setq pt_lst (cddddr pt_lst)) ) (setq up_def (subst (cons 90 (/ (length new_lst) 4)) (assoc 90 up_def) up_def)) (entmod (append (subst (cons 90 (/ (length new_lst) 4)) (assoc 90 up_def) up_def) new_lst)) ) (T (princ "\nN'est pas une polyligne 2D optimisée!") ) ) (princ) ) Utilise alors la commande MILLE_X au clavierFais un zoom étendu.Tu auras ta courbe décompressée en XPar la suite pour jouer avec les SCU pour compresser la courbe tu peux utiliser le code suivant: (defun c:compress_view ( / echll) (initget 8) (setq echll (getpoint "\nEchelle de déformation <1000,1>: ")) (if (eq echll ()) (setq echll '(1000 1))) (setvar "ucsfollow" 0) (command "_.ucs" "_world") (command "_.ucs" "_y" (angtos (atan (/ (sqrt (- (* (car echll) (car echll)) (* (cadr echll) (cadr echll)) ) ) (cadr echll) ) ) 0 4 ) ) (if (tblsearch "UCS" (strcat (itoa (fix (car echll))) "-" (itoa (fix (cadr echll))))) (command "_.ucs" "_save" (strcat (itoa (fix (car echll))) "-" (itoa (fix (cadr echll)))) "_yes") (command "_.ucs" "_save" (strcat (itoa (fix (car echll))) "-" (itoa (fix (cadr echll))))) ) (command "_.plan" "_current") (command "_.ucs" "_previous") ) Avec la commande COMPRESS_VIEW tu pourras alors déformer ta courbe sans changer les coordonnéesAvec le facteur 1000pour1 (1000,1) tu retrouvera ta vue initialeSi tu prends un facteur de 100,1 tu auras une courbe bien lisible. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Saltz Posté(e) le 24 septembre 2011 Auteur Posté(e) le 24 septembre 2011 Ok la solution de faire un bloc puis de l'inserer avec la commande _insert + facteur d'echelle sur l'axe xpermet de me déplier ma courbe .Les coordonnées bougent sur l'axe des x mais cela ne me dérange pas .C'est plus de boulot à coder pas évident du tout ... J'aie encore plein de question évidemment ...Par exemple pourquoi est-ce-si important de transformer ma polyligne2D en LWPolyligne ? Respects BonusCad ! J'aie bien utilisé ta fonction MILLE_X etj'aie le problème inverse .Maintenant la fonction est tellementétirée qu'elle est quasiment plate .(sans compter que le langage lisp je ne comprend pas grand chose , je comprend seulement un peu le VBA) La fonction compress_view ne m'aide pas simplement la courbe maintenant plate est zoomée en avant ou en arrière .Si tu es interessé , je veux bien t'envoyer ce que j'aie codé en vba ... EN tout cas , je crois que je vais laisser tomber , c'est un peu trop raide pour moi .Surtout que je maitrise plus manuellement les lignes de commandes d'autocad .Alors à coder bonjour ...
bonuscad Posté(e) le 25 septembre 2011 Posté(e) le 25 septembre 2011 La fonction compress_view ne m'aide pas simplement la courbe maintenant plate est zoomée en avant ou en arrière . Normalement elle devrait fonctionner... !Si tu ne prends pas l'échelle proposée par défaut, il faut rentrer le rapport sous forme de liste de point en X,Ypar exemple 125,1 la virgule sert de séparateur. J'aie encore plein de question évidemment ...Par exemple pourquoi est-ce-si important de transformer ma polyligne2D en LWPolyligne ?Ce n'était pas important, mais juste plus simple pour moi pour travailler dessus avec du code lisp. EN tout cas , je crois que je vais laisser tomber , c'est un peu trop raide pour moi .Surtout que je maitrise plus manuellement les lignes de commandes d'autocad .Alors à coder bonjour ...Les coordonnées bougent sur l'axe des x mais cela ne me dérange pas .Si ça te dérange pas, l'insertion déformé en bloc est le plus simple et suffisante alors.Dans ton premier message il était stipulé : Donc il faut que j'étire ma courbe mais sans perdre mes coordonnées . j'avais envisagé ma réponse dans cet optique.Sauf qu'après relecture je m’aperçoit que j'aurais du appliquer la rotation du SCU autour de l'axe des X au lieu de celui des Y comme je l'ai fais, de cette façon je n'aurait pas eu besoin de modifier la courbe originale avec MILLE_X Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
x_all Posté(e) le 26 septembre 2011 Posté(e) le 26 septembre 2011 J'aie bien créer un bloc mais je n'aie pas trouvé l'endroit pour jouer sur l'échelle des axes . affiche les propriété de ton objet, il y a des case échelle pour les 3 axes http://img28.imageshack.us/img28/580/nord11.jpg http://img42.imageshack.us/img42/7259/nord13.jpg quelques trucs sur autocad
didier Posté(e) le 26 septembre 2011 Posté(e) le 26 septembre 2011 coucou on va dire que je ne comprends rien mais j'y suis habituéje suis aussi habitué à rabâcher. Saltz: Puisque tu as fait un programme qui dessine cette courbetu pars de valeurs que tu déformes en X pour étaler ta courbe sur la largeur de l'écran. qu'est-ce qui t'empêche de faire un autre programmequi va lire les valeurs dans la courbe créée en tenant compte de la déformation appliquée ? sans compter que ce programme sera valable dans le temps,on souhaite que les courbes du CAC40 n'aient pas toujours cette déformation erratique signe d'une fièvre qui perdure.si demain elle s'avère aussi plate que l'électro-encéphalogramme d'un présentateur de télécomment vas tu la dessiner, réponse, en déformant les Y... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Saltz Posté(e) le 26 septembre 2011 Auteur Posté(e) le 26 septembre 2011 Merci à tous . BonusCad j'aie enfin réussi à faire tourner la routine compress_view .(Je n'aie pas encore bien en main l'utilisation de la ligne de commande c'est pour ça que j'aie échoué la 1 ère fois)Comme tu viens de nous le démontrer , il est possible d'obtenir des "effets zoom avant/arrière" juste en manipulant le SCU . Pour la fonction MILLE_X à part qu'elle convertit la polyligne2D en LWpolyligne , je n'aie pas saisis ce qu'elle fait . J'aie retrouvé la fenêtre des propriétés en sélectionnant la courbe + clic droit /propriétés . A présent je suis bien armé pour coder dans mon coin si le courage m'en dit .Je considère le topic comme résolu . à++ nb: Didier oui pour tes idées mais compliqué .
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