Aller au contenu

Messages recommandés

Posté(e)

Bonjours,

 

Qui n'a pas les express-tools d'installé?

Ceux-ci offrent au programmeurs des fonctions (non-documentées) qui pourraient bien rendre des services.

 

dans le dossier "....\...\Express", vous avez un fichier nommé "acetauto.lsp".

 

En ouvrant celui-ci on peut voir toutes les fonctions chargées automatiquement et SURTOUT on peut deviner la forme des arguments à fournir à ces fonctions.

 

Par exemple:

(acet-geom-arc-center p1 p2 p3), on devine que la fonction va retourner le centre d'un arc passant par 3 points fournis en argument.

 

Donc certainement plein de petites fonctions intéressantes qui pourrait simplifier la programmation.

 

L'un de vous les utilise t-il?

On pourrais peut être les recenser avec un petit laïus associé pour les plus délicates.

 

Il y a aussi quelques fonctions (ai_xxx)...

 

Le seul truc qui me gène, et que par la suite des codes publiés dépendent de fonctions que nous ne maitrisons pas dans l'avenir et entre différentes versions. Mais cela peut être bon à connaitre quand même :P

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Je ne sais plus si jen utilise mais j'ai la doc imprimée dans un classeur.

Tiens, j'ai trouvé :

www.afralisp.net/lisp/acet-utils.htm

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Salut

 

Je suis bien d'accord

 

Le problème avec les express, c'est le portage d'une version à une autre.

J'évite autant que possible d'y faire appel, malgré certaines fonctions qui pourraient être bien utile comme

(acet-ui-pickdir "Message" "c:\\" "Titre") pour choisir un répertoire.

(acet-ui-message "Mon Message" "Mon Titre" 16) pour afficher un message via vba

et...

 

Mais on arrive souvent à utiliser d'autres procédés comme avec les activex

Le choix d'un répertoire

 (defun dirbox (/ cdl rep)
 (if (setq cdl (vlax-create-object "Shell.Application"))
   (progn
     (and (setq rep
	  (vlax-invoke
	    cdl	'browseforfolder 0
	    "Choisissez un répertoire pour traiter tous les dessins
	    et changer tous les objets des dessins en couleur DUCALQUE"
	    512	"")
   )
   (setq
     rep (vlax-get-property (vlax-get-property rep 'self) 'path)
   )
     )
     (vlax-release-object cdl)
   )
 )
 rep
)

 

Un message

 (defun msgbox (Titre Bouttons Message / Reponse WshShell)
   (setq WshShell (vlax-create-object "WScript.Shell"))
   (setq Reponse  (vlax-invoke WshShell 'Popup Message 0 Titre (itoa Bouttons)))
   (vlax-release-object WshShell)
   Reponse
 )

 

La seul chose que j'utilise des express est la progress bas, car je n'ai pas encore réussi à trouver son équivalent.

(if (eval 'acet-ui-progress-done)
 (progn
   (setq n 0)
   (acet-ui-progress-init "Un Message" 1000)
   (repeat 1000
     (acet-ui-progress-safe (setq n (1+ n)))
     (repeat 10000) ; Tempo
   )
   (acet-ui-progress-done)
 )
)

 

Et on a exactement le même problème avec les outils doslib.

Tu as la fonction getfiledm qui permet un choix multiple de fichiers, chose que je suis incapable à l'heure actuelle de refaire.

L'appel est lancé ;)

 

ps : Au lieu de regarder dans le lisp, tu peux aussi faire

(vl-remove-if-not '(lambda (x) (wcmatch x "ACET-*"))(atoms-family 1))

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

ps : Au lieu de regarder dans le lisp, tu peux aussi faire

(vl-remove-if-not '(lambda (x) (wcmatch x "ACET-*"))(atoms-family 1))

 

Tout à fait, mais avoue que d'avoir le nom de la fonction n'est pas suffisant, tu peux tâtonner longtemps avant de trouver le type d'argument à passer.

 

Tiens! trouves moi les arguments pour la fonction (bpoly), ceux-ci pouvant être optionnels

J'en ai trouvé quelques un, mais pas tous...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Et on a exactement le même problème avec les outils doslib.

Tu as la fonction getfiledm qui permet un choix multiple de fichiers, chose que je suis incapable à l'heure actuelle de refaire.

L'appel est lancé

 

J'avais fait ça et ça, c'est des DLL. D'après ce que j'ai pu lire dot NET devrait avoir une meilleure portabilité (les nouvelles versions du .NET Framework ne sont que des ajouts aux versions précédentes) reste à voir ce qu'il en sera des classes managées ObjectARX... On verra avec la version 2010 (nouveau format dwg).

 

PS : J'ai un peu reformaté ton code (dirbox) pour un meilleur affichage.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Salut,

La fonction acet dont je ne peux personnellement pas me passer est acet-drag-move permettant de garder au bout du curseur l'image de l'objet.

Pas trouver d'équivalent avec les activeX....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

bpoly est une fonction des express ?

 

Non, du tout, c'est une veille fonction datant depuis la version 12 ou 14, qui est la fonction interne de FPOLY.

 

En lisp, tu peux l'appeler avec plusieurs formes optionnelles:

 

(bpoly) -> tu retrouve l'invite de la commande FPOLY en ligne de commande.

 

(bpoly (getpoint)) -> Cherche le contour avec le point fourni.

 

(bpoly (getpoint) '(1.0 0.0 0.0)) -> Cherche le contour avec le point fourni et (là je ne sais pas trop, mais je crois qu'il s'agit du facteur "ray" pour la recherche du contour)

 

(bpoly (getpoint) '(0.0 1.0 0.0) (ssget)) -> Cherche le contour avec le point fourni avec le facteur "ray" en Y et un jeux de sélection.

 

Je pense que d'autres options peuvent encore suivre, mais je ne les ais pas découverte...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

(giles)

J'ai testé ta DLL, et elle fonctionne très bien (sauf pour +10000 fichiers, mais c'était histoire de pousser les limites)

 

J'aurai juste une question.

Elle sera compatible quelque soit la version d'autocad, de windows ?

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Salut,

 

À priori, oui. Un des arguments en faveur de .NET est justement sa portabilité. Une DLL qui fonctionne à partir d'une version (ici 2007) devrait fonctionner avec toutes les versions ultérieures, voir les réponses de Tony Tanzillo (en qui on doit pouvoir avoir confiance) ici.

 

PS : quelle version as tu testé ?

Je te recommande celle là (la boite de dialogue de sélection des fichiers est la même, mais il y a aussi une boite pour les dossiers, une messagebox et une inputbox et un fichier d'aide le tout dans un msi pour une installation automatique).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é