-
Compteur de contenus
12 247 -
Inscription
-
Dernière visite
-
Jours gagnés
208
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par (gile)
-
Comme tu le sais certainement, un nom de bloc (comme un nom de calque, de style de texte, etc.) doit être unique dans le dessin. Quand on modifie les propriétés d'un bloc dynamique, AutoCAD crée une nouvelle définition de bloc anonyme (*Uxxx) parce que ce bloc ne peut avoir le même nom que le bloc dynamique non modifié. Le LISP ne peut pas nommer des blocs différents avec le même nom que le bloc de base.
-
VERIFIER SI COORDONNEES D'UN POINT EST DANS UN RECTANGLE
(gile) a répondu à un(e) sujet de PHILPHIL dans Pour aller plus loin en LISP
Ce n'est plus le même problème que la question initiale. Si tu veux qu'on t'aide à résoudre un problème différent, il faut que tu précises de quoi tu pars. Par exemple, s'il s'agit d'entités AutoCAD (polyligne et point nodal), tu peux définit un SCU Objet sur la polyligne avant de récupérer les lowerLeft et upperRight -
Salut, Edit_Bloc sur cette page.
-
Les livres que je connais datent un peu. Mais celui que je continue à consulter (C# et .NET Versions 1 à 4, Gérard Leblanc) traite assez complètement les fondamentaux et n'est pas pour autant obsolète. Les versions de C# ultérieures apportent essentiellement du "sucre syntaxique" et de toutes façon, pour AutoCAD, on ne peut utiliser que le Framework .NET 4.8 qui ne supporte que C# 7.
-
Salut, Si tu veux te mettre au .NET je te recommande fortement de te former d'abord à C# / .NET hors AutoCAD (il existe de nombreuses formations, livres, tutoriels) jusqu'à être à l'aise avec le langage C#, l'IDE Visual Studio, le Framework .NET et les principes de la Programmation Orientée Objet (héritage, encapsulation, polymorphisme). tu pourras alors t'attaquer sereinement à l'API .NET d'AutoCAD qui n'est pas toujours très bien foutu et parfois assez complexe.
-
Décomposition de bloc impossible
(gile) a répondu à un(e) sujet de barbichette dans AutoCAD 2020-2024
Salut, Tu peux telecharger le dessin récupéré, décomposé et purgé. J'ai dû utiliser de la programmation .NET pour le décomposer. -
Distribuer une application LISP (ou autre)
(gile) a répondu à un(e) sujet de (gile) dans LISP et Visual LISP
Déclarer une version max est obligatoire pour les plug-ins publiés sur Autodesk App Store et il faut systématiquement tester le plug-in et le faire approuver à chaque nouvelle version. Par contre, pour ceux que j'ai donné sur CADxp j'ai fini par retirer la version max parce que j'oubliais régulièrement de les mettre à jour.- 9 réponses
-
- autoloader
- .bundle
-
(et 1 en plus)
Étiqueté avec :
-
Peut-on placer un Lisp dans le chargement automatique ?
(gile) a répondu à un(e) sujet de DenisHen dans LISP et Visual LISP
Voir ce sujet. C'est en partie pour répondre à la question "Comment placer un LISP dans le chargement automatique" que j'ai écrit ce tutoriel. -
@Dilack33 Il n'y a pas de raccourci. Pour atteindre les paramètres, il suffit de faire Entrée (ou clic droit) au lieu de sélectionner des objets. Comme avec les commandes natives, s'il s'agissait d'une option elle apparaitrait entre crochets dans la ligne de commande.
-
Distribuer une application LISP (ou autre)
(gile) a répondu à un(e) sujet de (gile) dans LISP et Visual LISP
Petite mise à jour du tutoriel : l'exemple de dossier .bundle charge deux programmes LISP (Edit_Bloc et TotalArea) dont un avec un fichier DCL.- 9 réponses
-
- autoloader
- .bundle
-
(et 1 en plus)
Étiqueté avec :
-
Distribuer une application LISP (ou autre)
(gile) a répondu à un(e) sujet de (gile) dans LISP et Visual LISP
@Olivier Eckmann Je comprends mieux ton problème. Il ne concerne que les BE ou développeurs qui fournissent des applications et ça n'enlève rien à l'intérêt de fournir des dossiers .bundle (ou des installeurs qui les déploient) aux clients.- 9 réponses
-
- autoloader
- .bundle
-
(et 1 en plus)
Étiqueté avec :
-
Distribuer une application LISP (ou autre)
(gile) a répondu à un(e) sujet de (gile) dans LISP et Visual LISP
@Olivier Eckmann En même temps, le principe du .bundle, c'est le chargement automatique... Et ton problème ne me semble pas directement lié au chargement automatique mais plutôt au fait qu'on ne peut pas décharger/recharger une DLL(donc c'est la première chargée qui prévaut) et, au contraire, charger un LISP (ou fas ou vlx) de même nom, écrase le précédent. Et si on ne peut pas conditionner le chargement d'un programme à un profil, on peut le faire à un produit (Civil, MAP, Archi, MEP, ...)- 9 réponses
-
- autoloader
- .bundle
-
(et 1 en plus)
Étiqueté avec :
-
Salut, Vous avez écrit un programme LISP (ou autre) que vous souhaitez partager avec vos collègues, vos amis ou tout le monde mais vous n'avez pas envie d'expliquer à chacun comment l'installer, dans quel dossier mettre les ressources, etc. Je propose un petit tutoriel avec un exemple très simple pour apprendre à utiliser les bases du mécanisme de chargement automatique avec un dossier .bundle et à créer un installeur pour placer ce dossier dans le répertoire idoine. Ce tutoriel est, bien sûr, disponible sur cette page.
- 9 réponses
-
- 3
-
-
- autoloader
- .bundle
-
(et 1 en plus)
Étiqueté avec :
-
Peut-on placer un Lisp dans le chargement automatique ?
(gile) a répondu à un(e) sujet de DenisHen dans LISP et Visual LISP
et ces personnes que tu décris sont censées utiliser AutoCAD ?... -
Peut-on placer un Lisp dans le chargement automatique ?
(gile) a répondu à un(e) sujet de DenisHen dans LISP et Visual LISP
Si tu penses vraiment que l'utilisateur est incapable d'entrer : %appdata% dans la barre d'adresse de l'explorateur, puis d'aller dans Autodesk\Application Plugins pour y copier un dossier, tu peux toujours faire un installeur (avec inno setup par exemple) qui déploiera ce dossier dans le bon répertoire. -
Peut-on placer un Lisp dans le chargement automatique ?
(gile) a répondu à un(e) sujet de DenisHen dans LISP et Visual LISP
Dans le cas présent, c'est toi le "CAD Manager" / développeur. Avec un dossier .bundle basique contenant un fichier de métadonnées "PackageContents.xml" et un sous dossier "Contents" contenant "vos Lisps", l'utilisateur n'aurait qu'à copier le dossier dans un répertoire idoine. -
Peut-on placer un Lisp dans le chargement automatique ?
(gile) a répondu à un(e) sujet de DenisHen dans LISP et Visual LISP
Si tu tiens à passer par la commande appload*, tu peux demander à tous les utilisateurs de charger et de mettre dans la valise (Au démarrage) un fichier LISP qui contient des expressions LISP pour charger d'autres fichiers LISP, initialiser des variables système, etc. Quand un fichier .lsp est chargé dans un dessin, il est exécuté. Ce qui signifie que toutes les expressions qu'il contient sont évaluées. Si ces expressions sont des définitions de fonctions (defun ...), les fonctions définies seront utilisables dans la session pour ce dessin. Si ces expressions sont de simples instructions : (setvar 'pickfirst 1), (load "toto.lsp), (alert "Hello world !"), elles seront simplement exécutées. * personnellement je pense que la commande appload est destinée à l'utilisateur final (dessinateur) et qu'un "CAD Manager" ou un développeur privilégiera des méthodes plus adaptées au déploiement et la maintenance comme les fichiers acaddoc.lsp, *.cuix et *.mnl et/ou le mécanisme Autoload via un dossier .bundle (voir la documentation à propos du mécanisme autoloader et du format des fichier PackageContents.xml). -
Peut-on placer un Lisp dans le chargement automatique ?
(gile) a répondu à un(e) sujet de DenisHen dans LISP et Visual LISP
Je ne comprends pas bien ce que tu cherches à faire, mais je ne pense pas que tu aies besoin d'utiliser S::STARTUP. Si un fichier de chargement automatique (.mnl ou acaddoc.lsp) contient des expressions LISP du style : (load "toto.lsp") (alert "toto.lsp chargé") ces expressions seront automatiquement exécutées à chaque ouverture de dessin. -
Comment faire un bouton avec une image dans un DCL ?
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Regarde bien ce que j'ai écrit. Avec les clusters, pas besoin d'un action_tile pour chaque radio_button, juste un seul pour le boxed_radio_column, idem pour les appels à mode_tile, on grise ou dégrise tout le cluster d'une seule ligne au lieu de le faire pour chaque edit_box. -
Comment faire un bouton avec une image dans un DCL ?
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Alors je me permet d'insister à propos de l'utilisation de clusters (boxed_*) qui clarifieront l'affichage et permettront un code LISP plus simple. Un boxed_radio_* permet de récupérer directement la clé de l'option choisie et il est possible de griser/dégriser l'ensemble du contenu d'un cluster. En reprenant l'exemple précédent, DCL Test :dialog{ label = "Titre"; :row{ :boxed_radio_column{ label="Présence d'un cadre"; key="Cadre"; :radio_button{ label="Avec cadre"; key="AvecCad"; } :radio_button{ label="Sans cadre"; key="SansCad"; } } :boxed_column{ label="Dimensions"; key="Dim"; :edit_box{ label="Long. cadre ="; key="LongCad"; edit_width=4; } :edit_box{ label="Larg. cadre ="; key="LargCad"; edit_width=4; } } :boxed_column{ label="Epaisseurs"; key="Epais"; :edit_box{ label="Epais. long ="; key="EpaisLong"; edit_width=4; } :edit_box{ label="Epais. larg ="; key="EpaisLarg"; edit_width=4; } } } spacer; ok_cancel; } LISP (defun c:test (/ dcl_id) (setq dcl_id (load_dialog "B:\\Desktop\\Test.dcl")) (new_dialog "Test" dcl_id) (set_tile "Cadre" "AvecCad") (action_tile "Cadre" (vl-prin1-to-string '(if (= $value "AvecCad") (progn (mode_tile "Dim" 0) (mode_tile "Epais" 0) ) (progn (mode_tile "Dim" 1) (mode_tile "Epais" 1) ) ) ) ) (start_dialog) (unload_dialog dcl_id) (princ) ) -
Comment faire un bouton avec une image dans un DCL ?
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Si ta boite de dialogue est trop grande pour pouvoir l'organiser clairement avec des cadres (boxed_*), c'est, à mon avis, qu'il est temps de reconsidérer la question dans sa globalité. Une boite de dialogue trop grande, c'est ce que j'appelle le syndrome du couteau suisse : quand il a trop de lames, on n'arrive plus à trouver facilement celle qu'on cherche... On utilise des boites dialogue quand on estime que les saisies en ligne de commande serait trop confuses, faire des boites de dialogues qui ne seraient pas plus claires n'est pas une solution. Essaye de voir si tu ne peux pas la séparer en plusieurs boites plus petites qui seraient appelées en cascade et uniquement si nécessaire. Dans ton dernier exemple, on peut supposer que si on choisit l'options "Sans cadre", il n'est pas nécessaire de spécifier les longueur, largeur et épaisseurs. -
Peut-on placer un Lisp dans le chargement automatique ?
(gile) a répondu à un(e) sujet de DenisHen dans LISP et Visual LISP
Salut, Plutôt que d'utiliser le chargement automatique via appload, tu devrais créer un fichier .mnl si chargement est lié à un CUIX ou un fichier acaddoc.lsp. Tu pourras plus facilement gérer le chargement des fonction à charger systématiquement dans chaque dessin (fonction load) ou uniquement au premier appel d'une commande LISP (fonction autoload). Tu pourras aussi utiliser ce fichier pour exécuter automatiquement des expressions LISP à chaque ouverture de dessin (par exemple pour donner des valeurs à des variables système ou à des ldata). -
Comment faire un bouton avec une image dans un DCL ?
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Encore une fois, commence toujours par faire au plus simple. Le DCL ne permet pas toujours un contrôle précis de la position des éléments. Comme dit par d'autres, si l'apparence des boites de dialogues est primordiale, il faut passer à Open/Object DCL, VBA ou .NET. En groupant les contrôles dans des boxed_row ou boxed_column, on peut plus facilement arriver à des résultats acceptables. Test :dialog{ label = "Titre"; :boxed_radio_row{ label="Présence d'un cadre"; spacer_1; :radio_button{ label="Avec cadre"; key="AvecCad"; } :radio_button{ label="Sans cadre"; key="SansCad"; } } :row{ :boxed_column{ label="Dimensions"; :edit_box{ label="Long. cadre ="; key="LongCad"; edit_width=4; } :edit_box{ label="Larg. cadre ="; key="LargCad"; edit_width=4; } } :boxed_column{ label="Epaisseurs"; :edit_box{ label="Epais. long ="; key="EpaisLong"; edit_width=4; } :edit_box{ label="Epais. larg ="; key="EpaisLarg"; edit_width=4; } } } spacer; ok_cancel; } -
Comment faire un bouton avec une image dans un DCL ?
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Peut-être comme ça : Test : dialog{ label = "Titre"; :row{ :text{ label= "Ouvrant principal :"; alignment=centered; } :radio_row{ :radio_button{ label="Départ"; key = "CharDep"; } :radio_button{ label="Arrivée"; key = "CharArr"; } } :toggle{ label = "Poignée int."; key = "PoiInt"; } :toggle{ label = "Poignée ext."; key = "PoiExt"; } :column{ ok_button; cancel_button; } } } -
Comment faire un bouton avec une image dans un DCL ?
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Salut, Je prends le train en route, mais, personnellement, je commencerais par faire "au plus simple". Test : dialog{ label = "Titre"; :row{ :edit_box{ label="Test à aligner : Départ ="; key = "DimChapDep"; edit_width=4; } :edit_box{ label="Arrivée ="; key = "DimChapArr"; edit_width=4; } } spacer; ok_cancel; }
