Aller au contenu

bonuscad

Membres
  • Compteur de contenus

    5 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    56

Tout ce qui a été posté par bonuscad

  1. bonuscad

    Polyligne et multilignes

    Si cela ne te dérange pas pour les autres objets de ton dessin, tu peux mettre la variable "FILLMODE" à 0 , comme ca tu verras tes traits de bords sans que cela cache d'autres objet éventuels. Faire un "Regen" pour voir la modif.
  2. Ton SCU n'est pas orienté pareil! Le Z vers est vers le centre de la terre, et pour le regarder tu t'es mis en vue de dessous. Mets toi en vue de dessus.... Tu peux aussi peut aussi utiliser la command "Aligner 3D", choisir tous tes objets. puis par exemple. Spécifiez le premier point de départ:0,0,0 Spécifiez le premier point d'arrivée: *0,0,0 Spécifiez le deuxième point de départ:100000,0 Spécifiez le deuxième point d'arrivée: *100000,0 Spécifiez le troisième point de départ ou :0,100000 Spécifiez le troisième point d'arrivée: *0,100000 Comme ça tu mets tout dans le SCG ;)
  3. A moins de trouver un utilitaire sur le net, et qu'il existe!, tu es "mal barré". Une expérience vécue (avec une 2002). Suite à une situation d'urgence (que je ne vais pas détaillé), je me suis retrouvé avec une licence officielle et une autre (un peu moins officielle) sur mon disque dur. Voulant pouvoir appliquer d'éventuel patch ou mise à jour dans le futur, j'ai voulu me défaire de cette licence. Hé bien seule solution que j'avais trouvé (même manip que pour des virus trés falacieux) j'ai du repartionner mon disque dur avec une option non documentée. "FDISK\MBR". Sur XP, si je devais refaire la manip, je pense que je regarderais vers "DISKPART" et une option qui nettoyerais le secteur d'amorce (MBR). Avant d'en arriver là bien sur, j'avais essayer toutes les autres options, jusqu'au formatage du DD. Ce qui n'avais rien changé, la licence était toujours présente. :( Peut être que le gestionnaire de licence pourrait aider? Il concerne plus les codes d'activation que la licence elle mêmes. Mais bon avant de se lancer dans une réinstall complète :o
  4. Bonjour, Le plus simple, à mon avis, est de mettre ton SCU courrant, puis faire "copier avec point base" en indiquant "0,0,0" Choisir tous les blocs que tu veux exporter. Ouvre un nouveau dessin et dans le SCG (par défaut) faire un "Coller" et indiquer "0,0,0" comme point d'insertion. Tu fais ton extraction et je pense que cela devrait fonctionner, tu sauvegarde ou non ton nouveau dessin. J'ai fait un test avec des entités simples et cela fonctionne, donc je pense que les blocs vont suivre aussi. :P
  5. bonuscad

    Lisp et script

    Attention à la variable SDI pour les scripts. Et il me semble que le lisp ne reprend pas la main sur un script, à vérifier. C'est à dire que la procédure peut être suppendu ou perdu lors d'un script multi fichier, enfin il me semble qu'il y a quelque chose :P
  6. bonuscad

    Photos et M.N.T.

    Si tu peux retrouver facilement 2 données, je pense que la _.DVIEW peut faire cela. Il faut que tu puisse fournir (le mieux possible) en coordonnées 3D les points CIBLE et CAMERA. C'est à dire pour la cible (interprétation pas facile) la position sur le terrain du point visé au centre de la photo. Pour l'angle cela est encore facile d'avoir une direction assez précise, la distance qu'on pourrait comparer à la pronfondeur de champs est moins facile à estimer. (l'option distance de la commande _.DVIEW permettra de rectifier un peu le tir après coup) Le point 3D ou a été prise la vue. Si la photo a été prise par vous ils vous sera facile de retouver assez précisément le point ou vous étiez et de rajouter la hauteur d'oeil au Z du terrain. Donc, commande VUEDYN option POINTS cible puis caméra puis option DISTANCE (valider par défaut la distance proposée ou ajuster succesivement celle-ci) On peut avec les infos de l'appareil ajuster aussi la focale de la vue. Plus les infos pourront être précise, plus la vue générée sous autocad pourra se coller à la photo. Ca pourrait répondre à ton souhait?
  7. bonuscad

    hachures

    Tu as du oublier un/des espaces (fais un rechercher-remplacer dans ton éditeur, pour être sur de ne pas en oublié). cherché "< " remplacé par "<" J'ai fais l'essai en laissant volontairement un espace et cela génére le même type d'errreur. C'est inférieur qui est concerné, pas supérieur comme indiqué dans mon post précédent (désolé) :(
  8. bonuscad

    hachures

    As tu bien enlevé les espaces placés après le "> ". Ceci fait, enregistres ton fichier, et depuis l'explorateur, fais un glissé-deposé dans la fenêtre graphique d'Autocad. Cette action devrait le charger, il ya d'autres manières de le charger... commande "APPLOAD" par exemple. La commande "MHATCH" est désormais dispponible pour éxecution.
  9. bonuscad

    hachures

    Salut, Essayes de voir ce Sujet , cela devrait correspondre a ton souhait.
  10. Entendu sur les ondes, je ne sais plus quelle station! Un problème de traduction entre logiciel avec un sous-traitant de l'union européenne (pologne je crois) fournissant le cablage electrique serait une des cause principale du retard accussé par Airbus. Voilà en très condensé, ce que j'ai entendu a ce propos.
  11. Denis, Essayes ceci par exemple pour éplucher tes soumissions. (defun my_type (e / ) (trace my_type) (print e) (princ " est un/une ") (princ (type e)) (print) (if (eq (type e) 'LIST) (if (atom (cdr e)) (progn (my_type (car e)) (my_type (cdr e))) (foreach n e (my_type n)) ) ) (untrace my_type) (prin1) ) Aprés tu l'utilise comme tu veux, exemple: (my_type (entsel)) (my_type (car (entsel))) (my_type (setq objet (ssget "_:S"))) ou (my_type objet) après déclaration Ouups! J'avais oublié les listes de paires pointées. Code rectifié, (my_type (entget (car (entsel)))) par exemple pourra fonctionner. [Edité le 8/10/2006 par bonuscad]
  12. Hé oui, c'est pour cela qu'il est important d'utiliser la syntaxe "." + "commande" pour utiliser la commande native. Autocad permet cette substitution (qui peut être parfois pratique) mais très dangereuse si mal manipulé. Denis je te suggère temporairement d'utiliser (pour les atomes) la fonction TYPE qui t'aideras à classiffier le type de donné que tu vas manipuler et a ne pas les mélanger entre elles.
  13. Je me suis bien essayé au 3d, mais j'ai du mal à suivre. Je pense que dans ce domaine, tu es le seul sur ce forum à décortiquer la 3D aussi pronfondément, pour l'instant (car un jour l'élève dépasse le maitre) ;) Je penses qu'il faut arriver à comprendre le système d'axe abitraire, j'ai pu l'observé mais pas le comprendre. J'avais trouvé un code interressant que je n'ai pas encore exploité car pas compris :( Je sais plus qui est l'auteur désolé! Mais avec le nouveau Google Machin on pourras peut être retrouver ;;; this function as the cyclically next one after the given axis ;;; (e.g., if you give it a Z-axis, it returns a suitable X-axis). ;;; ;;; Example (ArbAxis (list 1.0 0.0 0.0)) ;;; (defun ArbAxis(v) (if (and (< (abs (car v)) 0.015625) (< (abs (cadr v)) 0.015625)) (VectorUnitize (VectorCrossProduct '(0.0 1.0 0.0) v)) (VectorUnitize (VectorCrossProduct '(0.0 0.0 1.0) v)) ) ) (defun VectorCrossProduct(v1 v2) (list (- (* (cadr v1) (caddr v2)) (* (cadr v2) (caddr v1))) (- (* (caddr v1) (car v2)) (* (caddr v2) (car v1))) (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))) ) ) (defun VectorUnitize(v / dist) (setq dist (VectorLength v)) (if (> dist 0.0) (list (/ (car v) dist) (/ (cadr v) dist) (/ (caddr v) dist)) v ) ) (defun VectorLength(v / dist) (setq dist (+ (* (car v) (car v)) (* (cadr v) (cadr v)) (* (caddr v) (caddr v)) ) ) (if (> dist 0.0) (sqrt dist) 0.0 ) ) Voilà j'espère que ça va te combler et te permettre d'avancer encore... :exclam:
  14. J'ai pas essayé le lisp de gile, mais j'admire ses résolutions de problèmes en 3D. Personnellement, je me perds vite dans la compréhension en 3D. En plus quand je lis ceci (concernant le SCO) dans l'aide DXF - Annexe B - concepts avancés . Extrait: C'est compliqué le SCO :casstet:
  15. F6 ne sert qu'a l'affichage des coordonnées dans la barre d'état. 3 modes possibles par appuis successifs, soit: Mode inactif (l'affichage est grisé et les coordonnées ne sont pas mis à jour dans la barre d'état) Mode actif polaire (les coordonnées qui sont affichée sont les coordonées relative au dernier point en mode polaire ex: 65.53< 263.57 en mode dynamique) Mode actif absolu (les coordonnées absolues sont mis à jour en dynamique) Ces 3 modes ne sont accessibles que lorque une commande est active, autrement F6 n'est qu'une fonction de bascule du mode actif-inactif.
  16. Tout à fait, essayes plutôt ceci (command "_.copy" sel "" "_none" pA ".yz" "_none" "@" pB) Le "Aucun" avant "@" évitera l'accroche au dernier point saisi (qui, si on suit dans ton ordre proposé est le point, ce qui explique ton résultat précédent) Il est vrai que logiquement le dernier point saisi devrait être pA, mais en fait "LASTPOINT" contient encore le point car la commande copie n'est pas terminé. (j'ai déjà renconter ce problème avec des macros en diesel ou "LASTPOINT" ne contenait pas la valeur du dernier point saisi) [Edité le 6/10/2006 par bonuscad]
  17. bonuscad

    ECW dans light 2004

    Oui, mais il demande pour LT et il est dit Donc.... A moins que LT-Extender le permette (car le plugin est un ARX), faudrait essayer! :P Normalement si tu passes bien par le plugin pour attacher les images, celles-ci sont géoréférencées. :cool:
  18. bonuscad

    ECW dans light 2004

    Oui, mais il demande pour LT et il est dit Donc.... A moins que LT-Extender le permette (car le plugin est un ARX), faudrait essayer! :P
  19. bonuscad

    un leger accrochage

    Je pense que t'as voulu donner un exemple, mais celui là est particulièrement mal choisi. En effet pour que perpendiculaire fonctionne, les conditions extrémité et milieu seront toujours rempli, sauf pour un cercle. Donc difficile de réaliser un telle condition. Une possibilité pour un autre mode serait envisagable. Je pense en particulier à (osnap) exemple: (if (null (osnap (setq pt (cadr (entsel))) "_cen")) (osnap pt "_end") (osnap pt "_cen")) Si l'entité cliquée possède un centre celui-ci est retourné, autrement c'est l'extrémité. Donc pour certain mode, on peut arriver à "prioriser" tel ou tel accroche, mais d'autre seront impossible ou difficile.
  20. Tu n'as pas non plus accés au dernier fichier tracé depuis le panneau du traceur? Car tu pourrais relancer aussi tes nombres de copie depuis le traceur: Nombre de copie, puis amener au début. Et à partir de là (si papier suffisant et cartouche en bonne état) tes exemplaires se feront même ordi eteint. Perso j'utilise même plus souvent cette méthode, car comme ceci je lance d'abord un exemplaire unique que je valide visuellement, et ci ça me convient, je lance les copies du traceur. Vaut mieux mettre 1 plan à la poubelle que n exemplaire... :P [Edité le 4/10/2006 par bonuscad]
  21. bonuscad

    Polyligne en LISP

    Tu dois le connaitre ce chinois vu que tu fréquente le site ? ;) Très "branché" "TheSwamp", il y a des Russes !, des Chinois !, et ... des Francais ! .....:o Un truc que j'ai bien aimé de ce chinois, est une fractale (avec l'aide des membres) pour dessinner des vegétaux en 2D. Il sont vraiment joli et pourrait servir pour rajouter dans une biblio pour du paysager. Voir TheSwamp pour le code.
  22. Ou encore de manière plus générale sauf les noms d'entités, autrement tu peux te construire ta liste de la manière que tu l'entends. ((lambda ( / js n dxf_ent line_writed data_dxf) (setq js (ssget '((0 . "INSERT"))) n -1) (cond (js (repeat (sslength js) (setq dxf_ent (entget (ssname js (setq n (1+ n)))) line_writed "") (foreach n '(2 10 50 41 42 43) ;; liste des éléments à extraire (setq data_dxf (cdr (assoc n dxf_ent))) (setq line_writed (strcat line_writed " " (cond ((eq (type data_dxf) 'STR) data_dxf ) ((eq (type data_dxf) 'LIST) (strcat (rtos (car data_dxf) 2 16) " " (rtos (cadr data_dxf) 2 16) " " (rtos (caddr data_dxf) 2 16)) ) ((eq (type data_dxf) 'REAL) (rtos data_dxf 2 16) ) ((eq (type data_dxf) 'INT) (itoa data_dxf) ) (T "") ) ) ) ) (print line_writed); pourait être remplacé par un (write-line) dans un fichier ouvert avant repeat. ) ) (T (princ "\nPas de bloc trouvé!")) ) )) Autrement il important de savoir si il y a des blocs placés en 3D, car il faudrait alors peut être utiliser le code 210 pour retranscrire les coordonées et la rotation dans le SCG.
  23. bonuscad

    Polyligne en LISP

    Ce code trouvé ICI Je pense que tu aurais le corps principal d'une fonction pour t'inspirer sur le dessin du ferraillage (defun c:test (/ A D D0 E EN GR LST LST1 LST2 PT) ;;by ElpanovEvgeniy at theswamp.org ;;change very little by qjchen ;; The last changes ;; The task (3) is solved (setq pt (getpoint "\nthe steel start point:")) (setq en (entmakex '((0 . "LWPOLYLINE") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 1) (100 . "AcDbPolyline") (90 . 5) (70 . 0) (43 . 10.0) (38 . 0.0) (39 . 0.0) (10 50.0 20.0) (42 . 0.0) (10 0. 20.0) (42 . 1.0) (10 0. 0.0) (42 . 0.0) (10 0.0 0.0) (42 . 1.0) (10 0.0 20.0) (42 . 0.0) (10 -50. 20.0) (42 . 0.0) (210 0.0 0.0 1.0) ) ) ;_ entmakex lst1 '((50. 20.) (0. 20.) (0. 0.) ) lst2 '((0. 0.) (0. 20.) (-50. 20.) ) e (reverse (vl-member-if (function (lambda (x) (= (car x) 39) ) ;_ lambda ) ;_ function (reverse (entget en)) ) ;_ vl-member-if ) ;_ reverse ) ;_ setq (while (= (car (setq gr (grread nil 5 1))) 5) (setq a (angle pt (cadr gr)) d (distance pt (cadr gr)) ) ;_ setq (setq lst (append (mapcar (function (lambda (p) (list (+ (* (car p) (cos a)) (* (cadr p) (- (sin a))) (car pt) ) ;_ list (+ (* (car p) (sin a)) (* (cadr p) (cos a)) (cadr pt) ) ;_ list ) ;_ list ) ;_ lambda ) ;_ function lst1 ) ;_ mapcar (mapcar (function (lambda (p) (list (+ (* (+ d (car p)) (cos a)) (* (cadr p) (- (sin a))) (car pt) ) ;_ list (+ (* (+ d (car p)) (sin a)) (* (cadr p) (cos a)) (cadr pt) ) ;_ list ) ;_ list ) ;_ lambda ) ;_ function lst2 ) ;_ mapcar ) ;_ append ) ;_ setq (entmod (append e (list (cons 10 (car lst)) '(42 . 0.) (cons 10 (cadr lst)) '(42 . 1.) (cons 10 (caddr lst)) '(42 . 0.) (cons 10 (cadddr lst)) '(42 . 1.) (cons 10 (nth 4 lst)) '(42 . 0.) (cons 10 (nth 5 lst)) '(42 . 0.) ) ;_ list ) ;_ append ) ;_ entmod ) ;_ while (setq pt (mapcar (function -) (cadr lst) (caddr lst)) a (angle (caddr lst) (cadr lst)) d0 (distance (cadr lst) (caddr lst)) lst1 (list (car lst) (cadr lst) (nth 4 lst) (nth 5 lst)) lst2 (list (caddr lst) (cadddr lst)) ) ;_ setq (setq en (entmakex (entget en))) (while (= (car (setq gr (grread nil 5 0))) 5) (setq d (polar pt a (- (distance (cadr gr) (vlax-curve-getClosestPointTo en (cadr gr) ) ;_ vlax-curve-getClosestPointTo ) ;_ distance d0 ) ;_ - ) ;_ polar ) ;_ setq (setq lst (append (mapcar (function (lambda (p) (list (+ (car p) (car d) ) ;_ list (+ (cadr p) (cadr d) ) ;_ list ) ;_ list ) ;_ lambda ) ;_ function lst1 ) ;_ mapcar (mapcar (function (lambda (p) (list (- (car p) (car d) ) ;_ list (- (cadr p) (cadr d) ) ;_ list ) ;_ list ) ;_ lambda ) ;_ function lst2 ) ;_ mapcar ) ;_ append ) ;_ setq (entmod (append e (list (cons 10 (car lst)) '(42 . 0.) (cons 10 (cadr lst)) '(42 . 1.) (cons 10 (nth 4 lst)) '(42 . 0.) (cons 10 (nth 5 lst)) '(42 . 1.) (cons 10 (caddr lst)) '(42 . 0.) (cons 10 (cadddr lst)) '(42 . 0.) ) ;_ list ) ;_ append ) ;_ entmod ) ;_ while (princ) )
  24. Tout à fait, c'est certainement moi qui ne le suis pas! Et puis pour une fois que je suis tourjours premier (des derniers) sur la liste :cool: Je suis pour ton système égalitaire, chaque utlisateur est le dernier connecté pour sa page et jamais personne ne passera devant lui. :P
  25. Merci, pour cet exemple concis qui me montre l'interêt de l'usage de vl-bb-set et vl-bb-ref sur lequel je ne m'été jamais penché.
×
×
  • 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é