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

    dwg non reconnu?

    Je n'ai pas apporté de solution, surtout si tu connaissais déjà l'inserer * :( Ce que je voulais faire passer comme message, c'est de dire qu'il était peut être plus simple (et peut être plus rapide) de repartir de la sauvegarde n-1 ou automatique, que de s'acharner à trouver la solution. Autrement je penserai aussi à l'ouvrir avec logiciel tiers (A9CAD par exemple), mais avec une version 2008, j'ai des doutes. Sur des versions ultérieures, dans des cas comme celui-ci, j'avais pu récupérer des fichiers récalcitrants. L'avantage de ces logiciel tiers et qu'ils purgent toutes les informations des tables et dictionnaires qu'ils ne savent pas exploiter (on peut perdre par conséquent des informations, mais on retrouve toutes les entités classiques) Une autre solution que je tenterais et de mettre le fichier en XREF dans un dessin vierge, et si ça fonctionne, tenter l'option "Ajouter" au dessin L'inconvénient, il va générer des "$" un peu partout dans les tables.
  2. bonuscad

    dwg non reconnu?

    Avant de perdre le BAK, repartir de celui-ci. Déjà tu pourras avoir la version n-1 ;) Il y a aussi le SV$ (sauvegarde automatique).... Tu as essayé "inserer", mais des fois "inserer" "[surligneur]*[/surligneur]nom_du_fichier" donne de meilleurs résultats
  3. bonuscad

    [MAP] altimétrie terrain 3D

    En reprenant la proposition de Didier, un truc dans ce genre ? (très vite fait) ((lambda ( / lst_pt n js dxf_ent x_y) (setq lst_pt nil n 1) (princ (strcat "\nChoisir le texte " (itoa n))) (while (setq js (ssget "_+.:E:S" '((0 . "TEXT")))) (setq dxf_ent (entget (ssname js 0)) x_y (cdr (assoc 10 dxf_ent)) lst_pt (cons (list (car x_y) (cadr x_y) (atof (cdr (assoc 1 dxf_ent)))) lst_pt) n (1+ n) ) (princ (strcat "\nChoisir le texte " (itoa n))) ) (cond (lst_pt (command "_.3dpoly") (foreach el lst_pt (command "_none" el)) (command "") ) ) (prin1) ))
  4. Si tu veux conservé tes appels par commande, tu peux utiliser la variable "EXPERT" pour cacher/éviter certain message de retour. Voir l'aide pour les différentes valeurs possibles.
  5. bonuscad

    [MAP] altimétrie terrain 3D

    Ha désolé que 3dpoly_xy ne fonctionne pas. Je crois comprendre que tu voudrais un automatisme plus avancé. Donc récupérer tout tes point connu en XY dans une sélection. Mais le problème dans ce mode opératoire est d'avoir l'ordre du cheminement des sommets. Si les points ont été rentrés dans Autocad dans l'ordre du cheminement, c'est jouable car on retrouvera cette classification dans le jeu de sélection. Dans le cas contraire le résultat risque d'être une 3Dpoly très brouillon, se recoupant de nombreuse fois en zig-zag. Donc tout dépend de la structure de ta base de donnée pour faire une routine ponctuelle. Si la base est bien ordonnées, on peut même imaginer de récupérer les Z automatiquement dans un pourtour proche. Faire une routine générale qui fonctionnerais sans trop de choix de l'utilisateur (en cas d'une base non triée) relève de l'exploit. Le mieux serait que tu puisse mettre un extrait (assez conséquent) de ton fichier à traité en "téléchargement" pour voir si un développement (léger) pourrait faire l'affaire. Ne pas oublié le tracé 2D du cheminement souhaité en exemple
  6. bonuscad

    [MAP] altimétrie terrain 3D

    Regarde ce sujet , je pense que ça répond à ta demande ;)
  7. Tu peux après avoir décaler utiliser (entlast) pour récupérer la dernière entité. Soit tu utilise après chaque décalage (command "_.chprop" (entlast) "" "_layer" "LIMITE" "_color" "_blue" "") Soit tu crée un jeu de sélection vide (setq js (ssadd)) et après chaque décalage tu rajoute la dernière entité a ton jeu de sélection (setq js (ssadd (entlast) js)) et tu fais ton changement en une seule fois (et ton jeu de sélection peut re-servir par la suite) (command "_.chprop" js "" "_layer" "LIMITE" "_color" "_blue" "") Bien sur le calque "LIMITE" doit exister...
  8. regarde ce sujet . Il y a d'ailleurs dans ce sujet un autre renvoi fait par (gile) sur les vecteur il me semble.
  9. bonuscad

    recherche lisp

    Je le reconnais..... :exclam: Il est vrai que pour quelqu'un qui propose souvent d'utiliser son logiciel, je suis surpris qu'il n'arrive pas a développer ceci. Mais bon si ça peut intéresser d'autres personnes, j'ai fait un "mix" de ma première proposition et de la routine rééditeé par Autospeed. Cette routine va donc vous permettre d'aligner-replacer un Texte ou MultiTexte en pointant un objet curviligne. Si celui-ci est courbe c'est la tangente au point de sélection qui sera prise. Le point de sélection sert aussi de référence pour replacer le texte par rapport à son centre d'encombrement (bounding-box). La valeur de décalage équivaut automatiquement à la demi-hauteur du texte sélectionné. Une fois placé vous serez amenez à supprimer l'une des deux solutions (à droite ou à gauche de l'objet) par déplacement du curseur et validation, puis vous pourrez tournez le texte de 90° sur un tour complet par rapport à son centre. Le lisp align_text.lsp J'ai observé que si les grips (poignées) n'avaient jamais été utilisées, bien que fonctionnant, la sur-brillance et les grips ne ce voient pas. Donc pour remédier à ce problème utilisez au moins une fois les grips avant utilisation de la routine. Ce problème à déjà été évoqué dans le forum, pas de solution à ce jour. :(
  10. bonuscad

    Nicolas et l\'alcool

    Si c'est le cas tant mieux, moi je préfère ça (Qu'il ait un travers, nous montre qu'il est humain). Ca me rappelle cette DEVINETTE qui est bien connue je pense...
  11. bonuscad

    Echelles

    Il faut juste sélectionner (cliquer sur) le symbole # et mettre ton texte entre les balises qui se sont insérées (toujours après le dernier caractère entré dans le message)
  12. Ce n'est pas grave, car pour ton cas précis, il ne sert à rien. Mais de l'aide existe pour cette fonction (c:rmat) dans la section autolisp Il fait simplement la même chose que ce que tu pourrais faire manuellement dans les boites de dialogue des matériaux. Voici grosso-modo la procédure (je pense que pour 2006 c'est toujours la même chose) * Donc quand tu es dans la boite de dialogue des matériaux, tu choisis le bouton "créer..." * Tu donne un nom à ton matériaux (dans mon lisp il se nomme BD-ORTHO) * Tu clique sur le bouton "Rechercher..." pour aller chercher une image (format: bmp, tif, jpeg etc...), dans mon lisp l'image est de type .tga * Tu clique alors sur "Ajuster bitmap..." te donnant accès à une nouvelle boite de dialogue. * Ici les réglages de taille (dans le lisp réglé à 5000 pour l'échelle de l'image et 10 pour l'objet) Pour moi je n'ai pas touché les autres options, mais pour toi, peut être que l'option de décalage répondrait à ton problème... C'est vrai que la manip n'est pas intuitive pour la création de matériaux bien calé.
  13. bonuscad

    Fusionner 2 Styles de Texte

    Le plus simple à mon avis et de faire une sélection filtrée de tout les textes et multi-textes ayant le style dont tu voudrais te débarrasser. (penser à activer tous les calques) Une fois sélectionnés tu change le style en donnant celui que tu veux conserver avec la fenêtre de propriétés, et après tu purge ton dessin. (Si il n'est plus utilisé, le style devrait être proposé pour la purge) Si le style est employé dans des attributs de bloc, cette procédure ne sera pas suffisante. Donc à suivre...
  14. Je répond sans avoir tester. Je dis ça car j'ai fais du mapping d'orthophoto, mais sur des dalles de Pmaille de même dimensions, et je n'ai pas eu de problème. J'ai même automatiser ma procédure de matériaux, en voici une copie, pour ceux qui voudraient l'adapter à leur besoin (defun att_mat (prefix dwg / ) (cond ((findfile (strcat prefix (vl-string-right-trim "dwg" dwg) "tga")) (c:rmat "N" "BD-ORTHO" "STANDARD" '(-1.0 -1.0 -1.0) 0.7 (list (strcat prefix (vl-string-right-trim "dwg" dwg) "tga") 1.0 1 '(5000.0 5000.0) '(0.0 0.0) 0.0 0 1 ) '(-1.0 -1.0 -1.0) 0.1 '(-1.0 -1.0 -1.0) 0.2 '(nil 0.0 0) 0.5 0.0 '( nil 0.0 0 (1.0 1.0) (0.0 0.0) 0.0 0 0 ) 1.0 '( nil 0.0 0 (1.0 1.0) (0.0 0.0) 0.0 0 0 ) ) (c:rmat "A" "BD-ORTHO" (ssget "_X" '((0 . "POLYLINE") (70 . 64)))) ) ) ) Pour en revenir à nos moutons, je pensais: si pour te faciliter le calage tu te crée une 3Dface de même taille (en 2D,de façon temporaire) que ton orthophoto. Ou alors de façon définitive en faisant une 3Dface minuscule (et qui ferait partie de ta sélection) à l'origine du mapping.... Je répète,j'ai pas testé mon idée
  15. bonuscad

    Afficher le nom du bloc

    Voir ce message
  16. OK, c'est donc pour "tracer" les erreurs, mais cela reste encore obscur pour moi :casstet: Sur mon poste en ligne de commande, ca me retourne ceci: Commande: (vl-bt) Analyse rétrospective: [0.19] (VL-BT) [1.15] (#) [2.12] (# "(vl-bt)" T #) :CALLBACK-ENTRY.6 (:CALLBACK-ENTRY) :ARQ-SUBR-CALLBACK.3 (nil 0) nil J'en resterais avec la fonction *error* ..... et la fonction (trace) Merci
  17. bonuscad

    Echelles

    Le voici, Je le redonne, car une pour les petites échelles, il y avait un problème dut à l'utilisation d'ENTIER. Donc le même mais avec l'utilisation de REEL pour éviter la limite fatidique des entiers. (defun c:qz ( / unit_draw fz f_m pt flag) (cond ((and (ssget "_X" '((0 . "VIEWPORT"))) (not (zerop (getvar "MEASUREMENT")))) (if (or (eq (getvar "USERS5") "") (not (eq (substr (getvar "USERS5") 1 2) "qz"))) (progn (initget "KM ME CM MM") (if (not(setq unit_draw (getkword "\nDessin réalisé en [KM/ME/CM/MM] : "))) (setq unit_draw "ME") ) (cond ((eq unit_draw "KM") (setq unit_draw 1000000) ) ((eq unit_draw "ME") (setq unit_draw 1000) ) ((eq unit_draw "CM") (setq unit_draw 10) ) ((eq unit_draw "MM") (setq unit_draw 1) ) ) (setvar "USERS5" (strcat "qz" (itoa unit_draw))) ) (setq unit_draw (atoi (substr (getvar "USERS5") 3))) ) (setvar "cmdecho" 0) (initget 6 "5 10 25 50 100 200 250 500 1000 2000 2500 5000 10000 25000 50000 1000000") (setq fz (getreal "\nChoix de l'échelle[5/10/25/50/100/200/250/500/1000/2000/2500/5000/10000/25000/50000/1000000]? <100>:")) (if (not fz) (setq fz 100) (setq fz (fix fz))) (if (eq (type fz) 'STR) (setq fz (read fz))) (if (eq (getvar "TILEMODE") 1) (setvar "TILEMODE" 0)) (if (not (eq (getvar "CVPORT") 1)) (command "_.pspace")) (princ "\nChoisissez la fenêtre à mettre à l'échelle") (while (null (setq f_m (ssget "_:S:E" '((0 . "VIEWPORT"))))) (princ "\nN'est pas une fenêtre") ) (setq f_m (ssname f_m 0)) (if (eq (boole 1 16384 (cdr (assoc 90 (entget f_m)))) 16384) (progn (command "_.mview" "_lock" "_off" f_m "") (setq flag T) ) (setq flag nil) ) (command "_.mspace") (setvar "CVPORT" (cdr (assoc 69 (entget f_m)))) (initget 8) (if (null (setq pt (getpoint"\nCoin bas Gauche/Entrée pour zoom Centre: "))) (command "'_.zoom" "_ce" (getvar "VIEWCTR") (strcat (itoa unit_draw) "/" (itoa fz) "XP")) (command "'_.zoom" "_left" pt (strcat (itoa unit_draw) "/" (itoa fz) "XP")) ) (command "_.pspace") (if flag (command "_.mview" "_lock" "_on" f_m "")) (setvar "cmdecho" 1) ) (T (princ "\nAucunes fenêtres dans l'espace papier, ou système de mesure Anglo-Saxon.") ) ) (princ) )
  18. Bonjour, Quelqu'un a t-il des infos concernant la fonction (vl-bt) ? A quoi peut-elle servir, y a t-il des arguments possibles? Je crois que ça concerne les objets proxy... mais des éclaircissements seraient bienvenus! Merci de vos réponses.
  19. bonuscad

    recherche lisp

    Une autre ébauche à creuser... Cette fonction accepte tout objet curviligne pour l'alignement. ((lambda ( / js obj_txt pt1 pt2 bdx mid_text ent obj_curv pt_sel param deriv alpha) (princ "\nChoix du texte à aligner: ") (while (not (setq js (ssget "_+.:E:S" '((0 . "*TEXT")))))) (setq obj_txt (vlax-ename->vla-object (ssname js 0))) (vlax-invoke-method obj_txt 'GetBoundingBox 'pt1 'pt2 ) (setq bdx (mapcar 'vlax-safearray->list (list pt1 pt2) ) ) (setq mid_text (mapcar '* (mapcar '+ (car bdx) (cadr bdx)) '(0.5 0.5 0.5))) (while (not (setq js (entsel "\nAligner le texte sur: ")))) (setq ent (car js) obj_curv (vlax-ename->vla-object ent)) (cond ((member (vlax-get-property obj_curv 'ObjectName) '("AcDbLine" "AcDbXline" "AcDbPolyline" "AcDb2dPolyline" "AcDbSpline" "AcDbEllipse" "AcDbArc" "AcDbCircle") ) (setq pt_sel (vlax-curve-getClosestPointTo obj_curv (trans (cadr js) 1 0)) param (vlax-curve-getparamatpoint obj_curv pt_sel) deriv (vlax-curve-getfirstderiv obj_curv param) alpha (atan (cadr deriv) (car deriv)) ) (vlax-invoke-method obj_txt 'Move (vlax-3d-point mid_text) (vlax-3d-point pt_sel) ) (vlax-put-property obj_txt 'Rotation alpha) (princ "\n< Espace > ou [Click+gauche] pour tourner de 90°/< Entrée > ou [Click+droit] pour finir!.") (while (and (not (member (setq key (grread nil 4 0)) '((2 13)))) (/= (car key) 25)) (setq alpha (rem (+ (/ pi 2.0) alpha) (* 2 pi))) (vlax-put-property obj_txt 'Rotation alpha) ) ) (T (princ "\nL'objet ne peut servir de référence d'alignement") ) ) (prin1) ))
  20. bonuscad

    sommet 3d

    Ce sujet pourrais t'aider, à voir....
  21. Un petit rappel de notation qui est bien pratique: ^C^C_copybase "_none" "*0,0,0" ^C^C_pasteclip "_none" "*0,0,0" L'astérisque correspond au coordonnées générale, donc quelque soit le SCU, l'origine correspond à celui du SCG.
  22. Peut être des fichiers non-chargés au démarrage, qui serait peut être dut à un changement "inopiné" dans les chemins de recherche. Dans ce cas un fichier comme AutoCAD.mnl (se charge automatiquement avec le menu associé) ou, acad200X.lsp (fichier d'autochargement) et/ou le fichier acad200Xdoc.lsp/fas (similaire au précédent) Je penche beaucoup pour ce dernier. Il effectue automatiquement des fichiers lsp et ARX, donc certaine commandes qur tu mentione font parties. Si ça se reproduit, vérifier les chemins de recherches, balancer manuellemnent les fichiers cités (par un deposer depuis l'explorateur) pour voir si ca résod le problème.
  23. bonuscad

    Bloc \"Autocoupant\"

    Et si tes WipeOut sont mis en place avec cette Couleur , ton Problème avec les PDF n'est pas résolu?
  24. Avec Autocad...pardi. Comme l'exemple montré ICI ? Ceci est fait essentiellement avec une version pleine d'Autocad. Un maillage 3D avec les points que je possédais Un rendu avec matériaux unique créé avec l'image aérienne (celle ci étant supposée homogène dans les dimensions avec les points XYZ)
  25. Le lisp est bien! Mais cette opération aurait pu ce faire manuellement en peu d'opération surtout dans ce cas précis. 1. Isoler le calque concerné, accrochobjet inactif 2. Depuis le SCG se mettre en vue de face ou autre à 90° de la vue plane. 3.Avec la commande "ETIRER" "Capture" sélectionner les sommets à Z=(z/100) point base manuel 0,0,0 deuxième point manuel 0,1000,0 (Y=Z dans scu courant) 4. On retourne dans le SCG c'est fini. Cela à pris moins de temps que de programmer... :( OOPS, je viens de m'apercevoir que j'avais omis un fait essentiel, l'étirement est un facteur de 100 par rapport au Z actuel. Réponse nulle et mal avenue. Circuler y a rien à voir :P [Edité le 31/5/2007 par bonuscad]
×
×
  • 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é