GEGEMATIC
Membres-
Compteur de contenus
1 416 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par GEGEMATIC
-
Salut, j'ai mon routage acier inoxidable, pour les réduction excentriques, il pointe vers : CSW eccentric reduction quand je regarde ce composant, il a bien le DN1 et le DN2 que je veux, à savoir 200/100 je trace mon tuyau, dès que je réduit, il me place une réduction concentrique (correcte) je sélectionne la réduction, je la change pour excentrique, et là il me dit que ce composant n'existe pas de cette taille, il bascule sur de la fonte, à bride, et c'est le merdier. Pourtant, tous les paramètres on l'air correctes . des idées ? merci Gérald
-
Salut, le mécanisme est vraiment astucieux, d'une subtilité bien lispienne ... par contre je me pose la question de l'avantage par rapport à un code plus balourd avec une variable globale, du genre : (if (not GC-Ton-Nom) (setq GC-ton-Nom (getstring "Ton nom ?"))) dans ton cas, tu vas économiser le if not, mais tu vas compliquer la mise en place d'une option de relecture dont l'utilisateur peut avoir besoin. Maintenant il y a peut être un avantage d'occupation mémoire lors de la lecture de fichiers volumineux: !c:hello #<SUBR @0000000034e5cae8 C:HELLO> le résultat est compilé, alors que ma variable globale sera une liste. Je m'interroge, mais c'est sympa de nous l'avoir fait découvrir ... Gérald
-
Salut et merci de ta réponse rapide en plus, sous Mep 2015, mon routage acier inox a disparu ! C'est finalement assez rigolo ... Gérald
-
Salut à tous, Mep 2014 a encore fait de gros progrès de Francisation avec la préférence de routage "acier au carbone inoxydable" cette préférence me va comme un gant, excepté le raccordement à des composants à bride, qui me propose un espèce de bride bizarre qui ne correspond à rien de courant pour moi. Je n'ai pas trouvé le moyen d'insérer des brides en tole embouties PN6 type "point bleu" je suis en ce moment en train d'installer la 2015, peut être que c'est implémenté dans cette mouture ? merci d'avance Gérald
-
Salut, je n'avais jamais repéré cette fonctionnalité ! effectivement, elle est très utiles, car l'accrochage aux objet en 3d laisse très souvent à désirer, et il n'est par rare qu'une polyligne 3d créée par accrochage aux objet ait qq point avec z = 0 ... Gérald
-
Salut, je te poste un plug-in PowerClic qui fait celà, attention le plug-in d'origine semble ne pas marcher si les attributs n'ont pas de couleur et de type de ligne forcés, ce qui devait être le cas quand je l'ai écrit j'ai rencontré souvent le pb des attdef à la place des textes : c'est souvent des gars qui explosent un bloc, puis après ne font que des copier coler de texte, s'ils partent d'un atribut ... Gérald ;******************************************************************* ;;§/plugg/transforme une etiquette attdef en texte/none ;;corrigé le 02/05/2014 pour la version 2014 (pw_pluggin_register '("attdef2text" ("ATTDEF" )("transforme une etiquette attdef en texte"))) ;;definition de la commande (defun attdef2text ( / lent ch eg tmp sel nlent ) (setq sel (ssget "_p")) (setq lent (pw_listsel sel)) (foreach l lent (setq eg (entget l)) (setq ch (cdr (assoc 2 eg))) (setq nlent (list '(0 . "TEXT"))) (foreach ll '(330 100 67 410 8 62 6 100 10 40 1 50 41 51 7 71 72 11 210) (setq nlent (append nlent (list (setq tmp (assoc ll eg))))) (setq eg (pw_supp_elem tmp eg)) ) (setq nlent (pw_supp_all nil nlent)) ;; (setq nlent (append nlent (list '(100 . "AcDbText"))));;rajoute le 100 acdbtext (setq nlent (pw_subst_ou_aj 1 ch nlent ));;change la chaine de texte (setq nlent (append nlent (list '(73 . 0))));;rajoute le 73 (setq nlent (pw_supp_all nil nlent)) (entmake nlent) (entdel l) ) )
-
Salut, Je ne sais pas non plus, mais tu peut toujours changer ton epaisseur après création de ton nuage: au début du programme, tu mets : (setq elast (entlast)) et à la fin : (if (/= elast (entlast));_ tu teste ainsi que la commande à abouti à la création d'un nuage (vla-put-ConstantWidth (vlax-ename->vla-object (entlast)) 20) )
-
Salut, Encore des problèmes de migration en perspective ... Est-ce qu'on pourrait espérer une amélioration des performances ? j'ai vu que le C++ implémente Parallel.Invoke, et d'autre fonctions assez simples pour ajouter du parallèle au programmes c++. mon Autocad 2012 reste désespérément monotache. sous la 2012, la commande existe, mais elle provoque un blocage est une erreur : (command-s "_circle" "5,4" "_d" 2.75) ; erreur: une exception s'est produite: 0xC0000005 (Violation d'accès) ; avertissement: fonction unwind ignorée exception En fait command-s est un retour à la vieille command: dans les versions < 2000, on ne pouvait faire appel à des (getxxx) dans un (command il fallait faire: (command "_line") (setq pt1 (getpoint)) (setq pt2 (getpoint p2)) (command pt1 pt2 "") au final, la question est : par quoi remplacer les "(command" existant, qui contiennent des pauses et des getxxx : vl-cmdf ou command-s ? Gérald
-
Salut, bizare ton message, mais commence par remplacer (setvar "PLINEWID" "50") par (setvar "PLINEWID" 50) plinewid est de type real, pas string ... pour le reste, tu dois être sous 2015, car ton message illustre celui de gile sur command-s ... Gérald
-
Salut, ce point me chagrine, puisque dans son cas, il faut qu'il remette la pièce à sa place, dans la fonction callback, non ? dans mes réacteurs, j'utilise un sémaphore pour indiquer que la modification en cours est due à une réaction, et je n'ai pas de problème : les réacteurs sont bien définis temporellement: c'est soit begin, soit modified, donc on est pas dans de l'évolution dynamique. on peut aussi utiliser vlax-write-enabled-p, qui nous indique que l'objet est déjà en cours de modification. en tous cas, à chaque fois que je me repanche sur ces réacteurs, il me faut un peu de temps pour comprendre le mécanisme ... Donc pour ce problème la, je stockerai la position initiale dans l'objet que l'on veut fixer (vlax-ldata-put) je créerai un réacteur avec comme propriétaires l'ensemble des pièces à verrouiller, et comme callback un simple déplacement vers le point d'origine de la pièce, qui sera le notifier, la fonction call back testant si la réaction est due à la réaction ... la fonction callback serait du genre: ;;remise au point (if (vlax-write-enabled-p notifier-object) (progn (setq pt (vlax-ldata-get notifier-object)) (vla-put-InsertionPoint notifier-object pt) ) (prompt "\nRéaction à la réaction ... ne change rien") ) Gérald
-
problème d'évaluation de (vlax-curve-getparamatpoint)
GEGEMATIC a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
Salut Bonuscad, moi aussi j'ai remarqué des problèmes dès que je suis loin du zéro. tes courbes, elles sont dans un systèmes géoreférencé, de type Rgf93 ou lambert? c'est ça ? Gérald -
salut à tous, bien content de connaitre cette commande, je comprends enfin certains bugs inexpliqués sinon pour les mleader, tu peu également utiliser l'astuce du DDEDIt, qui te permet de visualiser ton mtext en WYSIWYG tout de suite: (setq elast (entlast)) (command "_.MLEADER" "_h" pause pause "") (if (/= elast (entlast));_un mleader à bien été créé (command "_.ddedit" (entlast) "") ) Gégé
-
Restaure un etat de calques dans une mise en page
GEGEMATIC a répondu à un(e) sujet de laripaille dans Visual LISP
salut, j'ai une fonction qui crée automatiquement des présentation à partir d'un sélection de cadres dans l'espace objet. il y a également une option pour restaurer un état de calque choisis dans un boite de dialogue je laisse de coté tes fichier LAS, l'état de calque doit simplement être présent dans le dessin je sais que la restauration ne marche pas par la commande layer dans un fenêtre, et fcalque n'a pas cette option on contourne le problème via la création d'une vue, qui a une propriété layerstate voici le bout de code, avec mes commentaires ... un peu idiots ! Gérald ;;etat de calque (optionel) (if (and pw-ac-layerstate (/= (car pw-ac-layerstate) "aucun")) (progn ;;ci dessous plante si la vue existe déjà (command "_view" "_save" (car lpres)) (setq vobj (vla-item (vla-get-views pw-acaddocument ) (car lpres))) (vlax-put-property vobj 'LayerState (car pw-ac-layerstate)) (command "_view" "_restore" (car lpres)) ) ;;suivant ne marche pas dans une fenetre ;;(COMMAND "_-LAYER" "_A" "_R" pw-ac-layerstate "" "") ) -
Salut Olivier, je ne suis pas rentré dans le détail de ton problème de réacteurs, les seuls que j'utilise sont persistants. Par contre, pour le comportement de la persistance des liens, mes articles peuvent t' intéresser : Liens entre les entités Autocad avec Visual Lisp 1/3 pour le 1er des 3. ce n'est pas encore complet, j'ai encore des choses à dire sur les objectid, mais le temps me manque ... Gérald
-
Comparaison de nombres, de points
GEGEMATIC a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Salut Gile, tu as mis le doigt sur un problème qui va devenir de plus en plus récurent avec les nouvelles coordonnées en RGF93, qui font qu'on s'éloigne de plus en plus du zéro mais ce sujet m'a rappelé de vieilles discussions, arbitrées par Kamal Boutora, sur Planetar pour ceux qui veulent du vintage, voilà un pdf du fil, avec les doctes explication de Kamal: Precision_discussion_vintage_2005_2007.pdf -
Selection zones de textemultiple via limite polygone ?
GEGEMATIC a répondu à un(e) sujet de Gwen dans Pour aller plus loin en LISP
Et oui, tu fais du tri, alors il faut toujours une autre routine pour chaque cas particulier ... par exemple le plug-in : SELECT_INTEGERS selection des textes s'ils représentent un entier ... Mais je pense que tu devrais avoir d'autre critères de tri, plus simple, pour différencier tes numpar des autre textes : la taille, le style et surtout la rotation, car en principe les numpar sont tous orientés au nord ... bon courage ! -
Selection zones de textemultiple via limite polygone ?
GEGEMATIC a répondu à un(e) sujet de Gwen dans Pour aller plus loin en LISP
Salut, Une autre piste, les plug-in Powerclic Tu utilisera successivement 2 plug-in: - "select_inside" pour sélectionner les mtext à l'intérieur de tes sections - puis "suffix_prefix" pour leur ajouter le code section Pour l'installer : powerclic-7.21 Gérald -
Safearry of long à la place d'un objectId
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Pour aller plus loin en LISP
Salut Gile, merci pour ces explications. De prime abord, j'ai toujours eu tendance à passer par le Dxf, car j'ai commencé le lisp bien avant visual lisp, mais j’essaie de m'habituer à avoir d'autre réflexes. Une question me taraude: pourquoi la même entité lorsque je fait : ( vla-get-ObjectId (eobj)) Choix de l'objet: 279 et dans mon dictionnaire, lorsque je l'ai stockée comme pointeur logiciel, Edict retourne la valeur : 8796082665520 Pourquoi Autocad utilise 2 objectId différents ? -
Safearry of long à la place d'un objectId
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Pour aller plus loin en LISP
Salut, J'ai fait un peu le tours de ces sujets hier, je n'avais pas trouvé celui là ça confirme le problème mais je continue de penser que les 2 integer négatifs retournés par COM doivent permettre de recréer l'integer de base ... merci Gérald -
Safearry of long à la place d'un objectId
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Pour aller plus loin en LISP
je pense qu'il est possible de retrouver le bon pointeur à partir de cette paire J'ai vu des sujets là dessus, il y a des mécanisme de conversion d'un long long (nombre > 2E32) en 2 long (< 2e32) par contre je ne suis pas arrivé à comprendre la méthode exacte. -
Safearry of long à la place d'un objectId
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Pour aller plus loin en LISP
je suis en 64 avec un A2012 en 64 en fait je pense qu'utilisant COM, je retombe sur les écueils de VBA avec A64 je trouvais le flot plus limpide en restant purement activeX, et ça m'évitait de faire des tratuctions ename->objet->ename, mais etmps pis, je vais repasser en dxf ! Gégé -
Safearry of long à la place d'un objectId
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Pour aller plus loin en LISP
Salut Patrick, Si tu as la DLL de Gile, DictionaryEditor_17.dll le mieux est de lancer la commande edict, entité, choisir une entité ajouter dictionnaire d'extension, sur ce dictionaire, ajouter Xrecord nom : NA_FILS Ajouter une donnée de type "pointeur logiciel" à ce Xrecord sélectionner une entité à partir de la, tu a un Xrecord qui contient un objectid (entier) Tu peux vérifier que c'est bon en copient la valeur et en l'utilisant avec (vlax-invoke-method pw-acaddocument 'OBJECTIDTOOBJECT objet) Maintenant pour le récupérer en lisp, je fais cette séquence : (setq oExtDicPere (vla-GetExtensionDictionary (vlax-ename->vla-object (car (entsel))))) Choix de l'objet: #<VLA-OBJECT IAcadDictionary 000000003d4a2a18> Commande: (setq oXrcfils (vla-item oExtDicpere "NA_FILS")) #<VLA-OBJECT IAcadXRecord 000000003d4a58c8> Commande: (vla-GetXRecordData oXrcfils 'mytype 'myval) nil Commande: (setq val (VLAX-SAFEARRAY->LIST myval)) (#<variant 8195 ...>) Commande: (setq val (car val)) #<variant 8195 ...> Commande: (setq val (vlax-variant-value val)) #<safearray...> Commande: (VLAX-SAFEARRAY->LIST val) (-10306784 -45396745) je ne sais pas pourquoi j'obtiens cette liste de 2 entiers négatifs au lieu d'un entier positif -
Safearry of long à la place d'un objectId
GEGEMATIC a posté un sujet dans Pour aller plus loin en LISP
Salut à tous, Je stocke dans un xrecord un pointeur vers une entité. je sais facilement récupérer ce pointeur en tant que ename en utilisant le lisp, dans ce cas je récupère une liste style ((330 . <Nom d'entité: 7ffff6248b0>)) mais j'essaye de le récupérer directement avec les methode activex, dans ce cas je cherche un objectId soit oF mon objetXrecord : (vla-GetXRecordData oF 'mytype 'myval) Commande: !mytype #<safearray...> Commande: (VLAX-SAFEARRAY->LIST mytype) (330) Commande: (setq val (VLAX-SAFEARRAY->LIST myval)) (#<variant 8195 ...>) Commande: (setq val (car val)) #<variant 8195 ...> Commande: (setq val (vlax-variant-value val)) #<safearray...> Commande: (setq val (VLAX-SAFEARRAY->LIST val)) (-10336080 -45944163) Voilà avec quoi je me retrouve, au lieu du 8796082686128 attendu j'ai bien essayé de changer le safearray de type, mais rien à faire des idées ? Gérald -
Chargement automatique des DLLs .NET
GEGEMATIC a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
Salut et merci pour cet article complet, qui ne manquera pas de me servir, même si je fais peu de .net toujours le label de qualité "G.C" ! Gérald -
A priori, je vais passer sur WordPress, puisque c'est déjà qq chose qu'on m'avait recommandé, et comme tu es le 2ème à me le dire, et pas le moindre, je pense que je vais aller direct là dessus. OverBlog, c'est impressionnant : comment une société qui a autant de blogueurs peut se suicider en remplaçant une bonne plateforme par une plateforme catastrophique ? En plus, ils avait commencé la migration aux états unis, et ça n'avait semble t-il pas été une réussite.
