-
Compteur de contenus
116 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Karmelie
-
Bonjour, J'ai reçu un plan contenant des nuages de points (des milliers). Ils sont heureusement répartis sur des calques différents. Il faudrait que j'assigne chacun des points (élément autocad) à un symbole selon son calque. Par exemple: les points du calque 22 deviennent des conifères (bloc "conifere") Les points du calque 23 deviennent des feuillus (bloc "feuillus") Est-ce possible de transformer des "points Autocad" en blocs". PS: Comment fait-on pour réussir une recherche avec le moteur de recherche.... Pas facile avec uniquement des mots de 4 caractères... :angry: Merci à l'avance,
-
Récupérer le système de coordonnées usager
Karmelie a répondu à un(e) sujet de Karmelie dans AutoCAD 2011
Merci! Je cherchais trop une variable... Puisque je suis vraiment débutante en lisp, j'irai au plus simple avec l'appel de commande. -
Bonjour, J'aurais dû mettre ce post dans "Débuter en Lisp" - Je ne sais pas comment le déplacer... :unsure: En lisp, comment fait-on pour récupérer le système de coordonnée usager avant l'exécution d'une routine pour le restaurer à la fin de la routine. Exemple: J'oriente mon dessin suivant une ligne du cadastre mais je ne sauvegarde ni la vue ni le scu puisque cet orientation n'est que temporaire. Je demande l'exécution d'une routine qui place le scu à "général" pour l'insertion dégroupé d'un dessin place le scu selon un objet quelconque pour exécuter un décalage replace le scu à "général" .... Je termine la routine et m'attend à revoir mon dessin dans l'orientation du départ. Je ne sais pas quel variable utilisée (s'il en est une) pour l'équivalent de: (setq U_clayer (getvar "clayer")) ...La routine... (setvar "clayer" U_clayer)
-
Bonjour, Et pour les proriétés des calques? On peut passer par le convertisseur de calques si les calques existent dans un autre dessin, mais à ce titre on aurait pu les importer par le "Design Center". J'ai un fichier TXT contenant tous mes calques avec leurs propriétés et il serait intéressant de les charger, en tout ou en partie, par sélection ou par tri (tous les calques contenant les caractère "ext" par exemple)
-
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Bonjour, Je ne sais pas comment indiqué que le sujet est "résolu" -
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Bonjour, Et voilà, tout fonctionne. J'y suis allée au plus simple. Merci à tous. (defun PLINE_LSEG ( ;Arguments: CALQUE ; Nom du calque spécifié dans la commande / ;Variables locales: INFO ; Données extraites de la liste des calques La_SEGM ; Largeur du segment extraite de la liste des calques = Epaisseur du calque PTDEP ; Début du polyligne *error* ; Gestion des erreurs ) ; fin arguments ;Gestion des erreurs (defun *error* (msg) (setvar "plinewid" 0) (print msg)) (setq INFO (assoc CALQUE ListeCalques)) ;; Recherche du calque dans la liste des calques normalisés (setq La_SEGM (atof (nth 3 INFO))) ;; Capte l'épaisseur du calque (setvar "plinewid" La_SEGM) ;; Assigne l'épaisseur du calque à la largeur de segment du pline (CREATION_CALQUE) ;; Création du calque (command "_pline") (while (/= 0 (getvar "cmdactive")) (command pause)) (setvar "plinewid" 0) ;; Remise à zéro de la largeur des polylignes (princ) ) Est-ce que je dois rappeler *error* quelquepart? Pour ce qui est de la gestion des erreurs plus avancée, je reviendrai dans un autre post. Merci encore :) -
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Bonjour, Il est ici Et voici ce que j'ai fait: ;;; Gestion des erreurs defun C:UN_var (/ U_cmdecho U_osmode U_clayer U_polar N_cecolor N_celtype N_celw N_plinewid N_Transp U_svar N_svar Rest_var *error*) ;; Sauvegarde variables Usager (defun U_svar () (setq U_cmdecho (setvar "cmdecho" 0) U_osmode (getvar "osmode") U_clayer (getvar "clayer") U_polar (getvar "polarmode") ); setq ) ;defun ;; Sauvegarde variables Normalisées (defun N_svar () (setq N_cecolor (setvar "cecolor" "bylayer") N_celtype (setvar "celtype" "bylayer") N_celw (setvar "celweight" -1) N_plinewid (setvar "plinewid" 0) N_Transp (setvar "Cetransparency" -1) ) ; setq ) ; defun ;; Restauration variables Usager et Normalisées (defun Rest_var () (setvar "cmdecho" U_cmdecho) (setvar "osmode" U_osmode) (setvar "clayer" U_clayer) (setvar "polarmode" U_polar) (setvar "cecolor" N_cecolor) (setvar "celtype" N_celtype) (setvar "celweight" N_celw) (setvar "plinewid" N_plinewid) (setvar "Transparency" U_Transp) ) ;; Redéfinition de la fonction *error* (defun *error* (msg) (princ (strcat "\nErreur: " msg)) ; renvoie un msg d'erreur (Rest_var) ; Restore les variables Usagers et Normalisées (princ) ; Quitte silencieusement ) ;defun Maintenant, si je place tout ceci dans mon fichier .MNL, ça pourrait servir pour toutes les commandes? Est-ce que me suis dans l'erreur (sans jeux de mots) si je place (u_svar) et (n_svar) au début de mon programme et (Rest_var) à la fin, juste avant le (princ)? Qu'est-ce que je fais alors avec la "redéfinition de la fonction *error*"? Merci et à demain! -
Bonjour, C'est un inconvénient majeur si on prend en considération que toutes les imprimantes et traceurs d'une PME sont normalement configurées en réseau et que les PC3 ne devraient pas être modifiables par tout à chacun et donc être déposés dans un répertoire réseau en lecture seul sauf pour les CAD Managers. Autocad permet de faire pointer le "Chemin de recherche de la configuration d'imprimante" sur un seul répertoire. En configurant local, on s'oblige à fonctionner par profils, ce qui revient à dire que l'usager qui peut faire tout ce qu'il veut sans penser "entreprise" le fera! Alors, adieu la "normalisation d'entreprise" et rebonjour aux multiples PC3 au nom tous plus cocasses et plus redondants les uns des autres! Une petite montée de lait comme ça en fin de journée...!
-
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Bonjour, En effet, les nouvelles sont bonnes. Merci à tous les 2. J'ai trouvé un post de VDH_Bruno sur la gestion des erreurs suffisamment bien expliqué pour que je me risque à en faire un. C'était presque terminé lorsque les 2 derniers posts sont arrivés. Je crois que j'en était à faire ça compliqué pour rien....mais peut-être pas tant que ça! Je "digère" les nouvelles informations et je vous reviendrai. (avec des questions ou qqchose de "fini"). -
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Bonjour Didier, La gestion des erreurs...! :wacko: Je n'y échapperai pas. J'aimerais bien trouver une explication claire qui fasse en sorte que je comprenne le principe une fois pour toute. Alors, je cherche.... avant de revenir vous supplier à genoux de me porter secours :( -
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Bonjour, Maintenant le pline se trace sur le bon calque avec la bonne largeur mais: 1. Le bouton droit termine automatiquement la commande et j'ai le message "erreur: type d'argument incorrect: point: nil" 2. Je n'ai pas accès au bouton droit pour les options du pline (arc... etc.) 3. La largeur du pline n'est toujours pas remise à zéro par (setvar "plinewid" 0) Parce que la commande pline ne se termine pas correctement? (post #6) Mon code ressemble à ceci maintenant: (defun PLINE_LSEG ( ;Arguments: CALQUE ; Nom du calque spécifié dans la commande / ;Variables locales: INFO ; Données extraites de la liste des calques La_SEGM ; Largeur du segment extraite de la liste des calques = Epaisseur du calque PTDEP ; Début du polyligne ) ;fin arguments (setq INFO (assoc CALQUE ListeCalques)) ;; Recherche du calque dans la liste des calques normalisés (setq La_SEGM (atof (nth 3 INFO))) ;; Capte l'épaisseur du calque (setvar "plinewid" La_SEGM) ;; Assigne l'épaisseur du calque à la largeur de segment du pline (CREATION_CALQUE) ;; Création du calque (command "_pline" (setq p (getpoint "\nDébut de la ligne: "))) (while (getvar "cmdactive") (command (setq p (getpoint "\nPoint suivant :" p))) ) ;; tant que la commande pline est active, la routine attend un point (command "") ;; ici on sort de la commande pline (setvar "plinewid" 0) ;; Remise à zéro de la largeur des polylignes (princ) ) ;;fin du defun -
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Bonjour Didier, En réalité, j'aurai à faire les deux! Mais pour ce post, c'est uniquement pour dessiner des plines... tel que mentionné sur le premier post: L'autre option sera pour plus tard. Avec mes habilités en lsp, il est préférable que je garde de focus. Merci à toi. Carboleum: Merci, je teste -
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
OK, je comprends de principe, mais si j'exécute uniquement: (command "pline" (setq p (getpoint "\nFirst :"))) (while (setvar "cmdactive") (command (setq p (getpoint "\nNext :" p)))) ; tant que la commande pline est active, la routine attend un point (command "") ; ici on sort de la commande pline J'ai le message: nil ; erreur: nombre d'arguments insuffisants :( -
[Résolu] Remise à zéro de la largeur des polylignes
Karmelie a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Merci! (setq *plinewid*(getvar "plinewid")) mais si la variable plinewid n'est pas à 0 avant l'exécution? -
Je débute en lsp et je me suis essayée à faire une nouvelle commande en me basant sur des .lsp que nous possédons déjà. Habituellement, nos largeurs des lignes sont gérées par les calques (propriétés "DuCalque") et toutes les polylignes ont une largeur de segment de 0.0 J'ai une demande pour "voir" la vraie largeur des lignes à l'écran i.e. donner une largeur aux polylignes. Nous avons déjà des fichiers .TXT (ListeCalques.txt) contenant les calques et leurs propriétés sous la forme: Calque LT CO LW TR TXT HTXT Ces fichiers sont lus par une commande (LECTURE) chargée dans le fichier .MNL d'un menu entreprise. Les calques sont créés à demande par la commande (CREATION_CALQUE) elle aussi chargée dans le fichier .mnl Ma nouvelle commande que j'ai nommée PLINE_LSEG trace un polyligne sur un calque spécifié ex: (pline_lseg "bordure") en assignant la valeur de l'épaisseur de trait (LW) du calque lue dans ListeCalques.txt à la largeur des segments du polyligne à tracer. Le polyligne est tracé correctement, mais je n'arrive pas à remette la variable PLINEWID à 0 après avoir tracé le polyligne. J'ai essayé (commande…..) (setvar…..) Qu'est-ce qui cloche dans ma routine? (defun PLINE_LSEG ( ;Arguments: CALQUE ;Nom du calque spécifié dans la commande / ;Variables locales: INFO ;Données extraites de la liste des calques La_SEGM ; Largeur du segment extraite de la liste des calques = Epaisseur du calque PTDEP ;Début du polyligne ) ;fin arguments (setq INFO (assoc CALQUE ListeCalques)) ;; Recherche du calque dans la liste des calques (setq La_SEGM (atof (nth 3 INFO))) ;; Capte l'épaisseur du calque (setvar "plinewid" La_SEGM) ;; Assigne l'épaisseur du calque à la largeur de segment du pline (CREATION_CALQUE) ;; Création du calque (setq PTDEP (GETPOINT "\nDébut de la ligne?...")) (command "_pline" PTDEP) ;; Trace la pline (setvar "plinewid" 0) ;; Remise à zéro de la largeur des polylignes (princ) ) ;;fin du defun
-
Bonjour, J'aimerais pouvoir me servir du lsp de Gile "TotalArea" mais de façon quelque peu différente. J'ai régulièrement des surfaces à mesurer, identifier et à extraire dans un tableau. Les surfaces sont sujettes aux changements et les modifications doivent se refléter dans les tableaux. Actuellement nous avons un bloc "ID_surf" semblable à TotalArea ainsi qu'un style ligne de repère multiple et un style de tableau pour l'extraction. Les données du bloc ID_surf sont remplis manuellement. Nous aimerions pouvoir: 1. Activer TotalArea 2. Cliquer un point d'une surface Ici commence la différence: 3. Le point identifié deviendrait la pointe de la flèche d'une ligne de repère multiple à laquelle nous aurions attribuée le bloc TotalArea, via un style de ligne de repère multiple. 4. S'il y a plusieurs surfaces, chacun des points identifié sur le contour d'une surface deviendrait la pointe d'un ligne de repère multiple qui serait ajoutée au bloc inital (comme la commande "modiflignederepmult") 5. On pourrait ensuite extraire les données dans un tableau (style déjà défini dans notre dessin) en sélectionnant les blocs TotalArea par une zone ou par sélection. Peut-être qu'un de vos magiciens pourrait me concocter une petite recette….
-
Bonjour,
J'aimerais bien savoir de quel façon tu t'y prends pour faire la vidéo telle que dans le post de "cotation inversée". Logiciel? gratuit?
Merci
Karmélie
-
Insérer tous les blocs d'un répertoire en mode réseau
Karmelie a répondu à un(e) sujet de Karmelie dans Routines LISP
Le premier pas est fait. Les blocs s'insèrent. J'ai testé 2 de mes répertoires. Par exemple les "arbres" ont 1 unité. La routine les insère collés les uns aux autres. Les rangées sont également collées et vont de bas en haut alors que le sens de lecture d'une légende est le contraire. Dans l'autre cas, les panneaux sont en mm (de 450 à 1200mm)et s'insère les uns par dessus les autres à 210 (A4) ou 297 (A3). Les noms de blocs ne s'insèrent pas ou s'insèrent tous au même point d'insertion. De là ma demande de spécifier le nombre de rangée/colonne et leur décalage (comme la commande Réseau (array). Avoir à déplacer des blocs est presqu'aussi long que de les insérer au bon endroit. Je sais utiliser les .lsp et en modifiéer quelques variables mais pas plus. :unsure: L'aide de pros serait grandement appréciée. -
Bonjour, J'espère être sur le bon forum. Nous avons une collection de blocs normalisés (plus de 1000) qui sont classés dans des répertoires selon leur nature ou leur usage. Dans chacun des répertoires je dois créer un dessin représentant tous les blocs du répertoire avec leur nom. Ceci servira à bâtir un document normatif de tous les blocs. J'aurais besoin d'insérer dans un dessin vierge tous les blocs d'un répertoire en choisissant le répertoire et l'échelle d'insertion des blocs (la même pour tous les blocs d'un répertoire). L'insertion devrait pouvoir se faire en mode "réseau" en spécifiant le nombre et le décalage des rangées/colonnes. Le nom du bloc s'inscrirait sous le bloc en spécifiant un décalage (le même pour tous les blocs d'un répertoire) par rapport au centre du bloc. Par exemple pour le répertoire "arbre" contenant 22 blocs, je veux 3 colonnes décalées de 4 unités et 8 rangées décalées de 10 unités. Le nom des blocs serait inscrits avec décalage de 4 unités par rapport au centre des blocs. L'échelle d'insertion serait de 1. Pour le répertoire "panneau_A" contenant 68 blocs, je veux 5 colonnes décalées de 5 unités et 14 rangées décalées de 8 unités. Le texte serait décalé de 6 unités. L'échelle d'insertion de 0.01 Et ainsi de suite. Vous comprendrez que l'insertion manuelle n'est pas la solution…. Merci à l'avance,
-
Bonjour Je crois que si on déplace un élément avec la commande Déplacer (move) tous les "fantômes" seront déplacer, ce qui n'est pas le cas avec le déplacement par les poignées. Les poignées ne déplacent que l'élément de l'échelle active.
-
Transformer une fenêtre de tracé rectangulaire en fenêtre de tracé polygonale ?
Karmelie a répondu à un(e) sujet de brunomu dans AutoCAD 2011
Bonjour Pour ceux qui ne seraient pas très "clavier": On sélectionne la vue rectangulaire On clique bouton droit On sélectionne : Délimiter la fenêtre Clic bouton droit = un allier à connaître! ;) -
Symboles le long d\'un pline à distance x
Karmelie a répondu à un(e) sujet de Karmelie dans AutoCAD 2011
Bonjour/Bonsoir Ca ne semble pas fonctionner. Je crois avoir omis de spécifier que les segments entre les symboles doivent être égaux et avoir une longueur comprise entre le critère minimun et le critère maximun. Pas évident de passer l'information surtout lorsque la demande vient d'un tiers... Je tente une dernière explication en dessin. Une image vaut mille mots... http://www.cijoint.fr/cjlink.php?file=cj201108/cijNfsIY3w.zip Merci -
Symboles le long d\'un pline à distance x
Karmelie a répondu à un(e) sujet de Karmelie dans AutoCAD 2011
Hum... comment expliquer? Pour une opération = une distance Pour l'opération suivante = une autre distance Dans l'exemple: Si une polyligne a une longueur de 70m. Je calcule: 70/8 (dist max) = 8.75m, j'arrondi à 9 Je calcule 70/9 = 7.7777 Je respecte le mininum OK je dessine. Avec la commande "diviser" j'insère le bloc "triangle" en divisant ma polyligne en 9 segments. Je copie le premier triange dessiné au début de ma polyligne et le dernier triangle dessiné à la fin de ma polyligne... ...et je recommence pour toutes les polylignes du calque ame3 qui sont toutes de longueur différente. Je recommence ensuite pour un autre calque, avecdes polylignes différentes er des critères différents. Les noms de calques, les distances min et max et les noms de blocs sont ici à titre d'exemple seulement. -
Symboles le long d\'un pline à distance x
Karmelie a répondu à un(e) sujet de Karmelie dans AutoCAD 2011
Bonjour, Je tente d'éclaircir mon énoncé. Je dois insérer un symbole le long d'une polyligne (comme la commande diviser le fait très bien). Toutefois j'ai des critères de distance minimum et maximum à respecter. Par exemple, l'écart en les symboles doit être supérieur à 9 mètres mais inférieur à 10 mètres. De plus il doit y avoir un symbole au début et à la fin du polyligne (ce que la command diviser ne fait pas). Je sais faire manuellement l'opération. Le problème c'est que j'ai plusieurs "cas" qui demande à insérer différents symboles qui ont des critères de distance max et min différents. J'aurai souvent ce genre d'opération à faire. Ex. Calque = ame1 Symbole = bulle Distance Min = 8m Distance Max =10m Calque = ame2 Symbole = carre Distance Min = 12.25m Distance Max = 15.0m Calque = ame3 Symbole = triangle Distance Min = 7.5m Distance Max = 8m Idéalement, on pourrait choisir le calque d'insertion, le symbole à insérer, les objets à diviser et spécifier la distance min. et max. C'est mieux? :P Karmélie -
Bonjour, Comment dois-je m'y prendre pour insérer un symbole sur une polyligne à une distance supérieure à X et inférieur à Y et insérer également un symbole au début et à la fin de la polyligne? Tous ces éléments sont bien entendu variables, soit le symbole qui peut être ou pas déjà inséré dans mon dessin, les distances X et Y varient, et la polyligne n'est jamais la même. Les symboles doivent être orientés sur la polyligne. Je sais que je peux utiliser "diviser" après avoir diviser la longueur de ma polyligne par Y et insérer....... Le problème c'est que j'en aurais pout très longtemps, et très souvent. Merci à l'avance, Karmélie
