-
Compteur de contenus
1 113 -
Inscription
-
Dernière visite
-
Jours gagnés
42
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Luna
-
[Résolu] Copier Coller texte et effacer l'origine
Luna a répondu à un(e) sujet de yusukens82 dans Routines LISP
Yes merci @VDH-Bruno, J'avoue avoir lu le sujet en diagonal donc je me doutais que je ferais une erreur, désolée. Je ne savais pas que l'on pouvait (redraw) une entité pour le coup en changeant son état (highlight, masked, etc...), comme quoi.. :3 Bisous, Luna -
[Résolu] Copier Coller texte et effacer l'origine
Luna a répondu à un(e) sujet de yusukens82 dans Routines LISP
Cf. Edit de mon précédent message car ta solution peut engendrer des problèmes selon la méthode de travail de chacun... -
[Résolu] Copier Coller texte et effacer l'origine
Luna a répondu à un(e) sujet de yusukens82 dans Routines LISP
Coucou, Oki je vois d'où vient le soucis dans ce cas 🙂 Les vecteurs sont tracés à partir des coordonnées SCG de l'objet dans le SCU (donc le rectangle est très sûrement dans ton dessin, mais avec les mauvaises coordonnées). Il faudrait donc translater (trans) les coordonnées permettant de créer les vecteurs depuis le SCG vers SCU (si SCG courant alors cela fera simplement une translation SCG>SCG :3) Donc remplacer (setq hg (list (car bg) (cadr hd)) bd (list (car hd) (cadr bg)) ) par (setq hg (trans (list (car bg) (cadr hd)) 0 1) bd (trans (list (car hd) (cadr bg)) 0 1) ) je pense ? Edit: Changer la variable WORLDUCS est une autre solution mais je conseille dans ce cas de vérifier également la valeur de UCSFOLLOW dans ce cas (car si UCSFOLLOW = 1, tu risques d'avoir des surprises) ! Et également de prévoir une gestion d'erreur pour remettre le dessin en ordre en cas de soucis ^^ Bisous, Luna -
Coucou, Maybe c'est hors sujet mais... Personnellement j'ai eu de nombreux problèmes sur AutoCAD lorsque je test du LISP en ligne de commandes. Notamment un problème fort étonnant : la double validation (uniquement lorsque j'utilise ESPACE, et non ENTER). En clair, la barre espace équivaut à 2 espaces, et non 1 seul. Il m'a fallu un peu de temps pour me rendre compte de la source (en tout cas d'une source sûre, du moins), mais cela apparaît lorsque que l'on écrit le caractère ` (ALTgr+7) en ligne de commande (yes, c'est très spécifique). Par exemple si on essaye d'écrire (ssget "_X" '((0 . "INSERT") (2 . "`*U*"))) On obtient le problème (dans tous les dessins ouverts). Le problème n'apparaît pas si la ligne ci-dessus est copiée/collée en ligne de commande, mais si elle est tapée directement en ligne de commande, alors le problème intervient. Donc par exemple cela équivaut, par exemple pour la commande DEPLACER avec présélection à entrer le nom de la commande (DEPLACER), faire ESPACE ce qui lance la commande ET prend l'option par défaut <Déplacement> (donc le premier point de déplacement est 0,0,0). Idem pour la commande COPIER, etc... Bref, la seule soluce que j'avais c'était de redémarrer AutoCAD. Donc je pense être hors sujet pour le coup, mais le fait que tu ais l'option <Déplacement> qui soit directement choisie par défaut lors de la commande DEPLACER ou COPIER me fait penser à ce genre de bug. Je trouve quelques forums relatifs mais aucune solution malheureusement. Désolée.. https://forums.autodesk.com/t5/autocad-forum/move-defaults-to-displacement/td-p/9551484 Bisous, Luna
-
[Résolu] Copier Coller texte et effacer l'origine
Luna a répondu à un(e) sujet de yusukens82 dans Routines LISP
oki doki ! Désolée, je n'ai pas pris le temps de vérifier le fichier .lsp >w< Profites bien des tes petits-enfants ! 🙂 Bisous, Luna -
[Résolu] Copier Coller texte et effacer l'origine
Luna a répondu à un(e) sujet de yusukens82 dans Routines LISP
Coucou, Les (grdraw) disparaissent si tu fais des actions de zoom 🙂 Je n'ai pas regardé le code LISP donc je dis sûrement des bêtises car c'est peut-être déjà pris en compte... Mais éventuellement le problème vient de là. Si jamais tu veux mettre en surbrillance un jeu de sélection, il faut ajouter la ligne : (sssetfirst nil <SelectionSet>) Avec <SelectionSet> le nom de ta variable qui comporte ton jeu de sélection. Dans ton cas, je dirais qu'il faudrait faire : ; ... (entdel tex1) (sssetfirst nil (ssadd tex2)) ; <--- Ligne à ajouter ; ... Bisous, Luna -
Coucou, Je suis curieuse de comment tu génères ta polyligne "Tables_contour" pour le coup ? En suivant ton .dwg d'exemple, pourquoi indiquer la cotation de 19 alors que 2 rangées plus haut, les tables PV sont plus proches de la clôture/unité foncière ? Indiques-tu des cotations à des endroits purement arbitraires ou bien faut-il les indiquer à chaque sommet ? Pour être franche, je pense que l'automatisation est plus aisée en ayant des objets séparés (donc les contours des tables individuellement) et laisser à l'utilisateur cliquer sur les objets manuellement (ainsi l'utilisateur garde le contrôle sur la position des cotations qu'il juge nécessaire, tout comme la quantité). Si jamais tu veux une astuce pour obtenir le contour de chaque table en 2D à partir de PVcase, voici les manips que je réalise : 1. Sélectionner l'ensemble des tables PV 2. COPIER les tables sélectionnée à l'écart du projet (avec un décalage connu pour pouvoir ensuite re-décaler les tables par la suite par-dessus le projet initial) 3. Afficher uniquement le contour des tables (cocher "Optimized Frames" dans "Layout Generation Settings") 4. DECOMPOSER les tables copiées 5. Si tu as AutoCAD Civil 3D, tu peux utiliser l'outil natif de conversion des Polylignes 3D en Polylignes 2D. Sinon il faut passer par un LISP 6. Mettre les polylignes 2D dans le calque de ton choix et les DEPLACER au-dessus du projet initial 7. Remettre l'affichage des modules PV (décocher "Optimized Frames" dans "Layout Generation Settings") 8. Faire un REGEN, et supprimer les modules qui viennent d'apparaître à l'emplacement des tables décomposées Tu pourras ainsi avoir l'affichage des contours de tables indépendamment des objets 3D de PVcase (il te suffira de mettre 0 en élévation de tes polylignes 2D) Bisous, Luna
-
Coucou, Pour l'accrochage 3D, mettre OSNAPZ à 1, comme chat tu auras moins de problèmes je pense. Bisous, Luna
-
Coucou, Il sera beaucoup plus rapide de réaliser cette tâche à la main que de trouver une méthodologie fonctionnelle pour tous tes projets. Les cotations en rose et/ou vert ne suivent pas vraiment de règles strictes et facilement identifiable. Tout va dépendre d'à quel point il est nécessaire d'automatiser les choses. Ne serait-ce que pour connaître à partir de quel sommet du bloc il faut partir pour créer la cotation. Du point de vue de l'humain c'est facilement identifiable mais du point de vue d'un programme, la tâche est bien plus complexe qu'il n'y paraît. Admettons que l'on soit toujours en SCG, que tu n'implantes pas tes tables PV par rapport à un relevé topo ni même avec un azimuth différent de 0°, alors dans ce cas on pourrait concevoir quelque chose, mais si l'une de ces hypothèses n'est pas vraie, alors le programme fera faux obligatoirement (donc reprise manuelle). Bref, si les conditions sont toujours vraies pour toi, alors on peut essayer de voir ce qu'il est possible de faire, mais autrement, je pense sincèrement que c'est bien plus rapide de le faire à la main. Bisous, Luna
-
Coucou, Essaye avec quelque chose comme ceci : (defun c:adat (/ att lst pos dec val tag nam efn add ss n) (if (and (setq att (car (nentsel "\nSélectionnez un attribut à modifier: "))) (setq lst (entget att)) (= (cdr (assoc 0 lst)) "ATTRIB") (numberp (read (setq val (cdr (assoc 1 lst))))) (setq dec (if (setq pos (vl-string-position (ascii ".") val)) (- (strlen val) pos 1) 0 ) ) (setq tag (cdr (assoc 2 lst))) (setq nam (cdr (assoc 2 (entget (cdr (assoc 330 lst)))))) (setq efn (vla-get-EffectiveName (vlax-ename->vla-object (cdr (assoc 330 lst))))) ) (if (and (setq add (getreal "\nEntrez la valeur à ajouter ou soustraire: ")) (princ "\nSélectionnez les blocs à modifier.") (setq ss (ssget (list '(0 . "INSERT") '(66 . 1) (cons 2 (if (equal nam efn) nam (strcat "`*U*," efn)))))) (setq n 0) ) (progn (setq dz (getvar 'dimzin)) (setvar 'dimzin (Boole 4 8 (getvar 'dimzin))) (while (setq blc (ssname ss n)) (setq att (entnext blc) lst (entget att) ) (if (= efn (vla-get-EffectiveName (vlax-ename->vla-object blc))) (while (= (cdr (assoc 0 lst)) "ATTRIB") (if (and (= (cdr (assoc 2 lst)) tag) (numberp (setq val (read (cdr (assoc 1 lst))))) ) (progn (entmod (subst (cons 1 (rtos (+ val add) 2 dec)) (assoc 1 lst) lst) ) (entupd blc) ) ) (setq att (entnext att) lst (entget att) ) ) ) (setq n (1+ n)) ) (setvar 'dimzin dz) ) ) (princ "\nL'objet sélectionné n'est pas un attribut.") ) (princ) ) Bisous, Luna
-
Coucou, Désolée, je n'ai pas eut le temps de regarder ton code mais j'avais fait une version de (ListBox) avec une barre de recherche justement : ; +-----------------------------------------------------------------------------------------------------------------------------------------------+ ; ; | | ; ; | HISTORICAL TRACKING FILE OF THE FUNCTION | ; ; | --{ ListBox }-- | ; ; | | ; ; +-----------------------------------------------------------------------------------------------------------------------------------------------+ ; ; []-----------------------[] ListBox []-----------------------[] ; ;--- Date of creation > 15/04/2017 ; ;--- Last modification date > 11/05/2022 ; ;--- Author > (gile)/Luna ; ;--- Version > 4.0.0 ; ;--- Class > "DbLst" ; ;--- Goal and utility of the main function ; ; Generates a temporary .dcl file for a single/multiple item selection dialog box in a list passed as an argument. ; ; ; ;--- Declaration of the arguments ; ; The function (ListBox) have 5 argument(s) : ; ; --• title > corresponds to the title of the dialog box ; ; (type title) = 'STR | Ex. : "Layers selection", "VP-RADPURGE: Layouts selection", "", ... ; ; --• msg > corresponds to the message you wish to display above the popup list ; ; (type msg) = 'STR | Ex. : "Multiple choice :", "Please, select one or more layer in the list below...", "", ... ; ; --• lst > corresponds to the list you wish to display in the popup-list. Each element of the list have to be a string ; ; (type lst) = 'LST | Ex. : '(label1 label2 label3 ... labeln), (layoutlist), ... ; ; --• value > is the default value to be selected when the dialog box is opened or list of default values ; ; (type value) = 'STR or 'LST | Ex. : (getvar "CLAYER"), "1030-01", ... ; ; --• flag > corresponds to the type of popup-list between a drop-down list, a single or multiple choice list ; ; (type flag) = 'INT | Ex. : 0 = drop-down list, 1 = single choice list or 2 = multiple choice list ; ; --• h > corresponds to the number of lines prompted in the list for list_box tiles ; ; (type h) = 'INT | Ex. : nil, 8, 15, 30, 23, ... ; ; ; ;--- List of dependent's functions ; ; --• "UtDac" ---> str2lst | v1.0.0 - 15/04/2007 ((gile)) ; ; ; ;--- List of local functions ; ; --• "BaLst" ---> vl-list-search | v1.0.0 - 13/12/2021 (Luna) ; ; --• "BaStr" ---> LB-select | v1.0.0 - 11/05/2022 (Luna) ; ; ; ;--- List of programs using this function ; ; --• "PsUcart" ---> c:DATECART | v2.0.4 - 04/07/2022 (Luna) ; ; --• "PsUcart" ---> c:NAMECART | v6.1.4 - 08/08/2022 (Luna) ; ; --• "PsViewp" ---> c:FNTAERIENNE | v2.0.1 - 04/07/2022 (Luna) ; ; --• "PsLaytb" ---> c:QuickLayoutSwitch | v3.0.0 - 04/07/2022 (Luna) ; ; --• "UtFiles" ---> c:VP-RADPURGE | v2.1.1 - 04/07/2022 (Luna) ; ; --• "UtGeodt" ---> c:ALTPOINT | v3.0.0 - 08/08/2022 (Luna) ; ; --• "UtGeodt" ---> c:LONGCUMUL | v3.0.2 - 04/07/2022 (Luna) ; ; --• "UtVarsy" ---> c:PSLTSCALECUSTOM | v2.0.1 - 04/07/2022 (Luna) ; ; ; ;--- Return ; ; The function (ListBox) returns the value ('flag' = 0 or 1) or the list of values ('flag' = 2) chosen by the user. ; ; Ex. : (ListBox "Layout Selection" "Select one layout :" (layoutlist) (getvar "CTAB") 1) returns the layout name selected or nil if canceled ; ; ; ;--- Historic list of the version with their modification status ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v4.0.0 | Add the 'h' argument to adjust the height of the list (= flag equals 1 or 2) and add the number of selected line if flag = 2 | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v3.1.0 | Add the possibility to set several default values if 'flag' = 2 and 'value' is a list type | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v3.0.1 | Add the (vl-list-search) function as a local function, for (ListBox) use only | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | | Added an edit_box adding the possibility to filter the list from a search (cf. (wcmatch) wildcard characters). To display the | ; ; | v3.0.0 | complete list, you must put a "*" in the search bar. The number of items displayed as well as the total number of items in | ; ; | | the list are displayed below the list as information. Added a local variable 'tlst' to avoid losing the original list data | ; ; | | while returning the correct results when a filter is applied. Added the (vl-list-search) function to the (ListBox) function. | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | | Removed the association list to work directly with a list of atoms and returns directly the value(s) selected by the user. | ; ; | v2.0.0 | Also added a default value to initialize the dialog box's list (if specified). Adapted the global width of the dialog box | ; ; | | according to the longest text in the list. | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v1.0.0 | Creation of the function | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; ; (defun ListBox (title msg lst value flag h / vl-list-search LB-select tmp file DCL_ID choice tlst) (defun vl-list-search (p l) (vl-remove-if-not '(lambda (x) (wcmatch x p)) l) ) (defun LB-select (str) (if (= "" str) "0 selected" (strcat (itoa (length (str2lst str " "))) " selected") ) ) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") tlst lst ) (write-line (strcat "ListBox:dialog{width=" (itoa (+ (apply 'max (mapcar 'strlen (mapcar 'vl-princ-to-string lst))) 5)) ";label=\"" title "\";") file ) (write-line ":edit_box{key=\"filter\";}" file ) (if (and msg (/= msg "")) (write-line (strcat ":text{label=\"" msg "\";}") file) ) (write-line (cond ( (= 0 flag) "spacer;:popup_list{key=\"lst\";}") ( (= 1 flag) (strcat "spacer;:list_box{height=" (itoa (1+ (cond (h) (15)))) ";key=\"lst\";}")) ( T (strcat "spacer;:list_box{height=" (itoa (1+ (cond (h) (15)))) ";key=\"lst\";multiple_select=true;}:text{key=\"select\";}")) ) file ) (write-line ":text{key=\"count\";}" file) (write-line "spacer;ok_cancel;}" file) (close file) (setq DCL_ID (load_dialog tmp)) (if (not (new_dialog "ListBox" DCL_ID)) (exit) ) (set_tile "filter" "*") (set_tile "count" (strcat (itoa (length lst)) " / " (itoa (length lst)))) (start_list "lst") (mapcar 'add_list lst) (end_list) (set_tile "lst" (cond ( (and (= flag 2) (listp value) ) (apply 'strcat (vl-remove nil (mapcar '(lambda (x) (if (member x lst) (strcat (itoa (vl-position x lst)) " "))) value))) ) ( (member value lst) (itoa (vl-position value lst))) ( (itoa 0)) ) ) (if (= flag 2) (progn (set_tile "select" (LB-select (get_tile "lst"))) (action_tile "lst" "(set_tile \"select\" (LB-select $value))") ) ) (action_tile "filter" "(start_list \"lst\") (mapcar 'add_list (setq tlst (vl-list-search $value lst))) (end_list) (set_tile \"count\" (strcat (itoa (length tlst)) \" / \" (itoa (length lst))))" ) (action_tile "accept" "(or (= (get_tile \"lst\") \"\") (if (= 2 flag) (progn (foreach n (str2lst (get_tile \"lst\") \" \") (setq choice (cons (nth (atoi n) tlst) choice)) ) (setq choice (reverse choice)) ) (setq choice (nth (atoi (get_tile \"lst\")) tlst)) ) ) (done_dialog)" ) (start_dialog) (unload_dialog DCL_ID) (vl-file-delete tmp) choice ) Sans oublier (str2lst) que je n'ai pas intégré dans le code ci-dessus (car tu l'utilises déjà). Bisous, Luna
-
mise à jour liste des variables systèmes AutoCAD 2022 et AutoCAD LT 2022
Luna a répondu à un(e) sujet de rebcao dans AutoCAD 2020-2024
Coucou @rebcao, J'ai voulu mettre à jour mes tableaux variables systèmes et commandes avec tes fichiers 2024 (encore un grand merci pour ton travail !) mais que ce soit depuis https://www.rebcao.net/astuces-téléchargements/ ou http://www.rebcao.fr/telechargements_outils_AutoCAD_gratuits_page1.html je n'ai que la liste des variables systèmes 2024 et non la liste des commandes... • Toutes les "variables systèmes AutoCAD" renvoie le fichier "Variables systèmes AutoCAD 2024 et AutoCAD LT 2024" • Le "Best Of" renvoie le fichier "Best Of Variables systèmes AutoCAD 2024 et AutoCAD LT 2024" • Toutes les "commandes AutoCAD et AutoCAD LT" renvoie le fichier "Variables systèmes AutoCAD 2024 et AutoCAD LT 2024" • Le "Best Of" renvoie le fichier "Best Of Variables systèmes AutoCAD 2024 et AutoCAD LT 2024" • Le "Express Tools" renvoie le fichier "Tools - Toutes les Commandes et Express Tools AutoCAD 2020 et AutoCAD LT 2020" Je suppose qu'il y a eut un sac de nœud sur les liens aux fichiers ^^' (d'ailleurs, je dis sûrement une erreur mais je ne pense pas qu'il y ait de s à "systèmes" dans "variables systèmes"..) Bisous, Luna -
Surface arrondi à 2 chiffres après la virgules
Luna a répondu à un(e) sujet de yusukens82 dans Pour aller plus loin en LISP
Coucou, Il s'agit de la variable système DIMZIN🙂 Il faudra donc prévoir ... (setq dimzin (getvar "DIMZIN")) (setvar "DIMZIN" 0) ... (setvar "DIMZIN" dimzin) ... En mettant DIMZIN à 0 lors de l'exécution de ton programme, tu vas assurer l'impression de tes textes comme tu le désires en utilisant (rtos). Bisous, Luna -
Coucou, Je n'ai pas bien compris la demande, serait-il possible d'avoir un .dwg d'exemple ? Car en l'état je ne comprends pas la nécessité du LISP pour cela... Bisous, Luna
-
Coucou, J'utilise cette commande depuis des années déjà et je n'arrive toujours pas à comprendre pourquoi la commande REPERE originelle utilise encore aujourd'hui un Zoom Etendu... qui s'est dit que c'était une bonne idée ? -_- Une chose est sûre, cette commande de @didier est indispensable pour moi !! Bisous, Luna
-
extraire un objet OLE proprement vers un format JPEG
Luna a répondu à un(e) sujet de philsogood dans AutoCAD 2020-2024
Coucou, J'ai l'impression que la possibilité d'exporter un objet OLE en dehors du dessin n'existe pas (ou alors, personne ne semble s'être posé la question...). Les OLE type Excel ou autre semble un peu différent cependant (cf. >>ici<<) mais s'il s'agit d'une image copy/paste, je n'ai pas su en faire grand chose... (même le clic droit > OLE options ne donne pas de résultats probants). Pour la seconde partie de la question, voir avec ce >>sujet<< éventuellement ou bien au lieu d'un format .jpg peut-être qu'en passant par un format .pdf puis PDFIMPORT ? Même si je doute sincèrement que la vectorisation soit conservée dans ce cas là donc la précision risque d'être catastrophique... La vedette en question n'est plus contactable pour avoir un fichier "exploitable" ? Bisous, Luna -
[Terminer] Macro : interagir avec les propriétés d'un objet
Luna a répondu à un(e) sujet de Reyoh dans Personnalisation, macros, DIESEL
Coucou, Il n'y a pas réellement de réponse à cette question malheureusement... En langage DIESEL la réponse est non, en LISP ou autre...et bien tout va dépendre de la propriété, du type d'objet, de ce que signifie "interagir" précisément, etc... En clair, il n'existe AUCUN programme (tout langage de programmation) en mesure "d’interagir" avec n'importe quelle propriété de n'importe quel objet. Certaines propriété sont accessible via la liste DXF d'un objet, d'autres à partir des propriétés de l'API COM/ActiveX ou Visual, etc... Donc s'il faut répondre à la question : ce n'est pas possible en l'état, il faut plus de précision concernant le besoin réel. Bisous, Luna -
Coucou, +1 avec (gile) Mais si jamais, la fonction permettant de transposer des coordonnées entre SCG/SCU/SCO/etc... c'est la fonction (trans). Donc je ne sais pas comment tu zoom sur ton objet précisément mais une solution par exemple serait de transposer les coordonnées SCG utilisées pour effectuer ton zoom via la fonction (trans). Attention tout de même car l'angle entre SCU et SCG peut varier ! Selon les besoins il peut y avoir d'autres solutions donc avec le code cela sera plus simple de t'aiguiller. Bisous, Luna
-
Soka, C'est juste que du coup, on te réponds par le biais d'un programme tout fait tout fini donc je cherche encore l'amusement dans le fil de discussion 🙂 Bisous, Luna
-
Connaitre le dossier ou se trouve le Lisp en cours
Luna a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
C'est également ce que j'utilisais le plus (en plus on peut gérer les historiques, versionning, etc... beaucoup plus précisément en séparant les fonctions/commandes par fichier). Malheureusement on a changer de serveurs et du coup cela a généré des latences trop importantes (5min de chargement des fichiers à chaque ouverture de dessin) pour charger les 100 et quelques fichiers individuellement xD Bref, toutes les méthodes sont bonnes en soit, il faut juste adapter en fonction des outils à disposition ^^ Bisous, Luna -
Coucou, Pourquoi est-ce dans "Programmer en s'amusant" ?... Bisous, Luna
-
Connaitre le dossier ou se trouve le Lisp en cours
Luna a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
vui, my bad.. -
Connaitre le dossier ou se trouve le Lisp en cours
Luna a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
Coucou, Pourquoi ne pas les charger via le fichier en question ? En clair il n'y a pas besoin de connaître le dossier à partir du moment où le dossier est connu dans les Emplacements de Fichiers de support... Autrement dit, imaginons que tu ais un fichier LISP "MasterFile.lsp" dans lequel tu écris (load "fichier2.lsp") (load "fichier3.lsp") (load "fichier4.lsp") ;;(load "fichier5.lsp") (load "fichier6.lsp") ... Ainsi les fichiers sont chargés dans le dessin individuellement (tu peux également désactiver temporairement le chargement d'un fichier en mettant la ligne en commentaire) par ton fichier maître. A partir du moment que le(s) dossier(s) sont renseigné(s) dans les "Chemin de recherche de fichiers de support de travail" (et également "Emplacements approuvés" si besoin), il n'y aura aucun soucis. En tout cas, si j'ai compris ce que tu désires faire. Si maintenant le but et de ne pas écrire le nom des fichiers à chaque ajout de fichiers, tu peux te pencher sur ce genre de fonction (https://www.lee-mac.com/getallfiles.html) permettant de lister tous les fichiers d'un dossier spécifique en précisant le type de fichier. Ensuite, pour récupérer le dossier du fichier LISP maître, à partir du moment où le nom du fichier LISP en question est toujours le même, qu'il n'y a pas de doublons et que le dossier est renseignés dans les "chemin de recherche [...]" alors un simple (setq path (findfile "MasterFile.lsp")) (setq folder (substr path 1 (vl-string-position 92 path 1 T))) permet de connaître l'emplacement d'un fichier LISP spécifique (car il faut à minima connaître son nom). Si c'était en effet cela dont tu avais besoin, je pense que la question était mal dirigée ou trop flou pour comprendre le but final. En espérant avoir aidé un peu... Bisous, Luna -
Coucou, L'action en RESEAU est souvent très limitante car il n'est pas possible de modifier les entraxes via un paramètre dynamique ou bien de faire ce que tu souhaites, c'est-à-dire avoir une duplication de paramètres dynamiques en ayant la main pour chaque occurrences dupliquée. En clair, la réponse est non il ne sera pas possible en un seul bloc de déplacer tes supports séparément dupliqués à partir d'une action réseau... En revanche, rien ne t'empêche de supprimer l'action RESEAU de la définition de bloc, d'implanter tes références de bloc via la commande RESEAU, de DECOMPOSER pour ensuite avoir accès aux paramètres dynamiques d'implantation des supports pour chaque occurrence. Je reconnais que la manip' est plus longue et tu ne peux pas avoir l'ensemble de ton implantation en un seul bloc mais c'est probablement le mieux à faire malheureusement. A moins qu'un expert en bloc passe par là et a une solution tout compte fait, du moins (les actions en chaînes par exemple, que je ne maîtrise absolument pas). Bisous, Luna
-
J'oublie toujours qu'on peut mettre des expressions LISP dans les macros de commandes... my bad >w< Bisous, Luna
