-
Compteur de contenus
2 764 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Bred
-
Salut Pieroka ;) , C'est quoi comme entité ? un solide 3D ?
-
Salut, Je n'arrive pas à trouver la commande vlisp permettant de réaliser la même action que la commande VPLAYER. (je n'arrive pas à geler/dégeler un calque dans une fenêtre en vlisp) J'ai parcouru l'aide. J'ai chercher sur internet. et rien... même un code vba me contenterais ! (je l'estrapolerais en vlisp) merci de votre aide !
-
Salut et bon dimanche, la variable que tu cherches est OSNAPHATCH à mettre su 0
-
Salut, je m'y suis déjà tenté, et je n'arrive à rien : en vlisp, équivalent au vba, tu ne peux que vraiment piloter un SCU si il est nommé... Je passe donc par les (command ... (ça marche bien, il faut juste faire une gestion d'erreur en béton...)
-
Par contre, rapidement : - Tu modifies plein de variable que tu ne réinitialise pas en fin de lisp. (setvar "cmdecho" 0) (setvar "menuecho" 0) (setvar "osmode" 219) (setvar "orthomode" 0) (setvar "autosnap" 29) tu devrais en plus faire une gestion d'erreur... - tu peux éviter ta ribambelle de (setq ... setq ...) en faisant : (setq nameEnt01 (cdr (assoc 2 (cdr (entget CarEnt01)))) PtInstEnt01 (cdr (assoc 10 (cdr (entget CarEnt01)))) AngInstEnt01rad (cdr (assoc 50 (cdr (entget CarEnt01)))) AngInstEnt01deg (* 180.0 (/ AngInstEnt01rad pi)) scalexInstEnt01 (cdr (assoc 41 (cdr (entget CarEnt01)))) scaleyInstEnt01 (cdr (assoc 42 (cdr (entget CarEnt01)))) PtInstextc01 (polar PtInstEnt01 AngInstEnt01rad (* Coefins scalexInstEnt01))) - n'oublis pas de déclarer maintenant tes variables locales : (defun c_insext (Coefins Blocinsert01 Blocinsert02 / ANGINSTENT01DEG ANGINSTENT01RAD CARENT01 CDRENT01 ENT01 LAYENT01 NAMEENT01 PTINSTENT01 PTINSTEXTC01 PTREF01 PTREF02 PTREF03 SCALEXINSTENT01 SCALEYINSTENT01 TYPEENT01) .... - tu devrais faire un (princ) en fin de code afin d'éviter les lignes superflus de fin de code sur la ligne de commande.
-
Salut, j'avoues que j'ai du mal à comprendre ton lisp. A première vu, je pense qu'il y a déjà un problème simplement dans la méthode : Quand tu lances une commande (ex : extc01), tu lances ton sous programme qui te récupère les variables... MAIS, dans les argument passé à ton sous programme, tu as une variable que tu récupers DANS ce sous programme... donc si le sous programme n'est pas lancé à vide une fois, rien ne peut fonctionner ... (defun C:extc01 (/ Coefins Blocinsert01 scale01 scale02 Blocinsert02 scale03) (c_insext (* 0.8[b] scalexInstEnt01[/b]) "EXTC01.DWG" [b]scalexInstEnt01[/b] [b] scalexInstEnt01[/b] "EXTC01.DWG" [b]scalexInstEnt01[/b] ) ) c'est pas simple de corriger là.... [Edité le 10/5/2007 par Bred]
-
Ton clavier ne serait pas un peu vieux ??? Ou quand tu manges dessus tu y fait tomber les miettes de ton Sandwich ??? ;)
-
??? ça bug toujours vu ce message ??? :casstet: :o
-
Ma réponse va te paraitre peut être idiote mais on ne sait jamais : si tu as besoin d'insérer un bloc que tu as créer dans le plan que tu ne veux pas ouvrir, je ne vois que : - ou tu dits à ton lisp de transformer ton bloc en "Wbloc" que tu insert et efface ensuite du répertoire. - ou tu re-créés ton bloc en lisp dans ton fichier non ouvert de la même manière que tu l'as créé dans le dessin courant. :P [Edité le 9/5/2007 par Bred]
-
Remplacer caractère par un autre
Bred a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
... une autre (setq txt "ben Kenobi ben ben") (while (vl-string-search "ben" txt) (setq txt (vl-string-subst "qsxqsx" "ben" txt)) ) -
et non .... va voir ici ...
-
interrogation sur une polyligne
Bred a répondu à un(e) sujet de je56 dans Pour aller plus loin en LISP
Salut, oui, grâce au lisp de (gile) diviser/mesurer 3D. -
Salut, voir ici une piste.
-
Récupérer liste de points Xet y
Bred a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
Si c'est juste récupérer les points, j'ai fait dernièrement ceci pour les polylignes dites "3D", transposable facilement pour les lwpolylignes, cela te retourne un fichier .csv récupérable en .xls. -
Créer des variables d\'environnement avec SETENV
Bred a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Ben voyons... de quoi gagner des lignes à foison !!!! (defun delenv (var) (if (getenv var) (progn (if (vl-registry-delete (strcat "HKEY_CURRENT_USER\\"(vlax-product-key)"\\FixedProfile\\General\\") var) (princ (strcat "\n Variable " var " supprimée !.")) (princ (strcat "\n Variable " var " non supprimée.")) ) ) (princ (strcat "\n Variable " var " n'existe pas")) ) (princ) ) merci ! -
Ben moi ça fonctionne.... Pour info, l'exemple de Patrick_35 te ressort le nom du fichier avec l'indice le plus grand (last (vl-sort (vl-directory-files "c:\\" "*.jpg" 1) '<)) Donc, si tu le récupères, tu n'a qu'à l'incrémenter de +1 et ça marche. POur ma boucle, elle fonctionne chez moi... En détail sur ton dernier post : c'est : (if (findfile name)..... la réponse au if=T c'est ça : (while (findfile (setq name (strcat "c:\\monimage_ver_"(rtos x)".jpg"))) (setq x (+ x 1)) ) c'est la réponse nil au if ... La mème chose en créant un fichier (vide) sous c: pour être + concret : (test le plusieurs fois et regarde sous C !!!!) (defun c:test (/ NAME X F) (setq name "c:\\monimage_ver_1.jpg" x 2) (if (findfile name) (while (findfile (setq name (strcat "c:\\monimage_ver_"(rtos x)".jpg"))) (setq x (+ x 1)) ) ) (setq f (open name "W")) (close f) )
-
Récupérer liste de points Xet y
Bred a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
Salut, il y a beaucoup d'exemple dans ce forum, mais je ne comprends pas ta demande : -
Tester l\'existence d\'un calque
Bred a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
... ou encore : (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (not (tblobjname "LAYER" "Mon_calque")) (vla-add (vla-get-Layers AcDoc) "Mon_calque")) [Edité le 9/5/2007 par Bred] -
Re, une grosse erreur dans la routine : un "not" pas malin... (setq name (strcat "c:\\"(vl-string-trim ".dwg" (getvar "dwgname")) "_ver_1.jpg")) (setq x 2) (if (findfile name) (while (findfile (strcat "c:\\"(vl-string-trim ".dwg" (getvar "dwgname")) "_ver_"(rtos x)".jpg")) (setq x (+ x 1)))) pour tester le principe, j'ai mis un test_vers_1.txt et test_vers_2.txt sous c: et j'ai lancé ça : (defun c:test (/ NAME X) (setq name "c:\\test_vers_1.txt" x 2) (if (findfile name) (while (findfile (setq name (strcat "c:\\test_vers_"(rtos x)".txt"))) (setq x (+ x 1)) ) ) name ) ... donc pour la récupération du nom de fichier etc.... tu récupères les explications précédentes.
-
Récupérer Bloc imbriqués \"juste\".
Bred a répondu à un(e) sujet de Bred dans Pour aller plus loin en LISP
OK, merci ! -
Récupérer Bloc imbriqués \"juste\".
Bred a répondu à un(e) sujet de Bred dans Pour aller plus loin en LISP
Salut, maintenant que tu me propose la solution, je me rends compte en fait que mon problème venait de la base de mon code : en fait j'attaquais les attributs en partant de la collection de blocs récupérer, et non pas du bloc parent (celui sélectionné)... merci ! Question parrallèle : quel est la différence entre "EffectiveName" et "Name" ? -
Re, une autre piste, comme tu dis que valeur de la variable NOMUTT à 0 ???
-
Salut et bienvenue ! Un petit truc rapidement fait, à tester. Vu que tu parles de coordonnée sen Z je pense que tu à des polylignes dites "3D", donc tu ne peux que sélectionner celles-ci. Le fichier créé est un .csv transposable en .xls charger et taper "test" (comme d'hab, une routine piqué à (gile) : lst2mat - merci) (defun c:test (/ COORDS F NOMFICHIER SEL X) (defun lst2mat (lst n) (if (and lst (zerop (rem (length lst) n))) (cons (sublst lst 1 n) (lst2mat (sublst lst (1+ n) (- (length lst) n)) n) ) ) ) (setq sel nil coords nil) (while (not sel) (setq sel (ssget '((0 . "POLYLINE"))))) (repeat (setq x (sslength sel)) (setq coords (append (list (lst2mat (safearray-value (vlax-variant-value (vla-get-Coordinates (vlax-ename->vla-object (ssname sel (setq x (1- x))))))) 3)) coords)) ) (setq nomfichier (getfiled "Nom du fichier Exportation" (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4)) " " (menucmd "M=$(edtime,$(getvar,date),DD-MO-YYYY)"))"csv" 1)) (setq f (open nomfichier "w")) (repeat (setq x (length coords)) (princ "\n" f) (foreach n (nth (setq x (1- x)) coords) (foreach o n (princ o f) (princ ";" f)) (princ "\n" f) ) ) (close f) (princ) )
-
oh là! je ne me permettrais pas de penser ça !!! j'ai commis dans ce forum de belle question qui peuvent le paraitre aussi !!! On ne peut pas tout connaitre !
