Aller au contenu

bryce

Membres
  • Compteur de contenus

    2 160
  • Inscription

  • Dernière visite

  • Jours gagnés

    16

Tout ce qui a été posté par bryce

  1. bryce

    Liste echelle personalisée

    Bonjour, Et quel est le souci pour la création du bouton ? Si c'est la macro qui te pose problème: ^C^Cscript;"C:/mes scripts autocad/echelles.scr" Attention de bien remplacer les \ par des / dans le chemin, et à le mettre entre "" s'il contient des espaces. ;)
  2. bryce

    [Résolu] Bloc attribut

    Bonjour, Tu peux essayer avec ce lisp : http://www.creao.fr/uploads/lisp/etiquette.lsp Avant de l'utiliser, il faut ouvrir le fichier et remplacer dans la partie config le nom du bloc à utiliser, ainsi que les étiquettes des attributs à renseigner. ;) Le code : (defun c:ETIQUETTE ( / GetBlock GetObjectID PutAttValue InsertBlock BOBJ DOC ENT BLOC BLOCPL CTAG LTAG PTAG CONVLONG OBJ PT RESULT SPC TAG VALUE PCONV OLDCLAYER OLDCECOLOR OLDCELTYPE OLDCELWEIGHT OLDCMDECHO OLDERR DECIMALES) (vl-load-com) ;; Brice Studer, octobre 2011 ;~~~ CONFIG ~~~ (setq bloc "etiquette") ;; Nom du bloc à insérer (doit exister dans le dessin) (setq ctag "COULEUR") ;; Etiquette de l'attribut qui affichera la couleur (setq ltag "CALQUE") ;; Etiquette de l'attribut qui affichera le calque (setq ptag "LONGUEUR") ;; Etiquette de l'attribut qui affichera la longueur (setq blocpl "etiquettes") ;; Calque sur lequel insérer le bloc ;(setq blocpl nil) ;; enlever le 1er ; pour utiliser le calque courant (setq convlong T) ;; remplacer T par nil pour désactiver la conversion des longueurs en m (setq decimales "2") ;; Nombre de décimales pour la longueur ;~~~ FIN CONFIG ~~~ (defun initerr() (setq oldclayer (getvar "clayer")) (setq oldcecolor (getvar "cecolor")) (setq oldceltype (getvar "celtype")) (setq oldcelweight (getvar "celweight")) (setq oldcmdecho (getvar "cmdecho")) (setq olderr *error*) (setq *error* trap) (setvar "cecolor" "bylayer") (setvar "celtype" "bylayer") (setvar "celweight" -1) (setvar "cmdecho" 0) (princ) ) (defun reset() (setq *error* olderr) (setvar "clayer" oldclayer) (setvar "cecolor" oldcecolor) (setvar "celtype" oldceltype) (setvar "celweight" oldcelweight) (setvar "cmdecho" oldcmdecho) (princ) ) (defun trap(errmsg) (command nil nil nil) (princ (strcat "\nErreur: " errmsg "\n")) (setq *error* olderr) (setvar "clayer" oldclayer) (setvar "cecolor" oldcecolor) (setvar "celtype" oldceltype) (setvar "celweight" oldcelweight) (setvar "cmdecho" oldcmdecho) (vla-regen doc acActiveViewport) (princ) ) (defun GetObjectID (obj / acobj) (if (= (type obj) 'ENAME)(setq obj (vlax-ename->vla-object obj))) (if (< 40 (strlen (vl-princ-to-string (setq acobj (vlax-get-acad-object))))) (vlax-invoke-method (vla-get-utility (vla-get-activedocument acobj)) "GetObjectIdString" obj :vlax-false) (itoa (vla-get-objectid obj)) ) ) (defun PutAttValue ( object tag value ) ;; Lee Mac ~ 05.05.10 (mapcar (function (lambda ( attrib ) (and (eq tag (vla-get-TagString attrib)) (vla-put-TextString attrib value) ) ) ) (vlax-invoke object 'GetAttributes) ) value ) (defun InsertBlock ( Block Name Point ) (if (not (vl-catch-all-error-p (setq result (vl-catch-all-apply (function vla-insertblock) (list Block (vlax-3D-point point) Name 1. 1. 1. 0.) ) ) ) ) result ) ) (initerr) (setq spc (if (or (eq AcModelSpace (vla-get-ActiveSpace (setq doc (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) ) (eq :vlax-true (vla-get-MSpace doc)) ) (vla-get-ModelSpace doc) (vla-get-PaperSpace doc) ) ) (if (tblsearch "BLOCK" bloc) (while (progn (setq ent (car (entsel "\nChoix de l'objet: "))) (if blocpl (command "_.-layer" "_T" blocpl "_ON" blocpl "_m" blocpl "")) (cond ( (eq 'ENAME (type ent)) (setq obj (vlax-ename->vla-object ent)) (if (and (setq pt (getpoint "\nSpécifiez le point d'insertion du bloc: ")) (setq bObj (InsertBlock spc bloc pt)) ) (progn (setq pconv "1") (if convlong (cond ((= (getvar "insunits") 4) (setq pconv "0.001")) ((= (getvar "insunits") 5) (setq pconv "0.01")) ) ) (and ctag (PutAttValue bObj ctag (strcat "%<\\AcObjProp Object(%<\\_ObjId " (GetObjectID obj) ">%).TrueColor>%" ) ) ) (and ltag (PutAttValue bObj ltag (strcat "%<\\AcObjProp Object(%<\\_ObjId " (GetObjectID obj) ">%).Layer>%" ) ) ) (if (vlax-property-available-p obj 'Length) (and ptag (PutAttValue bObj ptag (strcat "%<\\AcObjProp Object(%<\\_ObjId " (GetObjectID obj) ">%).Length \\f \"%lu2%pr" decimales "%ct8[" pconv "]\">%" ) ) ) ) ) ) ) ) ) ) (princ "\n** Bloc non trouvé **") ) (reset) (vla-regen doc acActiveViewport) (princ) )
  3. bryce

    perspertive

    ... ou bien clic droit sur le ViewCube. ;)
  4. bryce

    Comptage de blocs

    Bonjour, Effectivement bcount n'existe pas sur LT. Il n'y a d'ailleurs aucun moyen rapide d'obtenir l'équivalent (un décompte des quantités pour chaque bloc du dessin), il faut faire à la main... :( Une alternative est d'enregistrer le dessin en DXF. Celui-ci étant un fichier texte, on peut "facilement" le traiter ensuite à l'aide d'un programme externe pour en extraire des infos. Si ça t'intéresse, tu peux tester le petit programme suivant (en démo pour l'instant, limité dans le temps): http://www.creao.fr/uploads/temp/bcount_demo.zip Mode d'emploi: - enregistrer le dessin en DXF - lancer le programme - cliquer sur Parcourir et sélectionner le DXF créé précédemment - et voilà ! :)
  5. bryce

    annotativité

    Bonjour, Commande _ANNORESET ou (REDEFANNOT en vf), ou sélectionner un objet annotatif et clic droit > Echelle des objets d'annotation > Synchroniser les positions multi-échelle. ;)
  6. bryce

    Filedia

    Si le poste est connecté à Internet, il suffit normalement de cliquer sur l'antenne satellite tout en haut à droite de l'écran pour savoir si le produit est à jour. ;)
  7. bryce

    Filedia

    Tous les Service Packs (ou Updates) sont installés ?
  8. bryce

    PSLTSCALE

    Bonjour, Moi je dirais : - Échelle de l'objet courant (CELTSCALE) toujours égal à 1 - Facteur d'échelle global (ECHLTP) fixe également, de l'ordre de 0.5 (0.4 pour faire plaisir à rebcao :P ) - cocher Utiliser les unités de l'espace papier pour une mise à l'échelle (PSLTSCALE = 1) - MSLTSCALE à 1. L'aspect des types de ligne dans l'onglet Objet changera alors suivant l'échelle d'annotation courante (CANNOSCALE), il suffit de choisir la même échelle que celle utilisée dans la présentation.
  9. bryce

    Menu

    Bonjour, Utilise la commande MENU pour charger AutoCAD.cuix. Ce fichier se trouve à cet endroit sur mon poste (Windows XP, ça peut varier sur Vista ou 7) : C:\Documents and Settings\***\Application Data\Autodesk\AutoCAD 2012 - French\R18.2\fra\Support où *** est ton nom d'utilisateur Windows.
  10. bryce

    Filedia

    Bonjour, C'est souvent l'utilisation d'un Lisp mal fichu qui cause ce genre de souci...
  11. C'est vrai qu'en attachant le plan d'archi en XRef, mois non plus je ne vois pas trop la nécessité de l'aplatir sur un seul calque... :unsure:
  12. Bonjour, La routine proposée par Didier attribue le type de ligne "Ducalque" à tous les objets. Si j'ai bien compris, tu veux en quelque sorte faire l'inverse, et que chaque objet au final ait son type de ligne forcé ? Si j'ai bon, je te propose ceci : (defun c:FORCETP (/ acdoc *error* lay ss obj layobj i counter) ; Attribue à chaque objet sélectionné le type de ligne du calque de l'objet. (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))) (defun *error* (msg) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (vla-endundomark acdoc) (princ) ) (vla-startundomark acdoc) (if (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget)) ) (progn (setq i 0) (setq counter 0) (repeat (sslength ss) (setq obj (vlax-ename->vla-object (ssname ss i))) (setq layobj (vla-item (vla-get-Layers acdoc) (vla-get-layer obj))) (if (= (vla-get-lock layobj) :vlax-false) (progn (vla-put-linetype obj (vla-get-linetype layobj)) (setq counter (1+ counter)) ) ) (setq i (1+ i)) ) (princ (strcat "\n" (itoa counter) " objets modifiés !")) (princ) ) );if selection (*error* nil) ) (princ "\nCommande à utiliser: FORCETP") (princ)
  13. bryce

    problème Autocad -> Sketchup

    Après avoir éliminé dans le csv joint un peu plus tôt les points dont l'altitude n'est pas renseignée, voici le terrain obtenu dans SketchUp avec le plugin Cloud : http://www.creao.fr/uploads/temp/test.skp j'ai soustrait 847600 à toutes les coordonnées X et 130000 aux coordonnées Y, pour pallier aux soucis de SketchUp quand les coordonnées sont trop grandes... Le CSV : http://www.creao.fr/uploads/temp/test.csv Edit: fichier skp mis à jour, j'avais oublié de supprimer les points correspondant à l'altitude des lignes EDF...
  14. bryce

    problème Autocad -> Sketchup

    Il suffit de faire une extraction de données pour récupérer les coordonnées X et Y d'insertion de chaque point topo, ainsi que la valeur de l'attribut ALT (qui servira de Z dans SketchUp). Par contre c'est tous les points topo qu'il faut récupérer ? Parce que tu parlais de 500 points, et j'en ai récupéré plus de 5000 (voir fichier joint)... Ça fait un peu beaucoup pour SketchUp je pense ! test.zip
  15. bryce

    problème Autocad -> Sketchup

    Avec AutoCAD, il y a (presque) toujours une solution... ;) Si tu ne peux pas envoyer le fichier complet, envoie au moins un exemple dans lequel tu n'auras laissé que quelques points, et tu verras que ton problème n'est pas du tout insoluble !
  16. bryce

    La commande Spline

    Bonjour, Elle est déjà dans le Ruban par défaut (voir image en pièce jointe). ;)
  17. Bonjour, Tu peux remplacer (repeat 1000 par (while T ;)
  18. bryce

    problème Autocad -> Sketchup

    Bonjour, Ton souci d'importation vient peut-être du type d'objet utilisé dans AutoCAD pour représenter les pojnts (points + texte, ou blocs avec attributs). Plutôt que de te battre avec un logiciel que tu ne connais pas, je pense qu'il serait plus simple d'importer les points dans SketchUp depuis un fichier texte contenant leurs coordonnées, en utilisant le plugin Cloud (qui permet de faire une triangulation automatique). Si ton client ne peut pas te fournir ce fichier, c'est a priori assez simple de le créer depuis AutoCAD avec l'extraction de données, du moins quand on connaît un peu AutoCAD... :P S'il te faut un coup de main pour créer ce fichier, tu peux poster ton dwg ici s'il n'est pas confidentiel, ou me l'envoyer par mail (brice arobase creao point fr). ;)
  19. Bonjour, Je viens de regarder ton code par curiosité, et j'ai 2 remarques : - le point de base de la mise à l'échelle pt1 n'est défini nulle part :unsure: - la ligne suivante ne sert à rien a priori : (setq n (1+ n)) ;)
  20. Bonjour, A priori le seul moyen de conserver les calques est d'ouvrir (pas importer) un dwg/dxf. Concernant l'échelle, on peut la ma^triser en réglant correctement les unités à l'ouverture du fichier dans Illustrator.
  21. Bonjour, C'est comme ça... :( Il faut relancer l'extraction de données pour recréer le fichier Excel. Pour tes autres soucis, ce serait plus facile de t'aider si tu postais un exemple de ton bloc. ;) @jalna: tiens, un voisin ! :blink:
  22. bryce

    Flux Rss

    Idem !
  23. Bonjour, Non non, c'était bien avec Ctrl "dans le temps". :) Je ne suis plus sûr de la version dans laquelle ça a changé... Probablement la 2007, puisqu'avec les nouveautés 3D de cette version la touche Ctrl sert à sélectionner des sous-objets (arêtes, sommets, faces). Il existe évidemment une variable qui permet de retrouver l'ancien comportement: LEGACYCTRLPICK :D
  24. bryce

    Macro

    Bonjour, Quelle est la question au juste ? Comment créer un bouton ? En faisant une recherche sur le forum, tu devrais trouver... Quelle est la macro à utiliser ? ^C^Cdroite;v ou ^C^Cdroite;h
  25. bryce

    urgent soucis insertion

    Bonjour, Je n'ai pas regardé dans le détail, mais as-tu pensé à désactiver les accrochages aux objets lors de l'insertion des blocs ?
×
×
  • 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é