-
Compteur de contenus
254 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par willy95
-
Petite Boite de Dialogue...
willy95 a répondu à un(e) sujet de willy95 dans Pour aller plus loin en LISP
Merci, bien que j'ai aussi un peu de mal avec les mots technique anglais, ce site est vraiment très bien je vais le décortiquer en profondeur et trouver ma solution -
Petite Boite de Dialogue...
willy95 a répondu à un(e) sujet de willy95 dans Pour aller plus loin en LISP
Merci, mais la j'avoue trop de ligne, je suis perdu, je n'arrive meme pas a lancer un exemple. juste un tout petit lisp pour bien comprendre avec une seule liste bidon serait le bien venu. Ps: j'ai oublié de dire que je ne suis qu'une grosse bille en lisp et que j'évolue doucement mais surrement. -
Bonjour a toutes et a tous, Après avoir chercher, tester, ramer et fais n'importe quoi, je pose une question qui pour certains d'entre vous comme je l'imagine sera très facile de répondre (alors hésité pas ) : Comment créer correctement en lisp une petite boite de dialogue avec une petite liste par defaut ? Genre avec un Titre de boite et une question (ex: Ville ?) et a coté un menu déroulant avec les choix possible, bien sur la réponse selectionnée doit entrer dans une variable a la cloture de la boite. Ayant tous mélangé sans résultat je préfere pour le moment ne pas vous montrer mon gros paté en lisp, j'espere pas la suite en sortir quelquechose de bien. Merci par avance
-
Bonjour a tous, Après avoir chercher pas mal de temps et sans trouver, je cherche a completer le lisp de Gile, l'idéal serait de recupérer la valeur du texte dans l'etiquette ALT et incrémenter automatiquement un numero de point dans une etiquette NUM. De plus je souhaiterais avoir un calque différent pour les numéros, un pour les Altitudes et un calque point pour le point d'insertion. (defun c:txt2blk (/ *error* makeblock ss spc) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*))) ;;---------------------------------------------------;; (defun *error* (msg) (or (= msg "Fonction annulée") (princ (strcat "Erreur: " msg)) ) (vla-EndUndoMark *acdoc*) (princ) ) ;;---------------------------------------------------;; ;; MakeBlock ;; Crée le bloc PointBloc (defun makeblock (/ block) (vl-load-com) (setq block (vla-add *blocks* (vlax-3d-point '(0. 0. 0.)) "bloc_point" ) ) (vla-put-Layer (vla-addPoint block (vlax-3d-point '(0. 0. 0.))) "0" ) (vla-put-Layer (vla-addAttribute block 0.65 acAttributeModePreset "" (vlax-3d-point '(0. 0. 0.)) "ALT" "" ) "0" ) block ) ;;---------------------------------------------------;; (princ "\nSélectionnez les textes ou valider pour tous.") (if (or (ssget '((0 . "TEXT"))) (ssget "_X" (list '(0 . "TEXT") (cons 410 (getvar 'ctab)))) ) (progn (vla-StartUndoMark *acdoc*) (or (tblsearch "BLOCK" "bloc_point") (makeblock)) (setq spc (if (= 1 (getvar 'cvport)) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (vlax-for txt (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (setq ins (vlax-get txt 'InsertionPoint) str (vla-get-TextString txt) blk (vla-InsertBlock spc (vlax-3d-point (car ins) (cadr ins) (atof str)) "bloc_point" 1. 1. 1. (vla-get-Rotation txt) ) ) (vla-put-Layer blk (vla-get-Layer txt)) (vla-put-TextString (car (vlax-invoke blk 'GetAttributes)) str) (vla-delete txt) ) (vla-delete ss) (vla-EndUndoMark *acdoc*) ) ) (princ) ) Merci d'avance pour vos suggestion.
-
ok merci beaucoup pour ces explications qui me sont bien utiles a comprendre la récupération des entités dans une liste. Encore merci
-
Alors la, Merci cela fonctionne parfaitement mais j'ai du mal a comprendre le "_non"
-
(setq p1 (getpoint "\n1er point : ")) (setq p2 (getpoint "\t2ème point : ")) (setq di (/ (Distance p1 p2) 2)) (setq p3 (polar p1 (angle p1 p2) di)) (command "_Line" p1 p3 "") Je comprends pas pourquoi ma ligne p1 p3 est dessinée p1 p2, alors que mon p3 est bien au milieu ? Qui peu m'aider ? Merci
-
Merci c'est vraiment mieux que ma bidouille.
-
J'avoue que je n'ai pas la meme maitrise alors j'explique mon ideal : Apres avoir créer une barre d'outil de Trames pour differentes couleurs de solide dans un meme calque j'ai pour le moment plusieurs routines qui doivent surrement pouvoir ce transformer en une seule. (defun C:T91 (/ cc ) (Setvar "cmdecho" 0) (Princ "\nCliquer dans la zone a Hachurer : ") (setq cc (getvar "clayer")) (command "_.layer" "_make" "Trames" "_color" 7 "Trames" "") (command "_.bhatch" "_properties" "solid" "_draw" "_back" pause "") (Command "CHPROP" "D" "" "CO" "91" "") (setvar "clayer" cc) (princ) ) (defun C:T241 (/ cc Pol) (Setvar "cmdecho" 0) (Princ "\nCliquer dans la zone a Hachurer : ") (setq cc (getvar "clayer")) (command "_.layer" "_make" "Trames" "_color" 7 "Trames" "") (command "_.bhatch" "_properties" "solid" "_draw" "_back" pause "") (Command "CHPROP" "D" "" "CO" "241" "") (setvar "clayer" cc) (princ) ) Pour tout dire sa fonctionne bien mais autant de fichier lisp que de couleur. Alors je vais étudier de plus près tout sa pour tenté de faire quelquechose de mieux construit.
-
(defun C:TM (/ cc ) (Setvar "cmdecho" 0) (Princ "\nCliquer dans la zone a Hachurer : ") (setq cc (getvar "clayer")) (command "_.layer" "_make" "Trames" "_color" 253 "Trames" "") (command "_.bhatch" "_properties" "solid" "_draw" "_back" pause "") (setvar "clayer" cc) (princ) ) Voila la c'est exatement ce que je voulais faire :) Je n'avais pas besoin de sectionner une polyligne en particulier mais plutot une zone fermée, du coup grace a Gile j'ai compris plusieurs fonctions. MERCI Gile
-
Dans Outils - Options - Onglets Selection - Parametres de l'effet visuel .
-
(defun C:TM (/ cc Pol) (setq cc (getvar "clayer")) (command "_.layer" "_make" "Trames" "_color" 253 "Trames" "") (command "chprop" Pol "" "_color" "DuCalque" "") (command "_.bhatch" "_properties" "solid" "_draw" "_back" pause "") (setvar "clayer" cc) (princ) ) Effectivement, la je pense que c'est mieux mais existe-il une fonction pour ne pas faire apparaitre tous les détails dans la fenetre de commande ?
-
Bonjour a tous, Voila j'ai un petit probleme avec cette petite suite de commande pour tramer une zone : ca fonctionne mais plusieurs messages d'erreur apparaissent, que dois-je faire pour ne plus voir ces messages ? (defun TM (/ cc) (setq cc (getvar "clayer")) (command "_.layer" "_make" "Trames" "_color" 253 "Trames" "") (command "chprop" Pol "" "_color" "DuCalque" "") (command "_.bhatch" "_properties" "solid" "_draw" "_back" pause "") (command "chprop" Pol "" "_color" "DuCalque" "") (setvar "clayer" cc) (command "chprop" Pol "" "_color" "DuCalque" "") (princ) )
-
Merci Beaucoup Tout mon probleme est résolu grace à cette commande qui c'était bien caché. Merci encore pour votre réactivité et vos renseignements très complets.
-
Tout d'abord : Bonne Année et Bonne Santé à toutes et à tous... et donc par conséquent je suis passé sur une version 11 d'autocad et la...(c'est le drame) je n'ai plus mes petites commande qui me sont si cher et que j'utilise très très souvent (en gros toutes les 30 secondes) J'ai réussi à recreer la commande de geler un calque en cliquant juste sur un des objets du calque, mais je bute sur Isoler un ou plusieurs calques juste en cliquant sur un ou plusieurs objets. Certain me diront bien qu'il existe d'autre moyen pour isoler un calque, mais celui si est tellement si simple et si rapide à mes yeux que je ne jure que par cette commande qui me manque trop, vraiment trop... Alors si vous avez une petite formule magique pour que je retrouve la joie et l'honneur d'isoler certain calque qui ne sont pas beaux. Merci d'avance
-
Listing xyz et Distance Polyligne 2D
willy95 a répondu à un(e) sujet de willy95 dans Débuter en LISP
Personellement je m'en sert sur 2006 sans probleme. -
Moi je fais comme sa : command "_.move" "_all" "" "0,0,0" "0,0,1e99" "_.move" "_p" "" "0,0,0" "0,0,-1e99"
-
Pareil
-
Bonsoir à tous .... Me revoila pour un Défi qui me semble beaucoup plus difficile à réaliser que tous les codes que j'ai pu voir dans ce genre de trames... Effectivement il existe bien des lignes de code pour réaliser des Hachures Solides dans des Polylignes Fermés mais il n'existe pas a ma connaissance un code qui permet de créer des Hachures Solides indépendantes les unes des autres dans des zones crées par des simples lignes, je suppose qu'il faut arrrivé à déterminer des zones, mais la je bloque dur dur... J'ai bien une base qui doit peut etre y ressembler... (SetQ Jeu (SSGet)) (setq i 0 lg (if jeu (sslength jeu) 0)) (while (< i lg) (Command "_HATCH" "S" (ssname jeu i) "") (setq i (1+ i)) ) (prin1) Une aide précieuse me serai utile alors n'hésitez pas à me surprendre sur ce coup la. A Bientot. :cool:
-
Voila c'est peu etre pas trop conventionnel mais SA FONCTIONNE exactement comme je le souhaitais : (Defun C:murb ( / OldAccr p1 p2 Ang12 pt) (Setq OldAccr (Getvar "OSMODE")) (setvar "cmdecho" 0) (setvar "LUNITS" 2) (setvar "AUNITS" 2) (setvar "ANGBASE" (/ pi 2)) (setvar "ANGDIR" 1) (command "_.layer" "_make" "Murs_Bas" "_color" 8 "Murs_Bas" "") (Setvar "OSMODE" 33) (setq p1 (getpoint "\n1er point : ")) (setq p2 (getpoint "\t2ème point : ")) (setq Ang12 (angle p1 p2)) (setvar "HPANG" Ang12) (setvar "HPNAME" "ANSI31") (setvar "HPSCALE" 0.02) (Setvar "OSMODE" 0) (setq pt (getpoint "\nSpécifiez un point dans la zone: ")) (command "_.-bhatch" pt "") (command "_.layer" "CH" "0" "" "") (Setvar "OSMODE" OldAccr) (princ) ) Merci à tous
-
Merci je vais prendre surrement un peu plus de temps que vous, mais je vais me battre et j'espere réussir avec succès ce projet. A bientot....
-
En fait, je cherche a faire quelquechose de moins perfectionné dans la selection : Juste selectioner une ligne puis piqué un point et un hachurage est insérer dans la zone avec un angle à 45° du gisement de la ligne ainsi qu'une echelle de 0.01 par exemple. Pour hachuré plusieurs polyligne j'utilise ce petit code: ;Hachure multiples éléments (SetQ Jeu (SSGet)) (setq i 0 lg (if jeu (sslength jeu) 0)) (while (< i lg) (Command "_HATCH" "S" (ssname jeu i) "") (setq i (1+ i)) ) (prin1) Merci pour vos réponse.
-
Bonjour a tous... Je souhaiterais dessiner des hachures dans une zone, avec un angle à 50 grades de l'objet selectionné. Pour le moment voila mon début, mais j'ai quelques problemes... (Defun C:murb ( / AncienPlan p1 p2) (setvar "cmdecho" 0) (setvar "LUNITS" 2) (setvar "AUNITS" 2) (setvar "ANGBASE" (/ pi 2)) (setvar "ANGDIR" 1) (setq p1 (getpoint "\n1er point : ")) (setq p2 (getpoint "\t2ème point : ")) (setq Ang12 (angle p1 p2)) (command "_-Hatch" "p" "ANSI31" Ang12 "0" "") (princ) ) En fait la commande Hatch ne se lance pas et je n'arrive pas a recuperer l'angle correctement. Si quelqu'un peu me m'etre sur la voie... Merci d'avance.
-
Merci pour toutes ces réponses qui m'ont étés données pour pouvoir guider mes recherches et m'enseigner plusieurs ligne de code. Merci (Setq LotAF (Strcat "Lot n°" (itoa Nulot) ":")) Voila mon résutat recherché , les fonctions (itoa et Strcat) m'on été très utile... :red:
-
Merci pour tout, j'ai réussi à comprendre les conditions... Le plus facile pour étant "Getint" avec le iniget. Il me reste une question en suspends : A quoi correspond le chiffre 6 après le initget ? Et pour plusieurs ordre dans la condition existe il une manière plus condensé que celle que j'ai ecrite ? (initget 6 "sa") (setq Nulot (Getint "\nNuméro de Lot2 ou :")) (if (not Nulot) (setq Nulot "sa")) (cond ((eq Nulot "sa") (command "TEXTE" "ST" "COURIER" pt33 (polar pt (+ Ang (/ (* 4.0 pi) 2)) 0.1) "Surface Annexe :" ) ) (T (Setq LotAF (Strcat "Lot n°" (itoa Nulot) ":")) (command "TEXTE" "ST" "COURIER" pt33 (polar pt33 (+ Ang (/ (* 4.0 pi) 2)) 0.1) (prin1 LotAF)) ) ) (initget 6 "sa") (if (not Nulot) (setq Nulot "sa")) (cond ((eq Nulot "sa") (setq pt1 (polar pt (+ Ang (/ (* 3.0 pi) 2)) 0.6)) (command "TEXTE" "ST" "COURIER" pt1 (polar pt1 (+ Ang (/ (* 4.0 pi) 2)) 0.1) (MiseEnForme "Surface Annexe Totale" (RtoS Somme 2 2))) ) (T (setq pt1 (polar pt (+ Ang (/ (* 3.0 pi) 2)) 0.6)) (command "TEXTE" "ST" "COURIER" pt1 (polar pt1 (+ Ang (/ (* 4.0 pi) 2)) 0.1) (MiseEnForme "Surface Carrez" (RtoS Somme 2 2))) ) ) (initget 6 "sa") (if (not Nulot) (setq Nulot "sa")) (cond ((eq Nulot "sa") (setq pt (polar pt1 (+ Ang (/ (* 3.0 pi) 2)) 0.07)) (Setq Pt1 (polar pt Ang 5.25)) (Command "_Line" pt pt1 "") (setq pt34 (polar pt33 (+ Ang (/ (* 3.0 pi) 2)) 0.07)) (Setq Pt33 (polar pt34 Ang 2.5)) (Command "_Line" pt33 pt34 "") ) (T (setq pt (polar pt1 (+ Ang (/ (* 3.0 pi) 2)) 0.07)) (Setq Pt1 (polar pt Ang 5.25)) (Command "_Line" pt pt1 "") (setq pt34 (polar pt33 (+ Ang (/ (* 3.0 pi) 2)) 0.07)) (Setq Pt33 (polar pt34 Ang 1.5)) (Command "_Line" pt33 pt34 "") ) ) En tout cas encore merci pour tout cet enseignements.
