Aller au contenu

(gile)

Moderateurs
  • Compteur de contenus

    12 247
  • Inscription

  • Dernière visite

  • Jours gagnés

    209

Tout ce qui a été posté par (gile)

  1. Salut, Extrait de l'aide pour la commande DECOMPOS (_EXPLODE) :
  2. (gile)

    heriter un style de cote..

    Salut, Tu le trouveras ici.
  3. Salut, Pour la légende toujours, tu peux voir aussi Tabloblo. Pour le style visuel esquisse, si tu veux parler d'arrêtes crénelées et d'arrêtes de facettes, une fois reglés tes paramètres dans le "Tableau de bord", tu sélectionne la fenêtre de présentation, clic droit et cocher Tracer de l'ombrage > Comme affiché. Aperçu du tracé : http://img379.imageshack.us/img379/3130/esquissezg3.png
  4. (gile)

    Satané \"impliedfacex\"

    Salut, Je ne comprends pas, chez moi : As tu installé le SP1 et les différents Hotfix, il me semble me souvenir avoir vu quelque chose concernant les anti-slash
  5. Salut, Tu peux trouver un fichier AutoCAD.cui dans : C:\Program Files\AutoCAD 2007\UserDataCache\Support
  6. Je ne suis pas du tout sûr d'avoir compris non plus, mais dans la boite de dialogue "Paramètres de dessin" > onglet "Repérage polaire" > dans "Mesure de l'angle polaire" cocher "Par rapport au dernier segment". Ce qui revient à ajouter (ou soustraire) 1 à la valeur de POLARMODE.
  7. Il me semble comprendre que tu parles du LISP Edit_bloc. Si tu veux que toutes les entités composant un bloc prennent la couleur du calque sur lequel le bloc est inséré, il faut mettre ces entités sur le calque 0, en couleur "DuBloc" (de même pour les autre propriétés.
  8. (gile)

    Double ecran

    Salut, Dans les paramètres proposés par ta carte graphique, choisis "Bureau étendu" ou quelque chose de ce style, et tu devrais avoir ton bureau qui se prolonge d'unécran sur l'autre. Ensuite, tu agrandis ta fenêtre AutoCAD pour qu'elle couvre les deux écrans, et dans AutoCAD, menu Affichage > Fenêtres > 2 Fenêtres.
  9. (gile)

    dessin escalier

    Salut, Un long sujet traitant des escaliers avec les formules de base, des liens intéressants vers d'autres sites traitant des escaliers et quelques LISP pour automatiser certains calculs ici. Pour les escaliers en colimaçon (hélicoïdaux), une méthode à base de LISP ici, avec un petit complément d'information là.
  10. Salut, Je ne comprends pas bien ce que tu veux faire, mais la fonction trans permet de traduire des coordonnées dans des systèmes de coordonnées spécifiques à l'espace papier. Par exemple, dans une fenêtre active d'une présentation, on spécifie le centre d'un cercle : (setq cen (getpoint)) On peut traduire les coordonnées de cen dans le système de coordonnées de la fenêtre active de la présentation (Display Coordinates System DCS). Il faut qu'une fenêtre soit toujours active : (setq cen_vp (trans cen 0 2)) Ensuite, de retour dans l'espace papier, on peut traduire ces coordonnées dans le système de coordonnées de l'espace papier : (setq cen_ps (trans cen_vp 2 3)) (command "_.point" "_non" cen_ps) dessine un point dans l'espace papier, au centre du cercle.
  11. (gile)

    polyligne 3d avec arc

    Je crois que je ne te comprends pas. Un coup il me semble que tu optes pour une fonction, le coup d'après tu sembles préférer l'autre. J'ai expliqué plus haut comment les sommets étaient calculés dans les deux fonctions, peut-être l'explication n'est-elle pas claire, mais il s'agit de deux calculs différents qui ne sont pas conciliables : - soit l'altitude du deuxième point est prise en compte, les trois points définissent un plan dans lequel sont situés les sommets décrivant l'arc (Gile3dPoly) - soit l'altitude du deuxième point (comme cele de tous les sommets) est calculée par interpolation à partir de l'altitude des premiers et troisièmes points (InterPoly3d) Je ne comprends pas comment l'interpolation peut être déterminée par 3 points : à partir de l'altitude de deux points, on interpole celle du troisème. PS : essaye de faire un un aperçu et de corriger les balises bbcodes avant de poster, ton sujet devient illisible.
  12. Re, (while (not (and (setq sel (car (entsel "\n Sélectionner une fenêtre :"))) (or (equal (cdr (assoc 0 (entget sel))) "VIEWPORT") (equal (cdr (assoc 0 (entget (cdr (assoc 330 (entget sel)))))) "VIEWPORT" ) ) ) ) )
  13. Salut, Tu peux mettre un message avant de faire le (ssget ...), l'vantage du (ssget ...) c'est de pouvoir utiliser des filtres. avec (entsel ...) tu peux faire une boucle plus concise : (while (not (setq sel (car (entsel "\n Sélectionner une fenêtre :"))))) et pour remplacer le filtre sur le type d'entité : (while (not (and (setq sel (car (entsel "\n Sélectionner une fenêtre :"))) (equal (cdr (assoc 0 (entget sel))) "VIEWPORT") ) ) ) [Edité le 24/11/2006 par (gile)]
  14. Même si je n'ai jamais douté que tu n'est pas le scénariste de BD, quand je lis ton pseudo, je ne peux m'empécher de penser à "Kébra le rat".
  15. (gile)

    polyligne 3d avec arc

    Si tu parles de l'interface (invites à la ligne de commande) c'est fait. InterPoly3D version 1.2 reste en mode "Ligne" jusqu'à ce que soit spécifié l'option "Arc" et reste dans ce mode tant que l'option "Ligne" n'est pas re spécifiée.
  16. (gile)

    menu contextuel

    Salut, Si tu n'en as pas créé et chargé un autre, le fichier s'appelle AutoCAD.mns
  17. Dans le même registre que la dernière de Patick_35. (defun c:DeleteSolidHathInBlocks (/ AcDoc) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-StartUndoMark AcDoc) (vlax-for b (vla-get-Blocks AcDoc) (vlax-for e b (if (and (= "AcDbHatch" (vla-get-ObjectName e)) (= "SOLID" (vla-get-PatternName e)) ) (vla-delete e) ) ) ) (vla-EndUndoMark AcDoc) (vla-regen AcDoc acActiveViewport) (princ) ) Pour Patrick_35, d'après mes tests "EffectiveName" ne concerne que les références de bloc, pour les définitions de bloc, c'est toujours "Name"
  18. (gile)

    Copie vers un autre Calque

    Bien vu Bonuccad, dans mon enthousiasme, j'ai oublié les entités complexes (il s'agissait pourtant de blocs au départ) :P Une autre façon, donc, en VisualLISP : (defun c:COPYFOL (/ v1 v2 v3) (vl-load-com) (and (setq v1 (getstring "\nNumero du folio destination: ")) (tblsearch "layer" v1) (setq v2 (car (entsel (strcat "Bloc à copier vers le folio " v1 ":")))) (setq v3 (vla-Copy (vlax-ename->vla-object v2))) (vla-put-Layer v3 v1) ) (princ) )
  19. C'est Tramber qui a fait le principal, je n'ai fait que de "l'habillage".
  20. (gile)

    Copie vers un autre Calque

    Salut, Si tu veux éviter le (command ...), tu peux faire directement un (entmake ...) avec la liste entget de l'objet sélectionné dans laquelle le calque est changé. (defun c:COPYFOL (/ v1 v2 v3) (setq v1 (getstring "\nNumero du folio destination: ")) (if (tblsearch "layer" v1) (progn (setq v2 (entsel (strcat "Bloc à copier vers le folio " v1 ":"))) (if v2 (setq v2 (car v2)) (exit) ) (if (numberp v1) (setq v1 (itoa v1)) ) [b](entmake (subst (cons 8 v1) (assoc 8 (entget v2)) (entget v2)))[/b] ) ) (princ) ) On peut même faire plus concis, en utilisant (and ...) si une des expressions retourne nil, la routine s'arrête (defun c:COPYFOL (/ v1 v2) (and (setq v1 (getstring "\nNumero du folio destination: ")) (tblsearch "layer" v1) (setq v2 (car (entsel (strcat "Bloc à copier vers le folio " v1 ":")))) (entmake (subst (cons 8 v1) (assoc 8 (entget v2)) (entget v2))) ) (princ) ) [Edité le 23/11/2006 par (gile)]
  21. (gile)

    Recherche une routine

    Salut, Voilà un exemple, un peu fait de bric et de broc, je te laisse le soin de décortiquer et modifier à ta guise. Les fichier DCL à enregistrer sous getLineType.dcl et LayerProp.dcl dans un dossier du chemin de recherche des fichiers de support. // getLineType.dcl getLineType:dialog{ label="Choisir un type de ligne"; :popup_list{ key="lt"; edit_width=20; alignment=centered; } spacer; ok_cancel; } //LayerProp.dcl LayerProp:dialog{ label="Propriétés du calque"; :text{ key="name"; alignment=centered; } spacer; :row{ :text{ key="lt_n"; alignment=left; width=20; } :button{ key="lt"; label="Changer"; alignment=right; width=5; } } :row{ :text{ key="col_n"; alignment=left; width=20; } :button{ key="col"; label="Changer"; alignment=right; width=5; } } ok_cancel; } Les LISP : (defun getLineType (/ f l lst dcl_id nom) (setq f (open (if (= (getvar "MEASUREMENT") 1) (findfile "acadiso.lin") (findfile "acad.lin") ) "r" ) ) (while (setq l (read-line f)) (if (= (substr l 1 1) "*") (setq lst (cons (substr l 2 (1- (vl-string-position 44 l))) lst)) ) ) (setq lst (cons "Continuous" (acad_strlsort lst))) (setq dcl_id (load_dialog "getLineType.dcl")) (if (not (new_dialog "getLineType" dcl_id)) (exit) ) (start_list "lt") (mapcar 'add_list lst) (end_list) (action_tile "accept" (strcat "(progn" "(setq nom (nth (atoi (get_tile \"lt\")) lst)))" "(done_dialog))" ) ) (start_dialog) (unload_dialog dcl_id) nom ) (defun c:LayerProp (/ ent lay col lt dcl_id what_next ent) (while (not (setq ent (car (entsel "\nSélectionnez un objet sur le calque à modifier: ")) ) ) ) (setq lay (cdr (assoc 8 (entget ent))) lay_lst (tblsearch "LAYER" lay) col (cdr (assoc 62 lay_lst)) lt (cdr (assoc 6 lay_lst)) ) (setq dcl_id (load_dialog "LayerProp.dcl")) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "LayerProp" dcl_id)) (exit) ) (set_tile "name" (cdr (assoc 2 lay_lst))) (set_tile "lt_n" lt) (set_tile "col_n" (itoa col)) (action_tile "lt" "(done_dialog 3)") (action_tile "col" "(done_dialog 4)") (setq what_next (start_dialog)) (cond ((= what_next 3) (if (setq temp (getLineType)) (setq lt temp) ) ) ((= what_next 4) (if (setq temp (acad_colordlg col)) (setq col temp) ) ) ) ) (unload_dialog dcl_id) (command "_layer" "_lt" lt "" "_c" col "" "") (princ) )
  22. (gile)

    lt 2005

    Les nombres 050000 après bl:name et bl:layer vuelent dire que le non du bloc ou du claque peuvent contenir jusqu'à 50 caractères Si le nom de ton calque c'est : NIV1-CFO-ECL ça fait 12 caractères, donc aucun problème.
  23. (gile)

    Gerer enregidtere avec lisp

    Un peu plus élaboré, il est demandé de spécifier le répertoire où enregistrer le dxf (taper entrer pour le répertoire du dessin par défaut) et le nom du fichier. C'est le jeu de sélection qui est enregistré, pas le dessin entier. (defun c:ss2dxf (/ path file ss) (setq dir "") (while (not (vl-file-directory-p dir)) (if (= "" (setq dir (getstring T (strcat "\nSpécifiez le chemin du répertoire: (getvar "DWGPREFIX") ">: " ) ) ) ) (setq dir (getvar "DWGPREFIX")) ) ) (while (findfile (strcat dir (setq file (getstring T "\nSpécifiez le nom du fichier: ")) ".dxf" ) ) (princ (strcat "\n\"" file "\" existe déjà.")) ) (if (setq ss (ssget)) (command "_saveas" "dxf" "_v" "2000" "_o" ss "" "16" (strcat dir file ".dxf")) ) (princ) )
  24. (gile)

    Fermer Polylignes !!

    Pour que le premier LISP ferme la poly à la fin, il suffit de rajouter "_c" entre pause et "". Je modifie le code ci-dessus.
  25. (gile)

    Fermer Polylignes !!

    Salut, Tu ne le vois pas à l'écran, mais le LISP déplace la région (centre de gravité en 0,0) avant de récupérer les moments d'inertie, puis le replace dans sa position initiale. Si tu veux que la région reste en 0,0 supprime ou met un point virgule devant la ligne : [surligneur](vla-Move (car reg) (vlax-3d-point '(0 0 0)) (vlax-3d-point cen))[/surligneur] Je rajoute le périmètre aux informations données dans le message. Si tu préfères que ces informations apparaissent dans la fenêtre de texte, c'est possible aussi. Voici un petit LISP qui fait ça, je pense qu'il est inutile de clore ou de faire un overkill puisque tous les objets sont ensuite transformés en une région unique par le LISP prop_profil. (defun c:JoinPoly (/ ss) (if (setq ss (ssget '((0 . "ARC,LINE,LWPOLYLINE")))) (if (or (= 1 (getvar "PEDITACCEPT")) (vl-every '(lambda (x) (= "LWPOLYLINE" (cdr (assoc 0 (entget x))))) (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) ) ) (command "_.pedit" "_m" ss "" "_j" "_j" "_b" pause "_c" "") (command "_.pedit" "_m" ss "" "_y" "_j" "_j" "_b" pause "_c" "") ) ) (princ) ) [Edité le 23/11/2006 par (gile)] [Edité le 23/11/2006 par (gile)]
×
×
  • 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é