-
Compteur de contenus
12 247 -
Inscription
-
Dernière visite
-
Jours gagnés
209
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par (gile)
-
De la même manière qu'on fait pour avoir une baguette de pain (ou une licence AutoCAD) sans la payer, on la vole ou on demande poliment. Dans les deux cas le résultat n'est pas garanti. Tu peux toujours consulter l'aide de l'Utilitaire de licence mobile Dans le menu Démarrer (Windows), cliquez sur Tous les programmes (ou Programmes) -> Autodesk [nom du produit Autodesk] -> Utilitaire de licence mobile -> bouton Aide.
-
Excuse moi je pensais que tu voulais le type d'entité. si tu remplaces : (cons (vla-get-ObjectName (vla-Item ModSp (setq cnt (1- cnt)))) lst) par : (cons (vla-Item ModSp (setq cnt (1- cnt))) lst), tu auras la liste des VLA-objects ou par (cons (vlax-vla-object->ename (vla-Item ModSp (setq cnt (1- cnt)))) lst) pour avoir celle des noms d'entités (ename).
-
Salut, je n'y connais rien en réacteurs non plus, mais pour avoir la liste des n dernières entités créées : (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) ModSp (vla-get-ModelSpace AcDoc) ) (setq cnt (vla-get-Count ModSp)) (repeat n (setq lst (cons (vla-get-ObjectName (vla-Item ModSp (setq cnt (1- cnt)))) lst ) ) )
-
Il y a justement un article sur le transfert de licence dans le dernier numéro des Cahiers d'AutoCAD
-
Petite question pour BonusCAD
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
La dernière réponse pour ce soir, après je vais me coucher ! l'apostrphe est une abréviation de la fonction (quote ...) qui signifie "ne pas évaluer", un peu comme le q de setq (ce qui le différencie de set) L'expression LISP classique c'est (fonction argument1 argument2 ...) elle est évaluée. Quand on fait une liste on fait soit (list "a" "b" "c") c'est une expression classique la fonction list est évaluée avec ses arguments "a" "b" "c" on peut aussi faire (quote ("a" "b" "c")) où l'argument de la fonction quote est la liste ("a" "b" "c") qui n'est pas évaluable car "a" n'est pas une fonction on l'écrit généralement '("a" "b" "c") Autre exemple (setq A 10) équivaut à (set (quote A) 10) ou (set 'A 10) on n'évalue pas le symbole A pour lui attribuer la valeur 10. Si on tape A à la console, on obtient bien 10 Poussons un peu (setq B 'A) on attribue à B le symbole A, pas sa valeur. Si on tape B à la console, on obtient A. Mais si on fait (eval B) on obtiendra 10. Dans le cas de mapcar, comme pour les autres fonctions qui ont pour argument une fonction (apply, vl-remove-if ...), cette fonction est "quotée". Bonne nuit ... -
On peut mettre dans une variable tous les types de données : chaines, entiers, réels, listes, noms d'entités (ename), jeux de sélection, objets VLA ... même des fonction comme on le fait avec *error*. Ton problème ne vient pas de là, compare ce que tu fais là avec ce que tu faisais juste plus haut, interroge la variable objet avec la console, évalue la ligne de code (setq ValTxt (cdr (assoc 1 objet))) avec la console, quel message d'erreur as-tu ?
-
Petite question pour BonusCAD
(gile) a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Je ne sais pas de quelle routine tu parles mais j'imagine que les points récupérés pour faire le rectangle le sont avec la fonction LISP textbox cette fonction retourne les points de la diagonale du rectangle qui contient le texte (les coordonnées sont calculées par rapport au point d'insertion du texte) Il est donc facile d'envisager de recalcuer ces coordonnées par rapport au SCU de trouver leur milieu et le rayon du cercle. Tu vas devoir te servir de mapcar pour les opérations sur les points et voir comment on peut passer deux listes (x y z) comme argument à mapcar. Je t'aide un peu, pour ajouter points, par exemple pt1, le premier point de la liste retournée par textbox et ins le point d'insertion du texte : (mapcar '+ pt1 ins) la liste retournée est celle des coordonnées du premier point de la diagonale. -
Tu auras la réponse en tapant tes lignes de codes à la console de l'éditeur VisualLISP. C'est un fabuleux outil pour tester des expressions, des variables et ausssi pour s'auto-évaluer. Allez, cherche un peu ;)
-
Salut, SOLPROF crée, à partir de la vue des solides 3D sélectionné dans l'espace objet d'une fenêtre de présentation les projections en 2D de cette vue sous forme de deux blocs (un pour les arrêtres visibles un autre pour les arrêtes cachées). Il crée aussi deux nouveaux calques PV-* et PH-* sur lesquels sont ces blocs. Avec le gestionnaire de calques on peut changer le type de ligne, par exemple. Il est aussi sage de renommer ces calques avec des noms plus explicite. Les commandes SOLVIEW et SOLDRAW (configurer la vue et configurer le dessin) sont un peu plus compliquées à utiliser mais permettent de faire des vues orthogonales, des coupes ... Ces commandes sont expliquées dans l'aide Présentation des commandes -> Commandes -> Commandes S puis SOLDRAW SOLPROFIL SOLVIEW.
-
Grace au concours de notre cher "oueb-maistre" les fichiers source LISP et DCL sont maintenant inclus avec le VLX dans Res_hel.zip Télécharger Res_hel.zip
-
Edit_bloc (version 2.3) est désormais dans les Téléchargement proposés par les membres dans la rubrique "AutoCAD LISP et Visual LISP" sous forme d'un ZIP contenant un fichier compilé VLX, les fichiers source LISP et DCL ainsi qu'un petit fichier texte "Lisez_moi". J'y ai adjoint Edit_bloc_rep pour modifier tous les wblocs d'un même répertoire. Télécharger Edit_bloc.zip Encore un grand merci à Patrick et à tous ceux qui ont aidé par leurs suggestions, remarques, tests ...
-
Ah ben là, j'ai dégainé moins vite et moins brillament :angel:
-
Salut, Regarde du côté des fonctions open et read-line.
-
Je rajoute au filtre de sélection les splines, que j'avais oublié. Comme pour le polylignes elle ne doivent pas être "croisées" (seules les splines 2d du plan su SCU courant sont sélectionnées).
-
"REINIT" et tu coches "Fichier PGP", certes, mais, "RE-INIT" avec tiret, et tu coches 16 marche tout aussi bien !
-
Salut, (vla-get-count (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
-
Ta macro semble bonne, je pense que c'est ton wbloc qui est mal défini. En tout cas je ne vois pas le rapport avec "Débuter en LISP" :casstet:
-
Pas vraiment. Si tu insères ton bloc avec la commande INSERER (_INSERT), est ce qu'il s'insère correctement ? Si non, c'est que c'est la définition du bloc (de son point d'insertion) qu'il faut modifier. Si oui, c'est ton "menu" (?) qui n'est pas bon, et là il faut que tu expliques mieux ce qu'est ce "menu".
-
Peut-être peux-tu essayer de reformuler ta question, elle est, pour moi, totalement incompréhensible.
-
Salut, Première chose, en postant trois fois le même message que tu n'auras ni trois fois plus de réponses, ni trois fois plus vite, ni trois fois meilleures ! Pour la deuxième question , essaye la variable UCSFOLLOW à 0 dans toutes les fenêtres.
-
Je n'avais répondu que sur la question des defun avec ou sans arguments en préciant le rôle de C: Mais Tiboulen a complètement raison pour la commande "-calque" ("_-layer") et l'option "e" ("_make" ou "_m"), j'ajouterais que pour seulement une ligne de code, il est rarement intéressant de faire un (defun ...) à part et de l'appeler depuis une autre fonction, autant mettre le ligne directement dans cette fonction.
-
Salut, Décidément, je ne dois pas être clair dans mes explications ! Si une fonction nécessite des arguments, on ne peut la lancer sans spécifier ces arguements. Exemple 1 (defun MaFonction (str) (princ (strcat "\L'argument est : " str)) (princ) ) Si on tape à la ligne de commande : (MaFonction "Salut !") il est retourné : L'argument est : Salut ! (MaFonction) il est retourné : ; erreur: nombre d'arguments insuffisants MaFonction il est retourné : Commande inconnue "MAFONCTION". Appuyez sur F1 pour obtenir de l'aide. Quand on fait un (defun C:MaFonction ...) c'est pour pouvoir lancer fonction en tapant directement MaFonction à la ligne commande et dans ce cas il est impossible de spécifer le (ou les) argument(s). Exemple 2 : (defun C:MaFonction (str) (princ (strcat "\L'argument est : " str)) (princ) ) Si on tape à la ligne de commande : (MaFonction "Salut !") il est retourné : L'argument est : Salut ! (MaFonction) il est retourné : ; erreur: nombre d'arguments insuffisants MaFonction il est retourné : ; erreur: nombre d'arguments insuffisants Il est donc préférable de n'utiliser les (defun C:* ...) que pour les cas où on désire spécifiquement définir un nom de commande semblable aux commandes prédéfines. Donc de ne pas les utiliser pour les fonctions nécéssitant un (ou des) arguments, qui ne peuvent, elles, n'être lancées que par une expression LISP du type (fonction arg1 ...)
-
Merci pour le retour, et bravo pour la perspicacité ;) Je me demande bien comment un tel oubli a bien pu se glisser :casstet: Je corrige. En l'état, çà ne peut marcher que sur le contour fermé des blocs si celui-ci est composé d'entités jointves à leurs extrémités (c'est le fonctionnement de REGION). Je vais essayer de refaire une boucle sur les entités composant les blocs et polys "couper" celles qui auraient des intersections. exemple, la région unie créée est à doite: http://img209.imageshack.us/img209/1479/region3om.png
-
Les images de Tramber confirment ce que je pensais avoir compris de sa méthode. C'est sûrement la méthode la plus "juste" (on pratique de cette manière sur le "plancher à épures") et j'entrevois assez aisément comment la traduire en VisualLISP, donc çà devrait être possible en VBA -s'il existe un équvalent aux (Vlax-curve- ...). Merci Tramber :)
-
J'avais aussi regardé de mon côté(pour le vlisp on utlise le mêmes Methods) et j'ai été fort déçu de ne rien trouver, ni pour _sweep d'ailleurs. Il m'a semblé comprendre que les "VBAistes" répugnait à utiliser sendCommand tout comme certains "Lispeurs esthètes" (auxquels j'aspire parfois à ressembler) évitent d'utiliser (command ...). Je crains que cette fois ce soit inévitable.
