Aller au contenu

Serge

Membres
  • Compteur de contenus

    397
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Serge

  1. À tous, Il y a 2 solutions dicutées: obtenir des coins carrés et obtenir des coins 'automatique'. Pour la première, Tramber a donnée une réponse. Je veux simplement dicuter du second cas. Pourquoi ne pas découper le chemin fermé en utilisant COUPURE (_BREAK) en spécifiant le point milieu d'un segment puis @. Dans le cas d'un rectangle, ça nous donne 2 U. En extrudant 2 fois puis en fondant les 2 avec UNION, on obtient facilement un solide prévisible, peu importe la complexité (ou presque) du chemin. Serge
  2. Serge

    Variable mais pas trop

    Nobless, Je n'ai pas trop compris ce que tu voulais faire, ni sur quelle version tu doit travailler. Comme le proposait Krynn, tu peux te servir de blocs si tu dois avoir une trace visuelle permanente. Si tu veux une trace non visuelle permanente, un truc facile et qui existe depuis des lunes, crée toi un type de ligne et écrit ce que tu veux dans la description. De façon plus poussée, tu peux utiliser des données étendues (R12 et plus). La commande XDATA des Express Tools t'aidera. De façon encore plus possuée, il y a les dictionnaires (R13 et plus). Enfin, ty peux te servir des propriétés du dessin (2000 et plus), qui auras entre autre avantage d'être visible à même l'Explorateur de Windows. Et j'ai un fils de 12 ans, ce qui m'oblige à décoder du texto :-)). Serge
  3. lordbyron, Je crois que tu veux simplement constituer une polyligne depuis un chapelet de lignes dont les extrémités ne se joignent pas parfaitement à la queue-leu-leu. Si c'est le cas, l'express tools PEDITM (si AutoCAD 14 ou 2000) ou PEDIT (depui 2000i) permet ce travail. On doit choisir l'option Multiple, choisir un jeu de lignes, joindre en spécifiant une tolérance. Exemple: Commande: PEDIT Sélectionnez la polyligne ou [Multiple]: Multiple Choix des objets: Fait une sélection Choix des objets: Convertir les lignes et les arcs en polylignes [Oui/Non]? Oui Entrez une option [Clore/Ouvrir/Joindre/Epaiss/Lissage/sPline/Retrouver/Typeligne gén/Annuler]: Joindre Type de jointure = Prolonger Entrez une distance approximative ou [type de Jointure] <0.0000>: 10 3 segments ajoutés à la polyligne Entrez une option [Clore/Ouvrir/Joindre/Epaiss/Lissage/sPline/Retrouver/Typeligne gén/Annuler]: Serge
  4. Le crabe, C'était en effet une coquille. Merci pour les compliments. Note: PGP = ProGram Parameters Serge
  5. Tramber, Il faut que les calques existent.. Exemple: (defun faites_du_lisp ( / pt tube ext mili blkend) (command "_-layer" "_new" "tube,mili,ext" "") (setq pt (getpoint "\nPoint: ")) (setq tube (list (cons 0 "circle") (cons 10 pt) (cons 40 100) (cons 8 "tube") )) (setq externe (list (cons 0 "circle") (cons 10 pt) (cons 40 500) (cons 8 "ext") )) (setq mili (list (cons 0 "circle") (cons 10 pt) (cons 40 200) (cons 8 "mili") )) (entmake (list (cons 0 "block") (cons 2 "dessus") (cons 10 pt) (cons 70 64) )) (entmake tube) (entmake externe) (entmake mili) (entmake '((0 . "endblk"))) (entmake (list (cons 0 "insert") (cons 2 "dessus") (cons 10 pt))) ) Serge
  6. Patrick, Faut dire que HP a connu une année financière difficile. Serge
  7. Patrick, Tu me fais penser à une autre anectdote. Vers le mois de février 1990, je faisais une présentation d'AutoCAD (DOS évidemment) à une société gouvernementale. Il y avait 2 clans: celui du Mac, celui du PC. Le premier groupe s'étant fait imposer AutoCAD, je sentais beaucoup d'électricité dans l'air . Tout à coup, un ingénieur de ce groupe lève la main et me demande de ne me servir que de la souris. J'ai donc continué à taper au clavier mais avec la souris au lieu de mes mains. Serge
  8. Éric, D'une part, c'est presque normal qu'un fabricant de logiciels investissent plus dans ses nouveaux produits .... mais d'autre part, on peut en douter un peu quand on a attendu parler de Palladium. Serge
  9. Éric, Je vois un paquet de débouchés potentiels: 1) Les compagnies de taxis pour les dispatcher 2) Les compagnies d'ambulances 3) Les compagnies de transports 4) Mais aussi, retrouver les gens dans une pile de débris (à New York ou ailleurs) Serge
  10. Serge

    Gestionnaire de calque

    Martial, Ou celle-ci qui offre l'avantage de filtrer les noms car effacer aveuglément risque de nuire à certains programmes. ;;; DelSomeFilters ;;; Efface les filtres de calques de façon sélective (vl-load-com) (defun DelSomeFilters ( mask / lext-dict ldict lay_entity lay_filters filter_name) (vl-load-com) (setq lext-dict (entget (vlax-vla-object->ename (vla-GetExtensionDictionary (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object)))) ))) (setq lay_entity (if (member (cons 3 "ACAD_LAYERFILTERS") lext-dict) (cdr (assoc 360 lext-dict)) nil )) (if lay_entity (setq lay_filters (entget lay_entity))) (if lay_filters (setq lay_filters (member (assoc 3 lay_filters) lay_filters))) (while lay_filters (setq filter_name (cdar lay_filters)) (if (wcmatch filter_name mask) (dictremove lay_entity filter_name) ) (setq lay_filters (cddr lay_filters)) ) (princ) ) ;;; Exemples: ;;; (DelSomeFilters "*[1-9]*") ; Tous les calques avec des nombres ;;; (DelSomeFilters "*") ; Tout ;;; (DelSomeFilters "???,~*m*,N*") ; Tous les calques ayant 3 caractères ET ceux n'ayant pas de 'm' ET ceux ne débutant pas par N ;;; (DelSomeFilters "*") (defun c:dsf () (DelSomeFilters "*") (princ)) (princ "\nTapez DSF pour effacer tous les filtres de calques") (princ) Serge
  11. Bucheron, (Tiens, hier on parlait de se tirer une bûche) Voici une routine simple qui ne tient pas compte des différents onglets ni de l'état des calques. Il suffit de rectifier la liste des noms de bloc (vers la fin du listing). (defun eraseblocks ( liste action / listeCDF ss ) (setq listeCDF "") (foreach string liste (setq listeCDF (strcat listeCDF "," string))) ; ",bloc1,bloc2,bloc3,..." (setq listeCDF (substr listeCDF 2)) ; "bloc1,bloc2,bloc3,..." (setq ss (ssget "_x" (list (cons 0 "insert") (cons 2 listeCDF)))) (if ss (command "_erase" ss "")) (if (= action 2) (command "_purge" "_blocks" listeCDF "_no")) ) (defun c:eraseblocks ( / liste) ;; Faire une liste de noms de bloc. Masques *, ? et autres acceptés (setq liste (list "bloc1" "bloc2" "bloc3" "bloc4" "bloc5" "bloc6" "bloc7" "bloc8" "bloc9" )) ;; 1 = effacer seulement, 2 = effacer et purger (setq action 2) (eraseblocks liste action) (princ) ) (princ "\nTapez ERASEBLOCKS pour effacer les blocs") (princ) Serge
  12. Serge

    comment créér un .exe en VBA ?

    Enael, SI je peux donner une conclusion: Dans AutoCAD, les fichiers autrefois protégés par les méthodes pre-R14 ainsi que les VBA ne sont pas protégés à toute épreuves. Les vlx, arx, dll (en référence dans un VBA) et exe sont compilés et très bien protégés, même si certains font avancer qu'il existe des compilateurs : qui veut lire du code machine? Serge
  13. Serge

    demmande de code

    Mitnix, Pour un débutant, je trouve que tu te débrouilles bien. Pour moi la lisibilité du code est plus importante que la performance. Du moins, l'expérience améliorera cette dernière mais rarement la première. Si j'ai 2 conseils à te donner, les voici: 1) Connaitre ce qu'est des variables locales 2) Essayer de travailler avec les noms anglais et n'utilise pas des abbréviations pour les options Plus en détails: 1) Connaitre ce qu'est des variables locales Par défaut, toutes les variables appartiennent à tout le monde. Par exemple, tes variables t1, t2, t3 peuvent être utilisées et modifiées par d'autre programme, donc les corrompre. Pour les protéger, tu les définies locales. Pour ce faire, tu les énumère dans la première parenthèse vide, précédé d'un / Exemple: (defun c:folio ( ;; Liste incomplète des variables locales / t1 t2 t3 t4 t5 t6 t7 t8 ;; fin de la liste des variables locales ) ;c:cfolio, permet de créer un nombre indéfini de folio A3 vertical ;A insérer dans fichier AutoCAD.pgp pour création d'alias ;cfo, *cfolio etc. etc ) 2) Essayer de travailler avec les noms anglais et n'utilise pas des abbréviations pour les options Si tu le peux, remplace les noms français par leur équivalent anglais, mais précédé d'un _. Ceci rendra ton programme plus portable. Pour les abbréviation, relire "Justification" est plus clair que simplement "j". Attention: il existe de rares situations conflictuelle (e.g. si une commande possède une option dont le nom est aussi le nom d'un mode d'accrochage) Exemple: (command "style""verdana""verdana" "" "" "" "" "") (command "texte""j""bd" (list (+ (car p1) 347)(+ (cadr p1) 12.5))"4" "" t7 "" "") (command "accrobj""extr,mil,cen,int,per,exte") Deviennent (command "_style""verdana""verdana" "" "" "" "" "") (command "_text""_justify""_br" (list (+ (car p1) 347)(+ (cadr p1) 12.5))"4" "" t7 "" "") (command "_osnap" "_end,_mid,_cen,_int,_per,_ext") Serge
  14. Serge

    Bonjour tout le monde !

    Didier, On a déjà tiré un Reagan, on ne peut plus tirer un Bush Serge
  15. Ribbit, Sur l'autre forum, on avait fait la demande suivante: comment afficher dans le dessin le résultat de ce décompte: Réponse: en exportant les résultats dans un fichier txt et en se servant du objet Rtext (Texte distant) des express tools. Si ça peut intéresser quelqu'un, me demander le code source. Serge
  16. didith78, Idéalement, il faudrait poser la question sur un forum plus spécialisé sur ce sujet. Pour l'hébergement, c'est une question de magasiner. On peut faire des pages simples, par exemple avec les outils tels Netscape Composer, Dreamweaver, FrontPage, etc. Un peu de connaissance en codes html est un atout (si ce n'est un prérequis). Idéalement, il faut faire des tests de compatibilité sur au moins 3 navigateurs connus (Internet Explorer de Microsoft, Netscape et Opera) Pour faire des sites animés ou interactifs, il faut absolument faire de la programmation (par exemple, le site de cadxp utilise des pages php, chez nous, www.cadnovation.com, on utilise du asp). Normalement, l'hébergeur va vous faire payer plus cher (serveur différent, etc.) Pour ce qui est de faire des transactions spéciales, là on tombe carrément dans une spécialité où il faut s'y connaitre en sécurité. Encore une pub, vous trouverez en plus de notre adresse débutant par http, notre site sécurisé à l'adresse https://www.cadnovation.com. L'intérêt étant d'offrir des services aux membres et de faire des transactions monétaires. Serge
  17. Serge

    Bubble pour AutoCAD

    Patrick, Voici quelque chose que vous pourrez adapter facilement. L'information s'inscrit dans la barre d'état. Pour ce qui est des info-bulles (tooltips) multi-lignes et du repérage 'intelligent' sous le curseur, cela est apparu en version 2000i. Puisqu'il y a des connaisseur de Arx, je leur indiquerai de rechercher le inputPointManager (plus précisément l'exemple "Input Point Filter and Monitor Example" ;;; C:RAYX ;;; Affiche l'information sur l'objet qui passe sous le curseur ;;; ;;; Compatibilité: AutoCAD 2.5 et plus ;;; ;;; Instructions: ;;; 1) Charger ce fichier ;;; 2) Tapez RAYX sur la ligne de commande ;;; 3) Passez au dessus des objets. Les blocs sont même passés au rayon-x. ;;; Format -> Bloc[Handle]: www - Objet[Handle]: xxx - Couleur: yyy - LType: zzz ;;; ;;; Par Serge Camiré, CadNovation, 2004/09/22 ;;; http://www.cadnovation.com/fr ;;; (defun c:RAYX ( / blockGet blockname color input layer linetype msg objectGet objectSelp oldmodemacro ) (setq oldmodemacro (getvar "modemacro")) (princ "\nRAYX - Tapez sur [Enter] ou [Espace] pour quitter.\n") (while (and (setq input (grread 1)) (not (equal input '(2 13))) ; Enter (not (equal input '(2 32))) ; Espace ) (if (and (member (car input) '(3 5)) ; Selected point ou Pointing device ? (setq objectSelp (nentselp "" (cadr input))) ; Objet sous curseur ? (setq objectGet (entget (car objectSelp))) ) (progn (setq layer (cdr (assoc 8 objectGet))) (setq color (if (assoc 62 objectGet) (cdr (assoc 62 objectGet)) ; Couleur selon l'objet (cdr (assoc 62 (tblsearch "layer" layer))) ; Couleur du calque )) (setq color (cond ((= color 0) "BYBLOCK") ; Metacouleur ((= color 256) "BYLAYER") ; Metacouleur ((= color 1) "Rouge") ((= color 2) "Jaune") ((= color 3) "Vert") ((= color 4) "Cyan") ((= color 5) "Bleu") ((= color 6) "Magenta") ((= color 7) "Blanc/Noir") (t (itoa color)) )) (setq linetype (if (assoc 6 objectGet) (cdr (assoc 62 objectGet)) ; Type de lignes selon l'objet (cdr (assoc 6 (tblsearch "layer" layer))) ; Type de lignes du calque )) (setq msg "") (if (= (length objectSelp) 4) ; À l'intérieur d'un bloc? (progn (setq blockGet (entget (car (last objectSelp)))) (setq blockname (cdr (assoc 2 blockGet))) (setq msg (strcat "Bloc[" (cdr (assoc 5 blockGet)) "]: " blockname " - ")) )) (setq msg (strcat msg "Objet[" (cdr (assoc 5 objectGet)) "]: " (cdr (assoc 0 objectGet)) " - Couleur: " color " - LType: " linetype )) (setvar "modemacro" msg) ) (progn (setvar "modemacro" oldmodemacro) )) ) (setvar "modemacro" oldmodemacro) (princ) ) (princ "\nTapez RAYX pour lister les objets sous le curseur, sous la définition des blocs") (princ "\nFormat -> Bloc[Handle]: www - Objet[Handle]: xxx - Couleur: yyy - LType: zzz") (princ) Serge
  18. Petite pub. Essaie le MVPort tout à fait gratuit pour AutoCAD 2000 à 2002. Un objet personnalisé - le MVPort - projette la silhouette d'une fenêtre flottante depuis l'espace papier vers l'espace objet. Autrement dit, tu travaille l'espace papier depuis l'espace objet sans complication . http://www.cadnovation.com/fr/home.asp Serge
  19. Serge

    Largeur de rectangle

    Fabcad, Je ne parlerai pas du temps où la commande Rectang(le) insérait un bloc rectangulaire dont on jouait avec les facteurs X et Y (en fait, c'était de 2.5 à R11) De R12 jusqu'à R14 inclusivement, il s'agisait d'une construction via la commande _Pline. La variable Plinewid était à contribution. Depuis la version 2000, c'est une routine Arx qui gère la commande (acadapp.arx). Malheureusement (ou heureusement selon le point de vue), la valeur de l'épaisseur est stockée dans la routine, et ce sur une base temporaire et indépendante d'un dessin à l'autre. Serge
  20. Oops, la réponse était pour Badis en premier :-) Serge
  21. Bruno, Tu peux simplement lancer START comme nom de commande Exemple: (command "start" "notepad") ; Pour ouvrir le Bloc-notes Si ti doit passer des paramètres, ce sera à même le 2ième paramètre Exemple: (command "start" "notepad toto.txt") ; Pour ouvrir le Bloc-notes Malheureusement, si tu dois utiliser des noms longs (format différent du 8.3 de l'amcien DOS), tu dois trouver l'équivalence en format 8.3. Exemple: (command "start" "c:\\Program Files\\Repertoire XYZ\\Fichier untel.exe") ; Non (command "start" "c:\\Progra~1\\Repert~1\\Fichie~1.exe") ; Oui Si tu as la chance de modifier le AutoCAD.PAT, tu peux définir une commande MACOMMANDE, qui fera référence à un programme dont le nom pourra être long (et accepter un paramètre). C'est la même chose si tu veux démarrer un programme en ne spécifiant que le nom du fichier, laissant le travail à Windows de trouver la meilleure application. Si dans un tel cas, tu veux passer un nom long, tu devra créer une routine en arx qui te permette d'accéder à des fonctions plus bas niveau. J'avais laissé l'exemple de code source sur le forum français d'Autodesk pour ceux que ça intéresse. Serge
  22. Serge

    comment créér un .exe en VBA ?

    Le Crabe, Normalement, les majuscules dans des messages signifient 'crier' selon la nétiquette mais je sais que c'était plus pour attirer l'attention. Néanmoins, et puisque c'est déjà vendredi (ou presque) je me permets de relater une autre anecdote PERTINENTE :-). L'autre jour, j'entre à la bibliothèque et je crie "UN HAMBURGER, UNE FRITE ET UN COKE". La bibliothécaire me répond: "Monsieur, vous êtes à la bibliothèque ..." Je lui dit alors à voie basse: "désolé... un hamburger, une frite et un coke" Enael Lorsqu'on passe de VBA à VB, les formes (feuilles ou forms) deviennent alors des feuilles de concepteur Microsoft. Celle-ci réagissent différemment, et comme tu l'a mentionné, risque que de ne pas fonctionner telles quelles s'il y a des références à des instructions natives (pensons à ThisDrawing venant d'AutoCAD). Aux autres, Pour vous démontrer que VBA n'offre absolument aucune protection, je vous propose de m'envoyer un court dvb encrypté dans lequel vous aurez inscrit en commentaire la date d'aujourd'hui et mon nom à la 2-ième ligne, ceci pour me prouver que vous en êtes l'auteur et je vous en dévoilerai le contenu. Mon adresse est de courriel est le cunivers(at)univers.qc.ca ou le serge.camire(at)cadnovation.com, en remplaçant le (at) par @. Serge
  23. Serge

    comment créér un .exe en VBA ?

    Gawel, 3 commentaires: 1) Penser que le choix du mot de passe peut dissuader l'ennemi c'est faire fausse route. C'est la ligne Maginot :-) VBA a des faiblesses qui sont très facilement exploitées par les hackers. Vous comprendrez que je ne puisse dévoiler des pistes pour ne pas contribuer au décodage de programme. 2) VB.NET n'est pas un bon choix. Appelons ce produit VB7. VB7 permet de créer des exécutables autonome, au même titre que le vieux VB6 donc pas compatible à intention de ta demande. Il permet également de créer des solutions (i.e. un dll). Seule la version 2005 d'AutoCAD permet son interprétation (voir commande NETLOAD) 3) Reste que le moyen le plus efficace est de créer un dll en VB6 puis de l'ajouter aux références en VBA. La création d'une classe pour l'échange de propriétés, méthodes et événements est requis. Serge
  24. Serge

    comment créér un .exe en VBA ?

    Hélas ! Tu peux cependant essayer de le packager dsans un vlx, ce qui rend sa lecture plus difficile. Serge
  25. Serge

    comment créér un .exe en VBA ?

    Gawel, Oyez, oyez! Sonnez hautbois et résonnez musettes. Tu es l'heureux récipiendaire de mon 100ième message. Il n'y a cependant pas de recompense :-) Le framework ne te permettra malheureusement pas de créer des exe à partir de VBA, même que dans l'esprit de ce nouvel environnement, le VBA n'existera plus. Qu'est-ce que VBA: C'est un environnement de développement spécialisé pour un logiciel donné, qui ne peut exister sans lui et qui utilise la syntaxe de VB mais en mode interprété (d'ou l'impossibilité de compiler et, au mieux, de protéger le code par mot de passe). Les versions de VBA pour Excel et AutoCAD sont très différentes l'une d l'autre. Par exemple, l'accès aux données du logiciel est intégré (fonctions de chiffrier pour Excel, fonctions de dessins pour AutoCAD), les composantes de boites de dialogue, même si à première vue sont similaires montrent d'énormes divergences. Les fabricants de logiciels payent des redevances à Microsoft pour l'incorporation de VBA mais pas l'utilisateur final. Qu'est ce VB : C'est un environnement autonome permettant de déployer des versions compilées sous formes de exe, de dll, de composantes ActiveX, etc. En VB6, le code n'était pas encore 'managé'. Le développeur paye pour son environnement. Qu'est qu'un framework: À partir de Visual Studio 2002 (VB7, C++ 7, etc.), on a complètement repensé l'environnement de développement. Tous les langages, exception du C++ produisent du code managé. Pour le c++, on a le choix de managé ou non. Mais qu'est qu'on 'manage' ainsi? C'est que Microsoft a décidé d'en finir avec les particularité s des langages, des systèmes d'exploitation et de la version des dll (dll hell). Chaque nouveau langage doit d'abord se conformer à des normes de compatibilité. VB, C++, J++ ... et même Pizza en sont des exemples. Le code source doit d'abord être converti dans un pré-format universel qui le rend indépendant de son langage d'origine et de son système d'exploitation. C'est alors du code managé car il n'est toujours pas utilisable tel quel. Le rôle du framework est justement de prendre en charge ce code, selon la version du système d'exploitation. Il existe des frameworks spécifiques pour Windows 98, Windows Nt, Windows 2000, Windows XP, Linux, MacOs, etc. Il existe plusieurs versions de frameworks selon que l'on doivent être compatible à Visual Studio 2002, 2003 et les autres. Serge
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité