Fraid Posté(e) le 24 décembre 2019 Partager Posté(e) le 24 décembre 2019 Bonjour, En faisant des testes avec la fonction TYPE, j'ai remarqué que le type USUBR n’étais renvoyé que si la fonction étais déclarée dans Vlide. Commande: (defun foo nil (princ)) FOO Commande: (type foo) SUBR _$ (defun foo nil (princ)) FOO _$ (type foo) USUBR on retourne ensuite dans Autocad Commande: (type foo) USUBR Y a t'il une explication? Car en dehors de Vlide je n'arrive jamais à avoir USUBR pour une fonction perso. Ou je n'est rien compris... https://github.com/Fraiddd Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 24 décembre 2019 Partager Posté(e) le 24 décembre 2019 Salut, La différence entre SUBR et USUBR semble assez floue, même dans l'aide : SUBR Internal AutoLISP functions or functions loaded from compiled (FAS or VLX) files Functions in LISP source files loaded from the AutoCAD Command prompt may also appear as SUBR USUBR User-defined functions loaded from LISP source files Gilles Chanteau - gileCAD - Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fraid Posté(e) le 24 décembre 2019 Auteur Partager Posté(e) le 24 décembre 2019 encore un zone mystèrieuse...Merci https://github.com/Fraiddd Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fraid Posté(e) le 14 janvier 2020 Auteur Partager Posté(e) le 14 janvier 2020 (modifié) Bonjour, Si on part sur le principe que les USUBR sont les fonctions autres que les fonctions natives, voici une solution pour les dénicher et les écrire dans un fichier texte. (defun get-usubr ( / *error* file fct) (defun *error* (msg) (if file (close file)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (load "c:\\<Mon Dossier>\\fct.lsp") (setq file (open "c:\\<Mon Dossier>\\usubr.txt" "w")) (foreach atome (acad_strlsort (atoms-family 1)) (if (and (= (type (eval (read atome))) 'SUBR) (not (wcmatch (strcase atome) "ACET*,BNS*,VLA-*,:*,C:*")) (not (member (strcase atome) fct )) ) (write-line (strcase atome) file) ) ) (close file) ) (defun c:GUS nil (get-usubr)) Il faut télécharger fct.lsp, c'est la liste des SUBR natives.Et remplacer <Mon Dossier> par votre dossier préféré(approuvé par Autocad).Si vous n'avez pas chargé de Lisp, vous n'aurez que get-usubr dans le fichier texte usubr.txt.J'ai rajouté la gestion d'erreur, c'est mieux. Modifié le 14 janvier 2020 par Fraid https://github.com/Fraiddd Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant