-
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)
-
lisp dans autocad donnant la somme des polylignes dans un dessin
(gile) a répondu à un(e) sujet de jeanpoco dans AutoCAD 2007
Salut, ((lambda (/ ss n long obj) (if (setq ss (ssget "_X" '((0 . "LWPOLYLINE")))) (progn (setq n (sslength ss)) (princ (strcat "\nLe dessin contient : " (itoa n) " polylignes, ") ) (setq long 0.0) (repeat n (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))) long (+ long (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj) ) ) ) ) (princ (strcat "d'une longueur totale de : " (rtos long))) ) ) (princ) ) ) -
Salut Bred, Juste une petite remarque, le point d'insertion d'une référence de bloc n'est pas défini dans le SCG, mais dans le SCO. Je pense qu'il vaut mieux faire : (command "_point" (trans (cdr (assoc 10 (entget ent_b))) ent_b 1)) Tu peux voir ce sujet.
-
Alphanumeric TO Float plutôt. (princ (angtos (+ amin (/ pi 2)) (getvar "AUNITS") 4))
-
Salut, Deux petits LISP qui devraient fonctionner uniquement avec les polylignes de largeur constante. La largeur des polylignes est consevée dans le dessin (même après fermeture et enregistrement). Version améliorée le 30/09/06 ;;; Met toutes les polylignes de largeurs constantes à 0 ;;; et enregistre leurs largeurs initiale (defun c:SetPlineWidthTo0 (/ lst ss n e_lst width) (setq lst (vl-bb-ref 'PlineWidth)) (if (setq ss (ssget "_X" '((0 . "LWPOLYLINE") (-4 . ">") (43 . 0)))) (repeat (setq n (sslength ss)) (setq e_lst (entget (ssname ss (setq n (1- n)))) lst (cons (cons (cdr (assoc 5 e_lst)) (cdr (assoc 43 e_lst))) lst ) ) (entmod (subst '(43 . 0) (assoc 43 e_lst) e_lst)) ) ) (vl-bb-set 'PlineWidth lst) (princ) ) ;;; Restaure leurs largeurs initiales aux polylignes modifiées ;;; avec SetPlineWidthTo0 (defun c:RestorePlineWidth (/ lst ent e_lst) (if (setq lst (vl-bb-ref 'PlineWidth)) (mapcar '(lambda (x) (if (setq ent (handent (car x))) (progn (setq e_lst (entget ent)) (entmod (subst (cons 43 (cdr x)) (assoc 43 e_lst) e_lst)) ) ) ) lst ) ) (princ) ) [Edité le 30/9/2006 par (gile)]
-
Y-a-il un juriste dans le forum ?
(gile) a répondu à un(e) sujet de winfield dans Emploi, monde du travail
Salut, Je ne suis pas juriste, mais je crois savoir que le code du travail français ne permet pas de baisser le salaire d'un employé pour la même fonction. Si ton augmentation (applause) a été effective (tu as au moins un bulletin de salaire où elle apparaît) il ne doit pas pouvoir revenir en arrière. Si ce nest pas les cas et que tu n'as aucune preuve écrite d'une promesse d'augmentation, je crains qu'il ne soit difficile d'envisager une procédure légale. -
Salut, rtos atof itoa atoi angtos angtof min max ascii chr vl-list->string vl-string->list vlax-ename->vla-object vlax-vla-object->ename Et j'en oublie sûrement ...
-
Salut, J'ai juste modifié le premier LISP (voir plus bas), j'ai supprimé l'attribut champ dynamique "périmètre" et ajouté un attribut "Deuxième nom" à spécifer par l'utilisateur. J'ai aussi ajouté des commentaires. Le bloc est d'abord inséré avec les valeurs d'attributs par défaut, puis ces valeurs sont remplacées par celles spécifiées par l'utilisateur ou le champ dynamique. Ça se passe dans ces lignes de code : (mapcar '(lambda (x y) (vla-put-TextString x y)) (vlax-invoke ref 'GetAttributes) (list nom nom2 aire) ) Où (vlax-invoke ref 'GetAttributes) retourne la liste des valeurs par défaut et (list nom nom2 aire) la liste des nouvelles valeurs correspondantes. Pour une meilleure lisibilité, je te conseille d'utiliser l'éditeur VisualLISP (menu Outils >> AutoLISP >> Editeur VisualLISP) et d'y "Formater la fenêtre d'édition". Je te laisses découvrir toutes les autre possibilités offertes par l'éditeur que je trouve fort utile. http://img459.imageshack.us/img459/8453/vlispro0.png ;;; Pline_bloc -Gilles Chanteau- 29/09/06 ;;; Insère le bloc "pline_block" après sélection d'une polyligne ;;; Attribut 1 : Nom de la pièce ;;; Attribut 2 : Deuxième nom ;;; Attribut 3 : Aire de la polyligne (defun c:pline_block (/ AcDoc Space bloc nom ent aire nom2 ins) ;; Pointeurs vers le document actif et l'espace actif (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) ;; Recherche du bloc "pline_block" dans la collection, ;; puis dans les fichier du chemin de recherche (cond ((tblsearch "BLOCK" (setq bloc "Pline_block"))) ((findfile (setq bloc "Pline_block.dwg"))) (T (setq bloc nil)) ) (if bloc ;; Si le bloc a été trouvé (progn ;; Sélection d'une entité (while (not (setq ent (car (entsel))))) (if (= (cdr (assoc 0 (entget ent))) "LWPOLYLINE") ;; Si l'entité sélectionnée est bien une polyligne (progn ;; Traduction de l'entité en objet-vla ;; ID de l'objet ;; Champ "aire" -troisième attribut- (setq obj (vlax-ename->vla-object ent) id (vla-get-ObjectID obj) aire (strcat "% (itoa id) ">%).Area \\f \"%lu6%qf1\">%" ) ) ;; Entrée du nom -premier attribut- (initget 1) (setq nom (getstring T "\nNom de la pièce: ")) ;; Entrée du 2ème nom -second attribut- (initget 1) (setq nom2 (getstring T "\nDeuxiéme nom: ")) ;; Point d'insertion (initget 1) (setq ins (trans (getpoint "\nPoint d'insertion: ") 1 0)) ;; Insertion du bloc (setq ref (vla-InsertBlock Space (vlax-3d-point ins) bloc 1.0 1.0 1.0 0.0 ) ) ;; Remplacement des valeurs d'attributs par défaut par celles spécifiées (mapcar '(lambda (x y) (vla-put-TextString x y)) (vlax-invoke ref 'GetAttributes) (list nom nom2 aire) ) ;; Régénération de la fenêtre active (vla-regen AcDoc acActiveViewport) ) ;; Si l'entité sélectionnée n'est pas une polyligne (alert "L'objet sélectionné n'est pas une polyligne.") ) ) ;; Si le bloc n'a pas été trouvé (alert "Le bloc \"Pline_block\" est introuvable.") ) (princ) )
-
Salut, Il faut mettre la variable système MBUTTONPAN à 1 et si ta souris est une logitech, paramétrer la molette comme "Troisième bouton".
-
On dit aussi parfois : "Une fonction récursive est une fonction récursive."
-
Pbm lisibilité champs après export Excel
(gile) a répondu à un(e) sujet de phil_vsd dans AutoCAD 2006
Si, si, il m'est arrivé de poser des questions et d'avoir eu des réponses ;) -
Salut, Un petit LISP pour sélectionner tous les blocs du dessin dont les nom ont été spécifiés. Taper SBN pour lancer la commande, puis entrer les noms de blocs à sélectionner séparés par une virgule. (defun c:sbn (/ str pos lst ss ent obj name) (setq str (getstring T "\Entrez la liste des blocs à sélectionner (séparés par une virgule): " ) ) (while (setq pos (vl-string-search "," str)) (setq lst (cons (substr str 1 pos) lst) str (substr str (+ 2 pos)) ) ) (setq lst (mapcar 'strcase (cons str lst))) (setq ss (ssget "_X" '((0 . "INSERT")))) (repeat (setq n (sslength ss)) (setq ent (ssname ss (setq n (1- n))) obj (vlax-ename->vla-object ent) ) (if (vlax-property-available-p obj 'EffectiveName) (setq name (vla-get-EffectiveName obj)) (setq name (vla-get-Name obj)) ) (if (not (member (strcase name) lst)) (ssdel ent ss) ) ) (sssetfirst nil ss) (princ) )
-
Pbm lisibilité champs après export Excel
(gile) a répondu à un(e) sujet de phil_vsd dans AutoCAD 2006
Salut, Dans Excel, tu sélectionnes les "nombres" en question, tu fais clic droit sur la petite icone à côté de la colonne et dans le menu contextuel tu coche "Convertir en nombre" : http://img77.imageshack.us/img77/4096/xl1yd1.png http://img104.imageshack.us/img104/3282/xl2ss2.png -
Je ne sis pas ce que c'est qu'applatir un arc :casstet: Mais un ellipse fermée a ses propriétés StartAngle = 0.0 et EndAngle 3.2831... (soit 2 pi radians) C'est en changeant ces propriétés de l'objet ellipse que l'on obtient un arc elliptique. Par exemple en changeant EndAngle à 3.14159... (pi) on obbtient une demi ellipse sur son grand axe.
-
Comme dit dans le premier message : Jusqu'à ce que la condition d'arrêt soit remplie les appels récursifs à la fonction créent un empilement. Une itération est la répétion d'une ou de plusieurs expressions, jusqu'à ce que la condition d'arrêt soit remplie la fonction boucle : - soit un nombre prédéfini de fois (fonction LISP repeat) - soit jusqu'à ce qu'une condition soit remplie (fonction LISP while) - soit pour tous le membres d'une liste (fonctions LISP foreach et while) Tu peux voir ausssi ce message et le lien qui y est donné. Ou aussi ce court article que je trouve asez clair. [Edité le 25/9/2006 par (gile)]
-
Salut, Je ne connais pas Autodesk Architectural Desktop, mais si c'est bien comme dans AutoCAD, le répertoire Support utilisé n'est pas celui de : C:\Program Files\ADT2006\UserDataCache\Support qui est plutôt une sauvegarde, mais celui placé dans : C:\Documents and Settings\\Application Data\Autodesk\Autodesk Architectural Desktop 2006\R16.2\fra\support
-
Pour lecrabe, Question expérience sur AutoCAD, je suis loin de t'arriver à la cheville ;) Pour dfbiagio, Tu devrais pouvoir retrouver un fichier AutoCAD.mnl dans : C:\Program Files\AutoCAD 2006\UserDataCache\Support à copier et coller dans le dossier d'où il a disparu : C:\Documents and Settings\Gile\Application Data\Autodesk\AutoCAD 2006\R16.2\fra\support
-
Facile, j'avais eu ce problème ;)
-
Salut, Normalement le surfacique est moins lourd, je dis normalement car cela reste très théorique et n'est pas toujours vérifié par la pratique. Néanmoins, pour beaucoup d'opérations de modelisation les solides sont plus pratiques (sections, opérations booléennes etc ...), et les nouveautés de la version 2007 concernent essentiellement les solides 3D. [Edité le 24/9/2006 par (gile)]
-
Je ne suis plus très sûr de ce que j'ai dit plus haut pour AutoCAD 2006, c'est valable pour les versions 2005 et antérieures mais ça ne l'est plus dans AutoCAD 2007 (où le fichier AutoCAD.mnl est vide). Je ne saurais plus dire si ce changement est intervenu avec la version 2007 ou avec l'arrivé des fichiers .cui (2006).
-
les vues apres avoir créé un 3d par extrusion
(gile) a répondu à un(e) sujet de malekk dans AutoCAD 2005
Les "Points de vue 3D" sont bien nommés et ne sont que des points de vue différents en 3D, pas des projections 2D d'un (ou de plusieurs) objet(s) 3D. Si tu veux une section de ton solide, tu peux utiliser la commande COUPE (_SECTION) qui génèrera un objet 2D (région) de la section du solide suivant le plan spécifié. -
Salut, ai_molc est une commande définie en LISP dans le fichier AutoCAD.mnl. Ce fichier est, normalement, automatiquement chargé au chargement du fichier de menu du même nom (acad.cui). Si tu utilises un fichier de menu principal autre que AutoCAD.cui (MonMenu.cui par exemple) tu peux créer un fichier .mnl du même nom (MonMenu.mnl) dans lequel tu mets l'expresion LISP : (load "MonMenu.mnl"). Le fichier AutoCAD.mnl est situé dans : C:\Documents and Settings\\Application Data\Autodesk\AutoCAD 2006\R16.2\fra\support
-
Salut, Tu peux enlever aussi les guillemets : (vla-put-textstring (vlr-data rea) (strcat (rtos (/ (vla-get-area obj) 10000) 2 2) "m²")) (vlr-remove rea)
-
Déplacer un solide et s\'accrocher sur ses sommets !!!
(gile) a répondu à un(e) sujet de rebcao dans AutoCAD 2007
Je viens de découvrir une alternative, un pis aller plutôt. Les solides créés avec la nouvelle commande EPAISSIR (_THICKEN) à partir de surface ont, avec les poignées un comportement plus proche de celui des solides 3D des versions précédentes. L'emplacement des poignées reste visible lors des modifications en mode poignée et ces modifications sont accessibles avec la touche Espace après sélection d'une poignée. Ceux créés avec la commande EXTRUSION (_EXTRUDE) conservent aussi l'affichage des poignées mais uniquement celles de l'objet extrudé. -
spooler indisponible sur mon PC
(gile) a répondu à un(e) sujet de Tramber dans Périphériques d'entrée
Si tu n'as pas modifié l'arborescence des menus Programmes >> Accessoires >> Outils Système >> Restauration du système. Tu choisis la date à laquelle tu veux restaurer ton système parmi les dates proposées qui sont soit les dates de vérifiction du système soit les dates d'installation ou de desinstallation de programmes. Tupeux donc essayer une restauration à une date ultérieure à l'install du SP2. -
La fonction trans sert à traduire les coordonnées d'un point d'un système de coordonnées à un autre. (trans pt 1 0) traduit les coordonnées de pt dans le SCU courant (1) en coordonnées dans le SCG (0) inversement, (trans pt 0 1) traduit les coordonnées de pt dans le SCG (0) en coordonnées dans le SCU courant (1) Pour certaines entités (lwpolyline, arc, cercle, blocs...), le code DXF 10 est défini dans le système de coordonnées de l'objet (SCO), dans ces cas l'argument à passer à la fonction trans est soit le nom d'entité (ename) de l'objet (comme dans l'exemple ci-dessus) ou les coordonnées du vecteur d'extrusion de l'objet (code DXF 210 de l'objet). L'exemple ci-dessus aurait pu s'écrire : (trans ins_pt (cdr (assoc 210 (entget bl))) 1)
