-
Compteur de contenus
1 489 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par zebulon_
-
Donc, j'en conclue que CADXP est devenu un critère d'embauche ? Excellent !!! ;) Genre Cherche dessinateur 20 ans d'expérience en topographie, maitrisant Autocad et Covadis, parfaitement trilingue Français, Breton et Basque, minimum ceinture noire sur CADXP (copie du diplôme requis). Salaire maxi : 1238 € brut pour 58h/semaine pour un poste situé aux Iles Kerguelen Envoyer votre lettre de motivation à : synecure@labonnepaye.fr :P Désolé, d'habitude je ne suis pas bavard... Amicalement Vincent
-
ssget et filtre sur données étendues
zebulon_ a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
ça j'en étais bien conscient et c'est pour ça que je disais plus haut que la solution de (Gile) étais la bonne. C'était juste que les fonctions de Didier-AD permettent de se servir des xdata sans trop s'embêter en écrivant le code lisp. Amicalement Vincent -
Faire une polyligne double trait et hachuré, c\'est possible?
zebulon_ a répondu à un(e) sujet de zizou_elec dans Routines LISP
;;; ;;; lancer une commande autocad (defun mycmd (LCMD / CMD ETL LELEM RES OLDCMDECHO) (setq ETL (entlast)) (setq OLDCMDECHO (getvar "CMDECHO")) (setvar "CMDECHO" 1) (foreach CMD LCMD (command CMD) ) (while (not (zerop (getvar "cmdactive"))) (command pause) ) (setvar "CMDECHO" OLDCMDECHO) (setq LELEM nil) (if (not ETL) (setq ETL (entnext)) (setq ETL (entnext ETL)) ) (while ETL (setq LELEM (cons ETL LELEM)) (setq ETL (entnext ETL)) ) (setq RES LELEM) ) (defun c:chem_cable (/ D PLENAM PLOBJ OFFSETD OFFSETG PTOD PTFD PTOG PTFG AcDoc Space LO LF) (vl-load-com) ;; largeur de la polyligne (setq D (getreal "\nLargeur du chemin de cable : ")) ;; tracer une polyligne (setq PLENAM (car (mycmd '("_pline")))) ;; transformer en vla-object (setq PLOBJ (vlax-ename->vla-object PLENAM)) ;; faire les décallages (vla-offset PLOBJ (/ D 2.0)) ; à droite (setq OFFSETD (vlax-ename->vla-object (entlast))) (vla-offset PLOBJ (/ D -2.0)) ; à gauche (setq OFFSETG (vlax-ename->vla-object (entlast))) ; effacer la polyligne d'origine (vla-erase PLOBJ) ; fermer les extrémités avec des lignes (setq PTOD (vlax-curve-getStartPoint OFFSETD)) (setq PTFD (vlax-curve-getEndPoint OFFSETD)) (setq PTOG (vlax-curve-getStartPoint OFFSETG)) (setq PTFG (vlax-curve-getEndPoint OFFSETG)) (setq AcDoc (vla-get-activeDocument (vlax-get-acad-object)) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (vla-addLine Space (vlax-3d-point PTOD) (vlax-3d-point PTOG) ) (setq LO (entlast)) (vla-addLine Space (vlax-3d-point PTFD) (vlax-3d-point PTFG) ) (setq LF (entlast)) ;; on fait un PEDIT "Joindre" avec tout ça (setvar "peditaccept" 1) (command "_pedit" "_m" LO (vlax-vla-object->ename OFFSETD) LF (vlax-vla-object->ename OFFSETG) "" "_j" 0.1 "_w" "0.0" "") ;; et enfin on y met une hachure (qu'on peut changer ici) (command "-fhach" "_p" "_u" "45" D "_n" "_s" (entlast) "" "") (princ) ) ou quelque chose dans le genre Amicalement Vincent [Edité le 7/8/2008 par zebulon_] -
ssget et filtre sur données étendues
zebulon_ a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
Bonjour, pour les xdata, je fais comme (gille). Par contre, pour me simplifier la tâche au niveau de l'écriture, j'utilise la bibliothèque de fonctions mise à disposition par Didier-AD ici, où il a déjà été amplement remercié pour cela par quelques uns ici présents. Cela évite de se taper des (cadr (assoc -3... à n'en plus finir et permet de gérer les xdata de façon fonctionnelle. Amicalement Vincent -
Merci, j'ai rajouté le petit trait qui va bien dans le bloc définissant la flèche et ça marche bien. http://img293.imageshack.us/img293/5496/coteperso1ll6.jpg Amicalement Vincent
-
Bonjour, J'ai fait une cote avec une flèche perso (la petite étoile à gauche), et on s'aperçoit que, dans ce cas, Autocad supprime un bout de ligne de cote, ainsi que l'intégralité de l'extrémité de la ligne de cote. http://img78.imageshack.us/img78/8767/cotepersozg7.jpg J'en conclue que, si je souhaite avoir le bout de la ligne de cote et son extrémité, il faut que le bloc "flèche perso" les contiennent. Ou bien y-a-t'il une autre manière de faire ? Merci Vincent
-
Euhh, pour l'heure, dans les départements d'outre-Vosges, il fait une chaleur à crever. Et s'il y en a qui éternuent, c'est qu'ils sont allergiques à la clim. Et quand quelqu'un fait "ACHOUME", on dit Gsundheit, c'est plus poli. Bon, il fait trop chaud pour travailler. Je retourne piquer une tête dans l'ersatz d'océan qu'est la gravière d'à côté. Amicalement Vincent
-
Dans le même esprit que ce sujet, je me suis demandé comment on pouvait savoir si un point est à droite ou à gauche d'un objet. Droite et gauche s'entendant par rapport au sens de progression de l'objet. Un peu comme dans la commande DECALER, comment autocad fait pour savoir s'il faut décaler de pi/2 ou de 3pi/2 ? J'ai regardé du côté des fonctions vlax-curve et ça donne ceci (defun PTaDroiteObj (obj pt / PTN PM fder PT1DERIV) (setq PTN (vlax-curve-GetClosestPointTo obj PT)) (setq PM (vlax-curve-GetParamAtPoint obj PTN)) (setq fder (vlax-curve-getfirstderiv obj PM)) (setq PT1DERIV (mapcar '+ ptn fder)) (< (sin (- (angle PTN PT) (angle PTN PT1DERIV))) -1e-14) ) (defun c:test () (vl-load-com) (setq ENAM (car (entsel))) (setq obj (vlax-ename->vla-object ENAM)) (setq PTCOT (trans (getpoint "\nCôté : ") 1 0)) (if (PTaDroiteObj obj PTCOT) (alert "à droite") (alert "à gauche") ) (princ) ) où on sélectionne un objet du type "curve" (droite, polyligne, arc, spline ...) et on donne un point. Puis le lisp nous dit si le point est à droite ou à gauche de l'objet. La fonction vlax-curve-getFirstDeriv m'a particulièrement intéressée, puisqu'elle donne la pente instantanée d'une courbe à un point via un paramètre (enfin, c'est comme ça que je l'ai compris). Par contre, j'ai regardé aussi la fonction vlax-curve-getSecondDeriv, et là je n'ai pas trop compris ce que c'est. Je soumets tout cela à votre critique et vos remarques amicalement Vincent [Edité le 12/4/2011 par zebulon_]
-
Re, Bon, je ne suis pas le seul à être :casstet: ça me rassure... Merci Amicalement Vincent
-
et pour ajouter une entrée j'ai essayé ceci ;; rajouter une entrée (if (not (setq nb (vl-registry-read chemin "NumStartup"))) (setq nb "0") ) (setq nb (itoa (1+ (atoi nb)))) (vl-registry-write chemin (strcat nb "Startup") "C:\\Base de donnees\\fer\\Reacteur_cote.lsp") (vl-registry-write chemin "NumStartup" nb) ça met à jour le registre, mais pas la liste dans autocad :casstet: Il doit manquer une étape Amicalement Vincent
-
Bonjour, Je m'en veux. J'ai cherché dans les registres le nom d'un de mes lisp définis dans appload et je ne l'ai pas trouvé... Forcément, dans regedit, seul la recherche sur les clés est cochée par défaut. Si j'avais coché "Données", la recherche aurait été plus fructueuse. :red: Merci Amicalement Vincent
-
Bonjour, est-ce que quelqu'un sait où est enregistré la liste des applications lancées au démarrage et comment on peut la modifier ? Amicalement Vincent [Edité le 16/6/2008 par zebulon_]
-
c'est l'éternel problème de la concurrence entre l'arme et le bouclier Amicalement Vincent
-
Bonjour, Est-ce qu'il y a quelqu'un qui s'est déjà intéressé aux méthodes de cryptage, comme Rijndael. Cela a l'air d'être disponible dans les librairies windows. voir Rijndael L'objectif est d'avoir une fonction (encrypt "texte" cle) et une autre (decrypt "1eç#°" cle) J'utilise quelque chose pour crypter et décrypter, mais ça ne résiste pas longtemps... puisque c'est basé sur une simple xor (defun MI_Encrypt1( Str Key / fptr tmp _Str ) (vl-list->string (mapcar '(lambda (x) (+ (boole 6 x Key) 0)) (vl-string->list (strcase Str)))) ) Comme vous pouvez le constater, c'est un peu trop simple. Merci Amicalement Vincent
-
Bonjour, Au niveau de la démarche, il n'y a rien à redire. Mais, si la commande étirer ne fait pas évoluer la cote, c'est que cette cote a été décomposée ou éditée (au niveau des propriétés de la cote, la chaine "remplacement du texte" écrase la chaine "Dimensions"). Sinon, je ne vois pas. Je procède comme ça depuis la version 12 où les cotes n'étaient de toute façon pas associatives, alors si ça ne marchait pas, je m'en serais rendu compte depuis. Ce qui est curieux, aussi, en regardant ta cote "100" d'un peu plus près, c'est que le "100" n'est plus centré après la commande ETIRER, j'en conclue que la cote est complètement décomposée, elle ne risque donc pas d'évoluer. DIMASSOC doit être à 0, il serait mieux à 1. et pour DIMASO, il vaut mieux ne plus s'en servir Amicalement Vincent
-
Bonjour, j'ai essayé sur ma version 2007 (basique) et la sélection "d" prend la dernière entité dans l'absolu. Donc, cela n'a pas l'air d'être dû à MAP, mais à un changement à partir de la version 2007. Par contre, comment changer pour pouvoir sélectionner à nouveau le dernier objet visible créé, je ne sais pas... Amicalement Vincent
-
Bonjour, c'est exactement ça pas du tout, sauf si elle était "forcée" au départ. Sinon elle évolue en même temps que la géométrie, même si elle n'est pas associative. Amicalement Vincent
-
Création de rondelle pour cd
zebulon_ a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
re, (setvar "osmode" 0) en début de lisp, c'est bien mais ce n'est pas assez. Tu supprimes les paramètres de l'accrochage aux objets sans les rétablir en fin de lisp. Donc, il serait peut être plus prudent de faire (setq OLDOS (getvar "OSMODE")) (setvar "OSMODE" 0) ... ... ... (setvar "OSMODE" OLDOS) histoire de retrouver le paramétrage de l'accrochage aux objets après l'exécution du lisp. Amicalement Vincent -
Création de rondelle pour cd
zebulon_ a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Bonjour, attention aux accrochages aux objets. Quand tu fais par exemple (command "texte" "j" "md" pins "1" "" lst) si le pins est près d'un objet existant et qu'un accrochage aux objets est activé, le texte se mettra là où l'accrochage aux objets lui dira de se mettre et pas au point pins. (command "texte" "j" "md" "_non" pins "1" "" lst) ou (command "cercle" "_non" pins 59 ) pour ôter localement l'accrochage aux objets. Amicalement Vincent -
Bonjour, mais on a les cotes sur un espace et les objets cotés sur un autre. Et, comme l'expérience le montre, il faut toujours reprendre un dessin (au moins une fois, sinon plus), je préfère mille fois avoir les cotes dans le même espace que les objets cotés pour cette raison.Tu me diras qu'il y a la possibilité d'associer des cotes... Bof, ça ne marche bien que quand le revendeur Autocad te fais la démo. Il suffit que tu effaces quelques objets cotés pour que les cotes associées ne le soient plus. Et là il faut être doublement vigilant au moment où tu fais des modifications. Moi, je me suis fais ma religion en la matière. Je cote en espace objet avec des cotes non associées. De toute façon, 9 fois sur 10, je modifie avec la commande étirer donc, je sélectionne le nodal de la cote également et elle est modifiée, même si elle n'est pas associée. Et quand tes étudiants seront dans la vraie vie, peut être changeront-ils d'avis, même s'il faut se coltiner quelques styles de cotes en plus (moi, j'ai un style de cote par échelle, point barre). Je ne fais que très peu de formation. Mon boulot, c'est de faire des plans 2D essentiellement dans le domaine des ouvrages d'art que ce soit en exécution (coffrage et ferraillage) ou en avant-projet. Donc, des plans techniques quotidiennement au menu où j'essaie d'être efficace en matière de cotation, puisque cela représente au moins 50% de mon boulot. La 3D et le lisp, c'est pour la récréation... Amicalement Vincent
-
Bonjour, (defun ryy (ANG / ss ent n pt1 pt2) ... ... ) le code est le même, mais sans le getreal. Après on peut faire (ryy 90) ou (ryy 45) Amicalement Vincent
-
c'est noté. Comme je n'ai rien fait de particulier sur ma version 2007, je pensais que dorénavant c'était chargé automatiquement. Faut croire que non ! Merci de l'info. Amicalement Vincent
-
Bonsoir, Non, puisque mon impératif c'est d'avoir des cotes identiques sur mon plan quelle que soit l'echelle. La taille de la cote en espace objet est donc inversement proportionnelle à l'echelle de l'espace papier. quand on ne fait que de la 2D je ne vois pas trop l'intérêt, mais je peux me tromper. J'aime bien, quand je modifie un plan, avoir tout sous la main : le dessin et les cotes qui vont avec. C'est un avis qui n'engage que moi. Donc, pour ne pas me faire avoir, quand je fais un plan je commence par tout dessiner, puis je fais ma mise en page en choisissant le format adéquat et les echelles qui vont bien et ce n'est qu'après que je cote puisque je connais l'échelle de mise en page. Ce qui est important aussi dans ma façon de travailler, c'est d'avoir les cotes au 1/50ème sur un calque cot-50 et les cotes au 1/20ème sur un calque cot-20 etc..., parce qu'il m'arrive fréquemment d'utiliser le même détail et de le représenter à 2 échelles différentes. Je gèle le calque cot-50 dans une fenêtre et le calque cot-20 dans l'autre, comme ci-dessous. http://img374.imageshack.us/img374/8665/cotdetxc3.jpg Alors que toi, tu mets tout sur le même calque quelle que soit l'échelle. Amicalement Vincent
-
Bonjour, Tout dépend de la version de ton cher Totocad. Sur les versions actuelles, il n'y a plus besoin de charger les fonctions étendues fournies par Visual lisp. Sur les versions plus anciennes, il faut impérativement rajouter (vl-load-com) pour les charger. J'édite le code ci-dessus en conséquence. Quant à l'aide, tu fais Outils/AutoLISP/Editeur Visual Lisp et quand l'éditeur Visual LISP s'ouvre tu tapes F1 pour obtenir l'aide correspondante. Et là tu trouves par exemple : Désolé, c'est en anglais. Sinon, tu as aussi ce site où j'ai appris pas mal de choses. Désolé, c'est en anglais aussi. Et tu as aussi la rubrique Visual LISP de ce forum, qui est pas mal fourni et qui est en français. Amicalement Vincent PS : Le visual LISP est très puissant et tu gagneras à t'y intéresser. En tout cas c'est loin d'être des trucs de bourrin.
-
Bonjour (defun do_help_cyrkan (/ shell FileName) (vl-load-com) (setq filename (findfile "aidecyrkan.doc")) (if FileName (progn (setq shell (vla-getinterfaceobject (vlax-get-acad-object) "Shell.Application" ) ) (vlax-invoke-method shell 'Open filename) (vlax-release-object shell) ) (alert "Fichier d'aide non trouvé") ) ) Voilà, avec ça tu devrais arriver à ouvrir du .doc, .xls, .pdf etc... du moment que l'application correspondante est installée sur le poste. Cela fonctionne comme si tu double-cliques sur un fichier dans l'explorateur de windows Amicalement Vincent [Edité le 19/5/2008 par zebulon_]
