Aller au contenu

kclement

Membres
  • Compteur de contenus

    85
  • Inscription

  • Dernière visite

Tout ce qui a été posté par kclement

  1. Bonjour, Tu trouveras le lisp RBLOC ici : http:// http://www.cadxp.com/sujetXForum-11303.htm Ca remplace les blocs de ton choix par un autre, en conservant ou pas l'echelle, les attributs... Merci à Patrick_35 ! A+ [Edité le 24/11/2010 par kclement]
  2. Bonjour, J'utilise très souvent le lisp MAT pour changer tous mes attributs d'un bloc d'un seul coup (pour des cartouches c'est vraiment nickel). Mais parfois je voudrais le faire mais sur certaisns onglets de présentation uniquement. Pensez vous qu'il est possible d'adapter le lisp pour faire ça ? Merci.
  3. Bon, je retire ma question : j'avais zappé l'option OVERLAP qu'il propose !!! Enfin, ça servira peut-être à quelqu'un quand même ! A+
  4. Bonjour, J'ai trouvé ceci sur Cadalyst : ;;; CADALYST 03/08 www.cadalyst.com/code ;;; Tip 2276: BRICKS.lsp Brick Hatch Generator (c) 2008 Raymond Rizkallah ;;;============================================================================= ;;; "BRICKS.LSP" : BRICKS HATCH PATTERN CREATOR ;;;;;; * Bricks patterns are created on the fly, with length, height & joint size of ;;; your choice.;;; * Two different heights can be used. ;;; * Overlapping bricks is optional. ;;; * Afterwards, BHATCH command is invoked with the new pattern name as default. ;;;;;; "Your imagination is the limit" - Raymond Rizkallah - Nov./2007 ;;;============================================================================== (defun C:BRK () (prompt " **Bricks, Tiles, & Stone Masonry Hatch Creator**") (if (null (numberp l1)) (setq l1 15.0) ) (if (null (numberp h1)) (setq h1 5.0) ) (if (null (numberp h2)) (setq h2 3) ) (if (null (numberp j1)) (setq j1 0.5) ) (setq dir-name (findfile "acad.pat") str-len (strlen dir-name) ) (setq dir-name (substr dir-name 1 (- str-len 8))) (while (findfile (strcat dir-name (setq b-name (getstring "\n Brick pattern name to create: ")) ".pat" ) ) (alert "\nPattern name already exist... Please try again. ") ) (setq nl1 (getdist (strcat "\n Brick length <" (rtos l1) ">: "))) (setq nh1 (getdist (strcat "\n First height <" (rtos h1) ">: "))) (setq nh2 (getdist (strcat "\n Second height <" (rtos h2) ">: "))) (setq nj1 (getdist (strcat "\n Joint size <" (rtos j1) ">: "))) (initget "Yes No") (setq opt (getkword "\n Overlap bricks? [Yes/No] : ")) (if (null opt) (setq opt "Yes") ) (if nl1 (setq l1 nl1) ) (if nh1 (setq h1 nh1) ) (if nh2 (setq h2 nh2) ) (if nj1 (setq j1 nj1) ) (setq l1x (/ l1 2.0)) (setq j1x (/ j1 2.0)) ;------------------- Overlapped ----------------------------------- (setq p-lst1 (list ;___ brick hatch pattern name (overlapped bricks) (strcat "*" b-name ", " "L=" (rtos l1 2 2) " H1=" (rtos h1 2 2) " H2=" (rtos h2 2 2) " Jt=" (rtos j1 2 2) " - Ovr." ) ;___ ;___ brick-1: line 1 (strcat "0, " "0,0, " "0," (rtos (+ h1 j1 h2 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-1: line 2 (strcat "0, " "0," (rtos h1 2 3) ", " "0," (rtos (+ h1 j1 h2 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-1: line 3 (strcat "90, " "0,0, " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h1 2 3) ",-" (rtos (+ j1 h2 j1) 2 3) ) ;___ brick-1: line 4 (strcat "90, " (rtos l1 2 3) ",0, " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h1 2 3) ",-" (rtos (+ j1 h2 j1) 2 3) ) ;___ ;___ brick-2: line 1 (strcat "0, " (rtos (+ l1x j1x) 2 3) "," (rtos (+ h1 j1) 2 3) ", " "0," (rtos (+ h2 j1 h1 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-2: line 2 (strcat "0, " (rtos (+ l1x j1x) 2 3) "," (rtos (+ h1 j1 h2) 2 3) ", " "0," (rtos (+ h1 j1 h2 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-2: line 3 (strcat "90, " (rtos (+ l1x j1x) 2 3) "," (rtos (+ h1 j1) 2 3) ", " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h2 2 3) ",-" (rtos (+ j1 h1 j1) 2 3) ) ;___ brick-2: line 4 (strcat "90, " (rtos (+ l1x j1x l1) 2 3) "," (rtos (+ h1 j1) 2 3) ", " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h2 2 3) ",-" (rtos (+ j1 h1 j1) 2 3) ) ) ) ;end list/setq ;------------------- Not Overlapped ------------------------------- (setq p-lst2 (list ;___ brick hatch pattern name (not overlapped) (strcat "*" b-name ", " "L=" (rtos l1 2 2) " H1=" (rtos h1 2 2) " H2=" (rtos h2 2 2) " Jt=" (rtos j1 2 2) " - Str." ) ;___ ;___ brick-1: line 1 (strcat "0, " "0,0, " "0," (rtos (+ h1 j1 h2 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-1: line 2 (strcat "0, " "0," (rtos h1 2 3) ", " "0," (rtos (+ h1 j1 h2 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-1: line 3 (strcat "90, " "0,0, " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h1 2 3) ",-" (rtos (+ j1 h2 j1) 2 3) ) ;___ brick-1: line 4 (strcat "90, " (rtos l1 2 3) ",0, " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h1 2 3) ",-" (rtos (+ j1 h2 j1) 2 3) ) ;___ ;___ brick-2: line 1 (strcat "0, " "0," (rtos (+ h1 j1) 2 3) ", " "0," (rtos (+ h2 j1 h1 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-2: line 2 (strcat "0, " "0," (rtos (+ h1 j1 h2) 2 3) ", " "0," (rtos (+ h1 j1 h2 j1) 2 3) ", " (rtos l1 2 3) ",-" (rtos j1 2 3) ) ;___ brick-2: line 3 (strcat "90, " "0," (rtos (+ h1 j1) 2 3) ", " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h2 2 3) ",-" (rtos (+ j1 h1 j1) 2 3) ) ;___ brick-2: line 4 (strcat "90, " (rtos l1 2 3) "," (rtos (+ h1 j1) 2 3) ", " "0," (rtos (+ l1 j1) 2 3) ", " (rtos h2 2 3) ",-" (rtos (+ j1 h1 j1) 2 3) ) ) ) ;end list/setq ;------------------------------------------------------------------ (if (= opt "Yes") (setq p-lst p-lst1) (setq p-lst p-lst2) ) (setq n1 1) (foreach n p-lst (if (> (strlen n) 80) (progn (alert (strcat "\n Line [" (itoa n1) "] Pattern Definition Contains more than 80 Characters." "\n " ) ) (EXIT) ) ) (setq n1 (1+ n1)) ) (setq f (open (strcat dir-name b-name ".pat") "w")) (foreach n p-lst (write-line n f)) (close f) (princ) (alert (strcat "\n* File [" b-name ".pat] Created in the Following Directory:" "\n [" dir-name "]" "\n " "\n Press to Continue with BHATCH Command." ) ) (setvar "hpname" b-name) (setvar "hpscale" 1) (princ) (command "_bhatch") ) ;end C:BRICK;;;==================================================================== (PROMPT "\n Use [C:BRK] to create bricks & tiles hatch patterns. " ) (PRINC) Ca crée un motif de briques (avec 2 hauteur de briques différentes possibles) et lance la commande hachure avec le motif qui vient d'être créé. Ma question est la suivante : peut-on adapter ce lisp pour avoir des lignes et des colonnes alignées (pas de joints croisés) ? Merci
  5. kclement

    Super ellipse

    Bonjour rhymone, Pour répondre à ta question, non, je suis architecte (je sais que cetains membre de ce forum pensent que les archis travaillent n'importe comment, mais je vous jure qu'on ne travaille pas tous QUE dans le calque 0 !) Pour (gile), merci ça a bien fonctionné, sauf qu'il manquait la possibilité d'entrer la valeur n, j'ai donc ajouté la ligne : (setq n (getreal "\nSpécifiez la valeur de n: ")) (merci Carboleum) et c'est parfait ! A bientôt !
  6. kclement

    Super ellipse

    Super, merci (gile), je teste ça (enfin, mon collègue...)
  7. kclement

    Super ellipse

    Merci de vos réponses. En fait, mon collègue m'a expliqué que c'est une autre géométrie qu'une ellipse, c'est une sorte d'ellipse écrasée qui tend vers le rectangle (qui s'appelleait superellipse)... Et apparemment le résultat obtenu lui convient tout à fait. D'accord, mais je mets ça à quel endroit dans le code ? J'utilise pas mal de lisps péchés sur ce forum, mais j'ai encore du mal à identifier tout ce que contient un lisp...!
  8. kclement

    Super ellipse

    Bonjour, Un collègue a trouvé ce LISP pour dessiner une super ellipse : ;;SUPERELLIPSE ;;By carlB AutoLisp forum for herrgrek ;; ;x=a*|cos t|^(2/n) ;;y=b*|sin t|^(2/n) ;;where: (pi/2)≥ t ≤ pi ;; ;;a=90 ;;b=45 ;;n=2.5 (princ "Type SUPER to start") (defun c:super (/ a b n ang_i ang_min ang_max ptlist plotpts pt_i pt) ;;defaults (setq ptlist nil Plotpts nil) (setq a 90 b 45 n 2.5 ang_min (/ pi 2) ang_max pi ) (setq ang_step (/ pi 360));;angular step for calculations (setq ang_i ang_min) (while (<= ang_i ang_max) (setq x (* a (expt (abs (cos ang_i)) (/ 2 n)))) (setq y (* b (expt (abs (sin ang_i)) (/ 2 n)))) (setq pt_i (list x y)) (setq PtList (cons pt_i ptlist)) (setq ang_i (+ ang_i ang_step)) ) (setq ptlist (reverse ptlist)) (setq Plot_base (getpoint "\nPick origin for plot: ")) (setq PlotPts (mapcar '(lambda (xy) (mapcar '+ Plot_Base xy)) PtList)) (command "_pline") (foreach Pt PlotPts (command pt) ) (command "") (princ) ) Ca fonctionne bien mais le problème c'est qu'on est obligé de rentrer dans le lisp pour changer les valeurs, a, b et n. Y aurait-il un moyen pour que le lisp demande d'entrer ces valeurs directement dans la ligne de commande ? Merci d'avance...
  9. Bonjour, Je viens d'essayer ce lisp sur Autodesk Architectural Desktop 2008. Il met bien les blocs au bon Z mais après il fait un ATTSYNC et là, tous mes attributs passent à 0.00 (valeur par défaut de l'attribut) ! Si ensuite je fais juste une annulation, l'attribut revient à la bonne valeur mais le bloc reste avec le Z correspondant... Vous me direz, en attendant ça peut marcher comme ça, mais bon, ce serait mieux si ça faisait pas ça, vous trouvez pas ? Merci de vos réponses...
  10. OK, merci de ta réponse, Je n'avais testé qu'avec un bloc à 1 attribut et un autre à 2 attributs... mais je n'espérais quand même pas que le lisp crée des attributs ! En tous cas merci pour tes lisp (et ceux de Gile), j'en utilise très très régulièrement !
  11. Bonjour à tous, J'utilise le lisp CAT.LSP de Patrick_35 (qui me rend bien service, merci Patrick !!!) , mais il ne semble fonctionner correctement que sur des blocs contenant un seul attribut ; je m'explique : - Si je clique sur un attribut (le seul d'un bloc) puis un attribut (le seul d'un autre bloc - identique ou pas) tout fonctionne à merveille ! - Si je clique sur un attribut (le seul d'un bloc) puis un attribut d'un bloc qui en contient plusieurs, c'est le premier de la liste des attributs qui est modifié et pas celuisur lequel j'ai cliqué. L'inverse est vrai aussi (un attribut d'un bloc qui en contient plusieurs en source vers en attribut unique)... Est-ce que j'ai raté quelque chose ? Merci d'avance de vos réponses... Kclement
  12. :( Ben, j'comprends pô : j'avais posté une réponse mais elle apparait pô... J'ai du faire une fausse manip ! En fait, je vous remerciais pour vos réponses, bien sûr, et surtout je disais que y avait des jours comme ça, où on retourne le problème dans presque tous les sens sauf 1, et celui là le bon évidemment ! Je disais aussi que ça marchait nickel et je me demandais si il y avait moyen d'insérer cette valeur dans un bloc à attribut (qui se mettrait dans le bon sens, comme le texte du lisp)... A bon entendeur... ;) Sinon, pour répondre à Zebulon, si je change le nom de mon étiquette et que je lance la synchronisation de la commande BATTMAN, je pers bien mes valeurs (ou alors y a encore un truc qui m'a échappé...) Encore merci à vous, Kclement
  13. Bonjour à tous ! Bon d'accord j'exagère un peu, mais être brossé dans le sens du poil c'est toujours plaisant non ?! Blagues à part, Non, Zebulon, le bloc est à l'altitude 0 (quoi qu'il m'arrive de faire des bouts de 3D de temps en temps...) Ceci dit, j'ai testé ton lisp et il fonctionne nickel. Ce qui aurait été top, c'est que le texte s"inscrive sur le dessin... C'est vrai que d'habitude je prends le temps de chercher (c'est pour ça que finalement je ne poste pas de messages très souvent !), mais hier je n'ai pas eu le temps... Mais c'est vrai aussi que parfois il n'est pas facile de trouver si les massages n'ont pas un sujet explicite par exemple, ou si on fait une recherche avec plusieurs mots... Alors, j'ai testé le lisp de l'autre sujet et malgré la remarque de Zebulon sur le tagstring, j'ai toujours ce message "type d'argument incorrect: stringp nil". J'ai testé dans un dessin vierge avec un bloc du nom de "alt" avec une étiquette et une iinvite "alt" et là ça fonctionne... Visiblement ça vient de l'étiquette de l'attribut. Mais le problème c'est que si je change le nom de l'étiquette en "alt" et que je synchronise dans mon dessin, je perd toutes mes valeurs... Please help, parce que c'est exactement ce que je cherche et j'aimerai bien l'utiliser sur un fichier existant... Merci à vous pour votre réactivité en tous cas... et votre sympathie (encore une petite couche de pommade ?! ;) ) [Edité le 20/4/2010 par kclement] [Edité le 20/4/2010 par kclement]
  14. Ce matin, j'ai fait un rêve : J'avais des points altimétriques (un bloc composé dun point et d'un seul attribut) et j'ai rêvé qu'en choisissant deux blocs, un lisp me donnait la pente (en %) en récupérant la distance entre les 2 blocs et la valeur de leur attribut... Puis je me suis réveillée, et là j'ai espéré que les gentils membres de CadXP pourraient programmer un lisp capable de faire ça... (parce que même dans mes rêves les plus fous je ne saurais jamais programmer un de ces lisp !) Merci d'avance... kclement
  15. Ce matin, j'ai fait un rêve : J'avais des points altimétriques (un bloc composé dun point et d'un seul attribut) et j'ai rêvé qu'en choisissant deux blocs, un lisp me donnait la pente (en %) en récupérant la distance entre les 2 blocs et la valeur de leur attribut... Puis je me suis réveillée, et là j'ai espéré que les gentils membres de CadXP pourraient programmer un lisp capable de faire ça... (parce que même dans mes rêves les plus fous je ne saurais jamais programmer un de ces lisp !) Merci d'avance... kclement
  16. Bonjour, Ci-dessous le code du lisp : ;;;================================================================= ;;; ;;; CPSCU.LSP V1.00 ;;; ;;; Importer des Scu ;;; ;;; Copyright (C) Patrick_35 ;;; ;;;================================================================= (defun c:cpscu(/ dbx dcl dcl_id doc fic lay lst n msgbox Ouvrir_dessin_dbx res sty) ;;;--------------------------------------------------------------- ;;; ;;; Message ;;; ;;;--------------------------------------------------------------- (defun MsgBox (Titre Bouttons Message / Reponse WshShell) (vl-load-com) (setq WshShell (vlax-create-object "WScript.Shell")) (setq Reponse (vlax-invoke WshShell 'Popup Message 0 Titre (itoa Bouttons))) (vlax-release-object WshShell) Reponse ) ;;;--------------------------------------------------------------- ;;; ;;; Accéder a un fichier dessin ;;; ;;;--------------------------------------------------------------- (defun Ouvrir_dessin_dbx(dwg / dbx) (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16) (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument")) (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2)))) ) (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-open (list dbx dwg))) nil dbx ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine principale ;;; ;;;--------------------------------------------------------------- (vl-load-com) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (if (setq dcl (findfile "Copier SCU.dcl")) (if (setq fic (getfiled "Sélectionnez le dessin source" (getvar "dwgprefix") "dwg" 16)) (if (setq dbx (Ouvrir_dessin_dbx fic)) (progn (setq dcl_id (load_dialog dcl) pos "0" doc (vla-get-usercoordinatesystems (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for sty (vla-get-usercoordinatesystems dbx) (setq lst (append lst (list (vla-get-name sty)))) ) (if lst (progn (new_dialog "cpscu" dcl_id "") (start_list "cpscu") (mapcar 'add_list lst) (end_list) (set_tile "titre" "Importer des SCU V1.00") (set_tile "cpscu" pos) (mode_tile "cancel" 2) (action_tile "cpscu" "(setq pos $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq res (start_dialog)) (if (eq res 1) (progn (while (not (eq pos "")) (setq n (read pos) lay (append lay (list (vla-item (vla-get-usercoordinatesystems dbx) (nth n lst)))) pos (substr pos (+ 2 (strlen (itoa n))) (strlen pos)) ) ) (vla-CopyObjects Dbx (vlax-safearray-fill (vlax-make-safearray vlax-vbObject (cons 0 (1- (length lay)))) lay ) doc) (msgbox "CPSCU" 48 "Importation des scu terminé.") ) ) (vlax-release-object dbx) ) (msgbox "CPSCU" 16 "Pas de SCU à importer.") ) ) (msgbox "CPSCU" 16 (strcat "Impossible d'ouvrir le fichier\n" fic)) ) ) (msgbox "CPSCU" 16 "Fichier Copier SCU.DCL introuvable.") ) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (princ) ) (princ "\nCopier SCU.LSP chargé. Tapez CPSCU pour l'exécuter") (princ) et le code du DCL : // ================================================================= // // CPSCU.DCL V1.00 // // Copyright (C) Patrick_35 // // ================================================================= cpscu : dialog { key = "titre"; fixed_width = true; alignment = centered; is_cancel = true; width = 60; : list_box {label= "SCU"; key = "cpscu"; height = 20; multiple_select=true;} spacer; ok_cancel; } Peut-être que ça vous éclairera...
  17. Bonjour fabcab, J'ai testé et ça n'a pas marché, je m'explique : J'ai d'abord exporté depuis mon fichier où dse trouvent les vues que je veux récupérer. Il me crée un fichier texte, ensuite je retourne dans mon fichier où je veux récupérer mes vues, et là j'importe le fichier texte. Il m'écrit : Following views imported: cdrs supplémentaire dans la paire pointée en entrée Mais je n'ai rien dans ma liste de vues...
  18. Bonjour, J'ai chargé sur le forum le lisp CPSCU.LSP écrit par Patrick_35 qui copie des SCU d'un fichier à l'autre. Ca fonctionne parfaitement et je l'utilise souvent ! Seulement je me demandais s'il était possible de faire la même chose pour les vues ? Merci d'avance de vos réponses qui, je n'en doute pas, seront rapides et pédagogiques (un peu de pommade ça fait pas de mal !!! ;) ) Kclement
  19. kclement

    vue 3D et pdf

    Bon, merci Ludwig, mais j'avais déjà peu d'espoir en posant la question, donc maintenant encore moins...
  20. kclement

    vue 3D et pdf

    Bonjour Muriel, Merci de ta réponse. J'avais effectivement déjà essayé la commande APLANIRGEOM, c'est d'ailleurs la solution pour laquelle j'avais opté en attendant. Ce qui est dommage, c'est que si je modifie mon volume, je suis obligée de recommencer la manip, en plus cette commande prend tous les objets du dessin. (Quant à la projection en ligne cachée j'en parle même pas , Autodesk Architectural Desktop fait n'importe quoi !) Par contre je ne connaissais pas SOLPROF : pas mal mais c'est le même problème si je modifie mon modèle, et comme je le disais à Chanoine, je peux avoir 50 présentations, c'est donc un peu fastidueux...
  21. kclement

    vue 3D et pdf

    Bonjour Chanoine, Dans la théorie ça pourrait se faire mais dans la pratique... Je m'explique Je dois faire des plans techniques, donc avec quelques aplats ou des hachures éventuellement mais pas de rendu car j'ai absolument besoin de voir les traits, mais surtout j'ai des présentations avec dans le même onglet un cartouche, des fenêtres en 2D et d'autres en 3D. Voici un exemple : http://uploads.imagup.com/10/1244118840_exemple.jpg C'est un carnet de bordures, je peux avoir plus de 50 bordures différentes (donc autant de pages en pdf) à produire donc je peux pas m'amuser à faire du rendu à chaque fois... [Edité le 4/6/2009 par kclement]
  22. kclement

    vue 3D et pdf

    Bonjour à tous, J'ai dessiné des aménagements de carrefour en 3D avec entre autres des solides. Seulement j'imprime en pdf des fenêtres en vue 3D avec un style visuel autre que Filaire 2D, le résutat est (passez-moi l'expression !) dégueulasse, c'est à dire complètement pixellisé. J'ai beau essayer d'augmenter la résolution, essayer différentes imprimantes pdf, même en dwf c'est toujours pixellisé... Connaissez-vous un moyen d'avoir des impressions de représentation 3D propres ? Merci d'avance
  23. kclement

    double décalage

    Merci Bonuscad ça marche nickel !
  24. Bonjour, Mon agence possède Acdsee 8, et je dois créer une liste de mots-clés IPTC (pas propres à Acdsee donc) pour gérer notre bibliothèque d'images. Jusque là, j'ai fait des essais de création, d'affectation et de recherche, ça marche très bien. SAUF QUE, dans quand je vais dans "modifier la liste" dans la boite de dialogue où j'assigne les mots-clés, je ne peux pas retirer les mots-clés dont je ne veux plus, je peux seulement en ajouter. Savez-vous comment je peux faire pour modifier cette liste (peut-être est elle stockée dans un fichier texte comme pour adobe bridge qui est dans un fichier xml) Merci d'avance
  25. Bonjour, J'ai glâné sur le forum deux lisps qui font le même boulot c'est à dire une décalage de chaque côté de l'objet. Le premier n'efface pas l'objet source (et ne fonctionne pas avec les arcs) et le second efface l'ojet source. Voici les codes (ce ne sont pas les commandes de lancement d'origine) (defun c:ddc (/ vdist entite1 pt1 pt2 entitepoints anglepl PtGauche PtDroite) (if (setq Vdist (getdist "\n Distance de décalage ou valider la précédente ?:")) (setvar "offsetdist" Vdist) (setq Vdist (getvar "offsetdist")) ) (setq entité1 (entget (car (setq select-ent (entsel "Selectionner la ligne ou la polyligne:"))) ) ) (if (eq (cdr (assoc 0 entite1)) "LINE");;; determine si l'objet est ligne ou polyligne (Setq pt1 (cdr (assoc 10 entite1)) pt2 (cdr (assoc 11 entite1))) (setq entitepoints (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) entité1) ) pt1 (car entitepoints) pt2 (cadr entitepoints)) ) (setq anglepl (angle Pt1 Pt2)) (setq PtGauche (polar Pt1 (+ anglepl (/ pi 2)) vdist)) (setq PtDroite (polar Pt1 (- anglepl (/ pi 2)) vdist)) (command "_offset" "" select-ent PtGauche "" ) (command "_offset" "" select-ent PtDroite "" ) (princ) ) (defun c:ddc2 ( / val_offset ent vla_obj) (setq val_offset (getdist (strcat "\nLargeur du décalage <" (rtos (getvar "USERR1")) ">:"))) (if (not val_offset) (setq val_offset (getvar "USERR1")) (setvar "USERR1" val_offset)) (while (null (setq ent (entsel "\nChoix de l'objet à décaler de part et d'autre: ")))) (setq ent (car ent)) (setq vla_obj (vlax-ename->vla-object ent)) (vlax-invoke-method vla_obj "Offset" (- (/ val_offset 2.0))) (vlax-invoke-method vla_obj "Offset" (/ val_offset 2.0)) (entdel ent) (princ) ) Ma requête est la suivante : peut-on avoir un seul lisp (qui accepte tous les objets que la commande décaler d'autocad accepte) qui demande à la fin si on veut effacer l'objet source ? Merci d'avance
×
×
  • 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é