CADxp: Info bulle sur des Objects Data - CADxp

Aller au contenu

  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Info bulle sur des Objects Data

#1 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4452
  • Inscrit(e) : 20-juin 03

Posté 11 septembre 2015 - 13:06

Bonjour,

J'étais tombé sur un sujet sur theswamp
J'avais trouvé l'idée intéressante, cela évite d'activer les grips pour avoir les infos des données d'objet. On a, à la place, en dynamique une info bulle donnant ces renseignements quand on survole celle-ci.

Ci le post original, fonctionnait bien pour une seule table, ce n'était pas le cas quand plusieurs tables étaient affecté à un objet.

J'ai essayé d'améliorer le truc, voici ce que ça donne:
  (defun c:rod (/ )(c:readobjectdata))

  (vl-load-com)

  (defun c:readobjectdata (/ count *error* ename textename fieldnames fieldstring input strcatlst tablelist usercmdecho)

    (defun *error* ( msg )
      (princ (strcat "\n<" msg ">\n"))
      (progn
        (and TextENAME (entdel TextENAME))
        ;(vl-cmdf "_.usc" "_previous")
        (setvar "cmdecho" usercmdecho)
      );progn
      (princ)
    );defun

    (setq usercmdecho (getvar "cmdecho"))
    (setvar "cmdecho" 0)
    ;(vl-cmdf "_.ucs" "_world")
    (while (and (setq Input (grread T 4 2)) (= (car Input) 5))
      (if TextENAME
        (progn (entdel TextENAME) (setq TextENAME nil))
      );if
      (if
        (and (setq ename (car (nentselp (cadr Input))))
          (not (eq TextENAME ename))
        );and

        (if (setq tablelist (ade_odgettables ename))
          (progn
            (setq count 0 fieldnames nil)
            (repeat (length tablelist)
              (foreach x (cdr (assoc "Columns" (ade_odtabledefn (nth count tablelist))))
                (if (not (member (cdr (assoc "ColName" x)) fieldnames))
                  (setq fieldnames (cons (cons (cons (1+ count) (nth count tablelist)) (cdr (assoc "ColName" x))) fieldnames))
                )
              )
              (setq count (1+ count))
            )
            (if fieldnames 
              (progn
                (setq fieldnames (reverse fieldnames))
                (setq strcatlst
                  (apply 'strcat
                    (mapcar
                      (function
                        (lambda (x)
                          (strcat "{\\C" (itoa (caar x)) ";" (cdar x) "} - " (cdr x) " : "
                            (if (/= (type (setq fieldstring (ade_odgetfield ename (cdar x) (cdr x) 0))) 'STR)
                              (if (eq (type fieldstring) 'INT)
                                (itoa fieldstring)
                                (rtos fieldstring 2 2)
                              )
                              fieldstring
                            )
                          "\n")
                        )
                      );fin function
                      fieldnames
                    );fin mapcar
                  );fin apply
                );fin setq
                (setq TextENAME
                  (entmakex
                    (list
                      (cons 0 "MTEXT")
                      (cons 100 "AcDbEntity")
                      (cons 100 "AcDbMText")
                      (cons 1
                        (strcat "{\\fArial;" strcatlst "}" );strcat
                      );cons 1
                      (cons 10
                        (polar (cadr Input) 0 (/ (getvar "VIEWSIZE") 50.0))
                      )
                      (cons 40 (/ (getvar "VIEWSIZE") 75.0));
                      (cons 50 (- 0 (getvar "VIEWTWIST")))
                      (cons 62 250)
                      (cons 71 1)
                      (cons 72 5)
                      (cons 90 1)
                      (cons 63 255)
                      (cons 45 1.2)
                    );list
                  );entmakex
                );setq
              )
            )
          )
        )

      );if
    );fin while
    (and TextENAME (entdel TextENAME))
    ;(vl-cmdf "_.ucs" "_previous")
    (setvar "cmdecho" usercmdecho)
    (princ)
  )

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#2 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7336
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 12 septembre 2015 - 10:23

Hello Bruno

1) Je connaissais ton ancien ROD de Novembre 2012 , et en effet ses limitations faisaient que je ne l'utilisais pas !

2) BRAVO / MAGNIFIQUE / SUPERBE pour ton nouveau ROD !!
Qui presente "joliment" le contenu des multi-tables OD de MAP (ou CIVIL) lors du survol des entites concernees ...

MERCI, Bye, Bon WE, Bye, lecrabe
Autodesk Expert Elite Team
0

#3 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7336
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 12 septembre 2015 - 10:45

Hello Bruno

Comme tu le sais sur un objet de MAP (ou CIVIL) on peut attacher N tables OD
et par table, on peut avoir N records attaches sur un objet ...

Ta routine ROD (comme la case de dialogue des proprietes) montre seulement le 1er record d'une table OD : C NORMAL !
A mon avis il n'est pas necessaire de faire PLUS avec ROD !!

Aujourd'hui le SEUL moyen de voir qu'un objet MAP possede une table OD attache en multi-record,
c la commande ADEEDITDATA sur l'objet concerne ...

SVP j'aimerais bien avoir qq routines permettant de retrouver facilement ces objets speciaux (rien a voir avec ROD) ?
Pour moi ces objets speciaux : objets avec UNE table OD, objets avec N (N>1) tables OD, objets avec UNE ou N tables OD MAIS avec au moins 2 (ou plus) records sur l'une quelconque des tables OD ..

*** Routine FOD (Find OD) : dans la selection classique AutoCAD, ne garder que les objets ayant au moins UNE (ou plus) table OD attachee
Ainsi on a les objets de MAP (ou CIVIL) avec OD ...

*** Routine FODMT (Find OD Multiple Table): dans la selection classique AutoCAD, ne garder que les objets ayant au moins DEUX tables OD attachees
Ainsi on a les objets de MAP (ou CIVIL) avec multi-tables OD ... C RARE !

*** Routine FODMR (Find OD Multiple Record) : dans la selection classique AutoCAD, ne garder que les objets ayant sur l'une de leur tables OD (si multi-tables) au moins 2 records OD (ou plus)
Ainsi on a les objets de MAP (ou CIVIL) avec du multi-record OD ... C TRES RARE !

Et enfin une routine pour eliminer les multiples records (qui sont souvent inutils)
sur les objets selectionnes ... On ne garde que le 1er record de chaque table OD attachee en fait celui que l'on voit avec ROD ou les proprietes ...
*** Routine FODMRDELR (Find OD Multiple Record DELete Records 2/3/4/etc)

Merci d'avance, Bon WE, Bye, lecrabe
Autodesk Expert Elite Team
0

#4 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4452
  • Inscrit(e) : 20-juin 03

Posté 12 septembre 2015 - 14:58

Salut Patrice,

Dans l'immédiat je ne peut répondre qu'au dernier souhait.
Suite à une mauvaise programmation de ma part, j'avais attribué n records (souvent identiques) à mes objets, voulant m'en débarraser, j'avais écrit ceci (je ne sais pas si cela te conviendra)

(defun c:del_record_other0 ( / js n obj tbllist numrec ct lst)
	(setq js
		(ssget "_X"
			(list
				(cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
				(cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
			)
		)
		lst nil
	)
	(cond
		(js
			(repeat (setq n (sslength js))
				(setq obj (ssname js (setq n (1- n))))
				(setq tbllist (ade_odgettables obj))
				(cond
					(tbllist
						(foreach tbl tbllist
							(setq numrec (ade_odrecordqty obj tbl))
							(cond
								((> numrec 1)
									(setq ct (1- numrec))
									(while (not (zerop ct))
										(ade_oddelrecord obj tbl ct)
										(setq ct (- ct 1))
									)
									(if (not (member tbl lst))
										(setq lst (cons tbl lst))
									)
								)
							)
						)
					)
				)
			)
		)
	)
	(if lst
		(mapcar '(lambda  (x) (princ (strcat "\nLa table " x " à été nettoyée"))) lst)
		(princ "\nAucune table à nettoyer.")
	)
	(prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#5 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7336
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 15 septembre 2015 - 07:13

Hello Bruno

MERCI pour le rappel sur del_record_other0 ! ... qui fonctionne tres bien ...

SVP serait il possile d'avoir la Modif (ou une nouvelle version) pour ne traiter que une selection classique AutoCAD
et non automatiquement TOUT le DWG !?

MERCI encore pour toutes tes contributions sur cadxp.com & sur georezo.net !

Bye, lecrabe
Autodesk Expert Elite Team
0

#6 L'utilisateur est hors-ligne   VDH-Bruno 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 898
  • Inscrit(e) : 29-avril 10

Posté 15 septembre 2015 - 08:51

Bonjour lecrabe,

Voir le messagelecrabe, le 15 septembre 2015 - 07:13 , dit :

SVP serait il possile d'avoir la Modif (ou une nouvelle version) pour ne traiter que une selection classique AutoCAD
et non automatiquement TOUT le DWG !?


Peut-être en supprimant simplement l'expression "_X" du code..

A+
(Ps: Non testé,n'ayant pas (ne connaissant pas) Map)
Apprendre => Prendre => Rendre
0

#7 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7336
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 15 septembre 2015 - 12:01

Hello

MERCI Bruno , c parfait SANS "_X" !!

J'ai ma routine FODMRDELR ... En attente de la suite ...

MERCI a TOUS les Bruno, Bye, lecrabe
Autodesk Expert Elite Team
0

#8 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7336
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 30 septembre 2015 - 13:19

Hello Bruno

SVP si tu as qq instants a consacrer a ceux qui galerent un peu avec les ODs de MAP (ou CIVIL) !?

*** Routine FOD (Find OD) : dans la selection classique AutoCAD, ne garder que les objets ayant au moins UNE (ou plus) table OD attachee
Ainsi on a les objets de MAP (ou CIVIL) avec OD ...

*** Routine FODMT (Find OD Multiple Table): dans la selection classique AutoCAD, ne garder que les objets ayant au moins DEUX tables OD attachees
Ainsi on a les objets de MAP (ou CIVIL) avec multi-tables OD ... C RARE !

*** Routine FODMR (Find OD Multiple Record) : dans la selection classique AutoCAD, ne garder que les objets ayant sur l'une de leur tables OD (si multi-tables) au moins 2 records OD (ou plus)
Ainsi on a les objets de MAP (ou CIVIL) avec du multi-record OD ... C TRES RARE !

Merci d'avance, Bye, lecrabe
Autodesk Expert Elite Team
0

#9 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4452
  • Inscrit(e) : 20-juin 03

Posté 30 septembre 2015 - 13:46

Salut,

Pourquoi je ne me précipite pas?

Les sélections filtrées par OD sont problématiques, alors qu'avec les XData ce n'est pas le cas: on peut inclure ceux-ci dans la liste de filtre à fournir à (ssget)
Avec les OD, en lisp, je suis obligé de tout sélectionner et d'éplucher la sélection un à un, ce qui en terme de réactivité est franchement bof...

La preuve pour moi flagrante est la fonction Sel_By_OD que j'avais écrite en lisp avec la fonction MQSelect écrite en Net par Olivier. C'est le jour et la nuit...

Donc bien que ça reste faisable en lisp, pour moi la solution serait plutôt en Net; chose que je pratique pas.

Si AutoDesk pouvait directement inclure les OD dans les filtres, ça serait l'idéal.
Fais remonter la doléance, tu t'exprime mieux que moi en anglais. ;)

PS:Je n'ai aucune idée de comment a procédé Olivier en NET, mais en tout cas c'est TOP!
Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#10 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7336
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 30 septembre 2015 - 13:54

Hello Bruno

OK : no problem !

C SUR que la vitesse de traitement de la routine en Dotnet de Olivier est incomparable !
et en Lisp/VLisp si tu dois parcourir la selection AutoCAD "entite par entite" pour voir
si il y a (ou pas) des tables ODs attachees, c la galere en terme de vitesse !

Sniff, Sniff, Bye, lecrabe

PS: cette doleance a ete remontee au niveau du "MAP Team" depuis tres longtemps
et avec malheureusement aucun resultat !
Autodesk Expert Elite Team
0

#11 L'utilisateur est hors-ligne   DenisHen 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2506
  • Inscrit(e) : 17-décembre 05
  • LocationSAINT FLORENTIN (Yonne)

Posté 30 septembre 2015 - 19:44

Bonjour à tous,

Je me pose aussi beaucoup de questions sur les OD, notamment lors de la lecture du post n°9 de BonusCAD :

Peut-on remplacer les OD par des XDATAs, surtout si on en fait un export en SHAPEFILE...(ou un tableau EXCEL par exemple) ?

Car, si les OD sont plus "lents" à la fouille du DWG, les XDATAs sont-ils plus rapides et efficaces, et surtout, peut-on, plus facilement, exploiter les XDATAs que les OD ?

C'est une question que je me pose, car j'ai des dessins avec 4000 points (dont j'insert un bloc pour chaque) que j'exporte facilement en SHAPEFILE (car j'ai fais un Lisp pour remplir la valeur des attributs), mais j'ai aussi des centaines de polylignes que je traite avec des OD...

Mais c'est super lourd à mettre en oeuvre avec des OD... Vu tous les attributs (6 à 9) dans différentes tables (3)... Et surtout, je ne sais pas comment automatiser ces attributions en LiSP...

Les XDATAs seraient-ils plus faciles, surtout à "automatiser" en LiSP ? Et à exporter ?

Je me questionne...

Denis...
LinkedIn et mon site...
Windows 10 Pro 64bits / AutoCAD MAP 3D 2018.0.2
Covadis 16 / Microstation V8i

Un clavier azerty en vaut deux...
Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres...
Davantage d'avantages, avantagent davantage (Bobby Lapointe)
0

#12 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7336
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 01 octobre 2015 - 08:18

Hello Bruno

SVP je reviens a la charge pour UNE des 3 routines demandees :

*** Routine FODMR (Find OD Multiple Record) : dans la selection classique AutoCAD, ne garder que les objets ayant sur l'une de leur tables OD (si multi-tables) au moins 2 records OD (ou plus)
Ainsi on a les objets de MAP (ou CIVIL) avec du multi-record OD ... C TRES RARE !

Je pense (Mais j'ai peut etre TORT !?) que tu pourrais fournir "facilement" cette routine
en la derivant de ta routine "del_record_other0" (sans le "_X") afin d'avoir une selection classique
et bien sur AUCUNE suppression de quoique ce soit !

FODMR : Seulement creer (en sortie) un jeu de selection de toutes les entites
ayant au moins UNE (ou plus) table OD avec au moins UN multi-record (ou PLUS) ...

Merci d'avance pour ton eventuelle routine, Bye, lecrabe
Autodesk Expert Elite Team
0

#13 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4452
  • Inscrit(e) : 20-juin 03

Posté 01 octobre 2015 - 08:55

Citation

Peut-on remplacer les OD par des XDATAs

A DenisH

La réponse est oui.
J'ai repris la routine d'Olivier, car celle-ci avait à mon goût quelque défauts (cela veut pas dire que la mienne n'en a pas!).
En effet; elle ne traitait qu'une seule table et les valeurs étaient toutes des chaines.
J'ai simplement amélioré ce point.
Voici ma version.
(defun C:OD2XD ( / LstTable Jeu I iNbJeu Elt EltLstTable iEltLst iNbEltLst EltTable oTableDef sNomTable exdata oLstChamp iChamp
                  iNbChamp sNomChamp sTypeChamp sValChamp exdata newent)
  (setq LstTable (ade_odtablelist))
  (setq Jeu (ssget))
  (setq I 0 iNbJeu (sslength JEU))
  (repeat iNbJeu
    (setq Elt (ssname Jeu I))
    (setq I (1+ I))
    (if (setq EltLstTable (ade_odgettables Elt))
      (progn
      (setq iEltLst 0 iNbEltLst (length EltLstTable))
      (repeat iNbEltLst
        (setq EltTable (nth iEltLst EltLstTable))
        (setq iEltLst (1+ iEltLst))
        (setq oTableDef (ade_odtabledefn EltTable))
        (setq sNomTable (cdr (assoc "Tablename" oTableDef)))
        (regapp sNomTable)
        (setq exdata (list sNomTable))
        (setq oLstChamp (cdr (assoc "Columns" oTableDef)))
        (setq iChamp 0 iNbChamp (length oLstChamp))
        (repeat iNbChamp
          (setq sNomChamp (cdr (assoc "ColName" (nth iChamp oLstChamp))))
          (setq sTypeChamp (cdr (assoc "ColType" (nth iChamp oLstChamp))))
          (setq sValChamp (ade_odgetfield Elt EltTable sNomChamp 0))
          (setq iChamp (1+ iChamp))
          (setq exdata
            (append exdata
              (list
                (cond
                  ((eq sTypeChamp "Real") (cons 1040 sValChamp ))
                  ((eq sTypeChamp "Integer") (cons 1070 sValChamp ))
                  ((eq sTypeChamp "Point") (cons 1010 sValChamp ))
                  ((eq sTypeChamp "Character") (cons 1000 sValChamp ))
                )
              )
            )
          )
        )
        (setq exdata (list (list -3 exdata)))
        (setq newent (append (entget Elt) exdata))
        (entmod newent)
      )
      )
    )
  )
)


Citation

Car, si les OD sont plus "lents" à la fouille du DWG, les XDATAs sont-ils plus rapides et efficaces, et surtout, peut-on, plus facilement, exploiter les XDATAs que les OD ?


Oui les XDATA sont plus facilement filtrable avec (ssget (liste de filtre)).
Quand à exploiter les Xdatas! Elles ne le sont que par la programmation, donc facile si on manie au moins le lisp comme son vélo.

Fais tu du vélo? ;)

A Lecrabe

Je pourrais éventuellement regarder ta demande pendant du temps libre.
Par contre cela serait bien que tu me fournisse un extrait de DWG ayant ces particularités (cela m'éviterais d'en construire un, je n'ai pas d'OD multiples, vu que je purge avec ma routine)
Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#14 L'utilisateur est hors-ligne   DenisHen 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2506
  • Inscrit(e) : 17-décembre 05
  • LocationSAINT FLORENTIN (Yonne)

Posté 01 octobre 2015 - 10:59

Bonjour à tous,

Oui BonusCAD, j'ai un bon fichier en exemple à te fournir, mais je ne serais à mon bureau que lundi.

Et oui, je faisais du vélo, dans ma jeunesse...

Denis...
LinkedIn et mon site...
Windows 10 Pro 64bits / AutoCAD MAP 3D 2018.0.2
Covadis 16 / Microstation V8i

Un clavier azerty en vaut deux...
Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres...
Davantage d'avantages, avantagent davantage (Bobby Lapointe)
0

#15 L'utilisateur est hors-ligne   GEGEMATIC 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 661
  • Inscrit(e) : 04-novembre 05

Posté 01 octobre 2015 - 17:40

Salut Bonus,

Voir le messagebonuscad, le 30 septembre 2015 - 13:46 , dit :


La preuve pour moi flagrante est la fonction Sel_By_OD que j'avais écrite en lisp avec la fonction MQSelect écrite en Net par Olivier. C'est le jour et la nuit...

Donc bien que ça reste faisable en lisp, pour moi la solution serait plutôt en Net; chose que je pratique pas.

Si AutoDesk pouvait directement inclure les OD dans les filtres, ça serait l'idéal.
Fais remonter la doléance, tu t'exprime mieux que moi en anglais. ;)

PS:Je n'ai aucune idée de comment a procédé Olivier en NET, mais en tout cas c'est TOP!

C'est tout à fait vrai, c'est d'ailleurs le genre de choses qui font que je n'abandonne pas complètement le .net
(car sinon les commandes setpropertyvalue et getpropertyvalue font presque tout ce que je faisais auparavant avec .net)

je te joins une dll qui ne marche bien que jusqu'a la version 2012, (en tout cas elle merde avec la version 2015)
Elle contient 2 commandes, odselect et odmerge

odselect se contente de sélectionner par table, mais elle le fait très rapidement, je viens de la retester sur une vieille machine, ça ne traine pas pour sélectionner 20000 parcelles.
l'avantage, c'est qu'elle retourne un jeu de sélection lisp, odsset.
on peut donc l'intégrer dans un lisp en l'appelant simplement par (command "odselect ") puis en lisant le js odsset.
cette commande peut également être utilisée par le crabe, c'est une commande tout ce qu'il y a de normale !

avec la 2015, elle fonctionne, sélection et grip des objets, mais elle affiche un message d'erreur, c'est l'export vers le js lisp qui ne marche plus.

Odmerge sert à fusionner 2 tables, j'ai le souvenir de m'en être servi beaucoup à une époque, mais j'ai refait un test aujourd'hui, ça n'a pas été concluant ...
je pense qu'elle ne marche que si les 2 tables ont des champs différents, il faudrait que je refasse des tests.

Quand Olivier à fait son MqSelect, j'ai délaissé ces fonctions car la version d'Olivier était beaucoup plus avancée.
je vois bien qu'il y aurai un intérêt à reprendre ce travail en déclinant des fonctions lisp simple genre (odselect "table" "champ" (val)), ça aurait été facile en 2011 ... mais ce qui me gonfle avec .net, c'est les migrations:
or je suis passé de Visual Studio 2010 / autocad 2012 à visual studio 2013 / autocad 2015, et l'export vers des symboles lisp ne marche plus ! et je n'y comprends pas grand chose !

a+
Gégé

Fichier(s) joint(s)

  • Fichier joint  OdSelect.zip (15,3 Ko)
    Nombre de téléchargements : 7

---------------------------------------------------------------------- PowerClic sur http://www.g-eaux.com
0

#16 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 993
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 02 octobre 2015 - 08:25

Bonjour,

Pour la fonction MQSelect, je dois aussi balayer toute la base de données, mais c'est beaucoup plus rapide en .Net qu'en Lisp.
Au vu de cet article et de celui-ci des développeurs Autodesk, même si ce n'est pas spécifique pour les OD, on voit que l'accès aux objets est beaucoup plus rapide en .Net qu'en Lisp.

Ceci dit, sur les gros dessin, le temps de réponse de la fonction MQSelect est quand même non négligeable

J'utilise Lisp aussi bien que .Net, mais si il y a une case de dialogue à gérer, pour moi c'est forcément .Net.
Mais c'est vrai que le portage et les différentes versions sont un peu plus compliquées à gérer.
Personnellement, j'utilise VS2010 pour toutes mes versions 2007 à 2014 (pas tester encore sur 2016), mais je me contente de gérer les propriétés/méthodes simples.

Olivier
0

#17 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4452
  • Inscrit(e) : 20-juin 03

Posté 04 octobre 2015 - 13:56

Salut Gégé,

Citation

je te joins une dll qui ne marche bien que jusqu'a la version 2012, (en tout cas elle merde avec la version 2015)
Elle contient 2 commandes, odselect et odmerge


Merci, mais j'ai essayé de tester sur Map 2014. Si pas de refus de chargement par NetLoad, ODSelect reste commande inconnue...

@ Olivier

Citation

Personnellement, j'utilise VS2010 pour toutes mes versions 2007 à 2014 (pas tester encore sur 2016)


A priori lili2006 à le même problème que moi avec MQSelect (je pense qu'il est sous la version Map2016 ou 2015).

Je pense que tu vas être solicité pour un portage sous 2015 ou + :rolleyes:

Citation

Mais c'est vrai que le portage et les différentes versions sont un peu plus compliquées à gérer.

Hé oui il ne pas y avoir que des avantages à utiliser .NEt, c'est ce côté sombre qui me rebute pour me tourner vers ce language ET surtout le partager dans toutes ses déclinaisons possibles.
Celà doit être un gros investissement pour le programmeur ?!
Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#18 L'utilisateur est en ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11574
  • Inscrit(e) : 21-décembre 05

Posté 04 octobre 2015 - 16:49

Bonsoir à toutes et tous,

Citation

A priori lili2006 à le même problème que moi avec MQSelect (je pense qu'il est sous la version Map2016 ou 2015).


MAP 2016 !





AutoCAD MAP 3D 2018 - Covadis 16.0b
Forum : http://genie-civil.bbactif.com/
0

#19 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 993
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 05 octobre 2015 - 08:09

Bonjour,

je viens de tester MQSELECT sur Map 2016 chez moi => pas de souci, ça se charge et le dialogue s'affiche. Par Netload, il faut bien charger ObjectDataCS19.dll
Image IPB


Olivier
0

#20 L'utilisateur est en ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11574
  • Inscrit(e) : 21-décembre 05

Posté 05 octobre 2015 - 09:08

Bonjour à toutes et tous,

Salut Olivier,

Et ou peut on trouver cette .dll ?

En effet, je n'ai pas la dernière version à priori,...

Merci d'avance,
AutoCAD MAP 3D 2018 - Covadis 16.0b
Forum : http://genie-civil.bbactif.com/
0

Partager ce sujet :


  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)