Aller au contenu

zebulon_

Membres
  • Compteur de contenus

    1 489
  • Inscription

  • Dernière visite

  • Jours gagnés

    19

Tout ce qui a été posté par zebulon_

  1. zebulon_

    LIsp pour raccord à 45

    Bonjour Un problème qui pourrait être résolu par initcommandversion ? Amicalement Vincent
  2. Bonjour Tu peux commencer à compter J à 0, ça t'évite de faire un 1- à la fin. Amicalement Vincent
  3. zebulon_

    Vendée Globe Virtuel

    Bonjour J'ai le plaisir de suivre plus particulièrement Damien Seguin, premier athlète handisport à participer à cette course et il pointe en tête des IMOCA, juste derrière les foilers. Amicalement Vincent
  4. Bonjour (defun c:ccbloc () (setq js (ssget '((0 . "INSERT")))) (if js (progn (setq I 0) (repeat (sslength js) (setq e (ssname js I)) (setq I (1+ I)) (setq a (entget e)) (setq NBLOC (cdr (assoc 2 a))) (setq BL (tblobjname "BLOCK" NBLOC)) (setq J 1) (princ (strcat "\nBloc : " NBLOC)) (while (setq BL (entnext BL)) (princ (strcat "\n" (itoa J) " : " (cdr (assoc 0 (entget BL))))) (setq J (1+ J)) ) ) ) (alert "rien sélectionné") ) (princ) ) amicalement Vincent
  5. zebulon_

    Du 2D sur du 3D

    Bonjour, J'ai pratiqué assez souvent des plans topos, des fonds de plan en xref sur des projets d'ouvrage. Souvent en s'accrochant à un élément graphique de la xref on dessine une ligne, polyligne,... avec un z non nul. Du coup, ça devient vite le bordel ! Avec des traits à des altitudes non nulles et, de surcroît différentes. Amicalement Vincent
  6. zebulon_

    Retraite J1

    Et la perpétuité c'est long, surtout vers la fin...
  7. Bonjour Lucprec, ça ne me dit rien. Par contre LUPREC si. Amicalement Vincent
  8. zebulon_

    Retraite J1

    Je te souhaite une retraite avec une licence perpétuelle ! Amicalement, Vincent
  9. Trashé ? Mais non, on lui fait de la pub. Je pense que l'auteur est un fourbe qui a fait exprès d'écrire son message originel avec une grosse faute pour susciter les réactions. Si, si c'est un complot !
  10. Jeu de mots !
  11. Puis il y a ce foutu lisp qui ne veut rien comprendre quand on ne respecte pas la syntaxe. Quel couillon celui-là !
  12. Ce n'est pas veau mieux ? Moi je trouve ça vachement plus original. L'orthographe, le sens des mots, tout ça, il n'y a plus que quelques illuminés pour qui ça a de l'importance. Mais comme le message original a été corrigé, ma blague à deux balles devient incompréhensible... Amicalement Vincent
  13. Veau mieux
  14. Bonjour C'est évidemment moins drôle quand on parle l'Allemand ! "... des traîtres qui vont se noyer dans leur propre sang..." et autres joyeusetés du même tonneau. Dans ces conditions, le deuxième degré est plus difficile à appréhender. C'est plus facile en coupant le son. Amicalement Vincent
  15. c'est bizarre, RTDISPLAY est censé influer au moment d'un zoom ou d'un pan, selon l'aide. Cela ne change rien chez moi. Quelle que soit sa valeur, l'image est affichée pendant le zoom et le pan. Et elle ne l'est pas pendant le move Amicalement Vincent
  16. Bonjour, tu ne trouves pas simplement parce que ça n'existe pas ? Quand on déplace une image, on n'a que le contour. Circulez, il n'y a rien à voir ! Il y a des chances que ce soit ça, à moins que ce soit une variable bien planquée ou d'une évolution dans une version ultérieure à la mienne (2019) Amicalement Vincent
  17. C'est sûr que l'affichage des cartes et des photos aérienne ne servent pas à grand chose quand on fait des plans de structure d'ouvrage d'art. J'ai un simple Autocad de base sans rien d'autre que les outils que je me suis fabriqué moi-même. Amicalement, Vincent
  18. Bonjour, je suis toujours en licence perpétuelle. Pour Bingmap, je n'en sais rien, comme je ne m'en sers pas et que je ne sais pas ce que c'est. Mon revendeur m'a fait un calcul qui me prouvait que, sur 10 ans, c'était moins cher de passer par un abonnement, plutôt que de rester en licence perpétuelle avec plan de maintenance puis plus rien. Le plan de maintenance a et va augmenter très substantiellement, évidemment, avant de disparaitre complètement et l'abonnement est à prix réduit pour forcer / encourager les derniers récalcitrants à passer à l'abonnement. Compte tenu des circonstances, si je n'ai plus les moyens de payer un abonnement, je n'ai plus d'outil de travail. Avec une licence perpétuelle, il me reste toujours quelque chose même si ça deviendra un peu vieillot, à terme. Mais ce n'est pas comme si on avait une révolution industrielle à chaque nouvelle version. Compte tenu de mon âge, également, mon choix est donc allé vers la conservation de la licence perpétuelle. Amicalement Vincent
  19. zebulon_

    arrayrect et arrayedit

    Bonjour, la liste des entités contenues dans la définition du bloc anonyme sont modifiables par les moyens qu'on veut. Si on modifie ces entités, on modifie l'aspect du réseau dans son ensemble. je peux ainsi me passer de arrayedit pour ce que je voulais faire : j'ai un réseau formé à partir d'un bloc. Une fois que j'ai eu accès à ce bloc qui représente l'entité qui définit le réseau, je peux en modifier l'échelle, etc. je peux même changer le nom du bloc, pour autant qu'il existe, et changer radicalement l'aspect global du réseau. Merci Amicalement Vincent
  20. Bonsoir, Pour la liste des Xdata, on a la même chose dans les Express Tools en moins joli Amicalement, Vincent
  21. pas du tout ! (ssget '((-3 ("MONAPPLI"))) répond parfaitement à ma demande, mais on ne peut l'utiliser que si on a rajouté des xdata en amont. Et pour ça, il faut avoir quelques outils, sinon ça devient vite indigeste. Amicalement Vincent
  22. par exemple, je veux rajouter des données à un élément graphique "vierge" de xdata. je commence par compiler les différentes clés et leurs valeurs correspondantes dans une chaine de caractères : (setq EXDATA (x_putstr "fac" "HNSPI" nil "MONAPPLI")) (setq EXDATA (x_putstr "nbp" "5" EXDATA "MONAPPLI")) (setq EXDATA (x_putstr "pas" "0.200" EXDATA "MONAPPLI")) puis après j'enregistre cette chaine dans l'entité graphique E en spécifiant mon nom d'application (x_write EXDATA E "MONAPPLI") Si l'élément graphique possède déjà des xdata de mon application, il faut bien sûr d'abord lire les xdata existants, les modifier et les réécrire. (setq xdata1 (x_read E "MONAPPLI")) (setq xdata1 (x_putstr "rep" "5" xdata1 "MONAPPLI")) (x_write xdata1 E "MONAPPLI") et le ssget devient assez rapide, compte tenu que je ne veux sélectionner que des entités qui ont quelque chose à voir avec "MONAPPLI" (ssget '((-3 ("MONAPPLI"))) Amicalement Vincent
  23. les xdata permettent de rajouter des données non graphiques à des entités graphiques, c'est ce qui en fait la puissance. Cela vaut le coup de s'y plonger quand on a acquis un peu d'expérience en programmation. la bibliothèque qui me permet de gérer les xdata plus facilement : ;;;1000 chaine ;;;1001 application ;;;1002 accolades ;;;1003 plan ;;;1004 binaire ;;;1005 handle ;;;1010 point ;;;1011 position ;;;1012 deplacement ;;;1013 orientation ;;;1040 real ;;;1041 distance ;;;1042 echelle ;;;1070 entier ;;;1071 entier long (defun n_remove (n lst / l nlst I) (setq I 0) (foreach l lst (if (/= I n) (setq nlst (cons (nth I lst) nlst)) ) (setq I (+ I 1)) ) (reverse nlst) ) (defun n_modify (n val lst / l nlst I) (setq I 0) (foreach l lst (if (/= I n) (setq nlst (cons (nth I lst) nlst)) (setq nlst (cons val nlst)) ) (setq I (+ I 1)) ) (reverse nlst) ) ;---------------------------------------------------------------------------- ; ; trouve, sur une entité l'information correspondant à "cle" ; ; entrées : cle : clef d'accés ; e : nom d'entité ; appli : application ; ; retourne : valeur recherchée ou nil si la clef n'a pas été trouvée. ;---------------------------------------------------------------------------- (defun x_trouvinfo (cle e appli / xType xData l p) (if (= (type e) 'ENAME) (setq e (vlax-ename->vla-object e)) ) (vla-getxdata e appli 'xType 'xData) (if (and xType xData) (progn (setq l (mapcar 'vlax-variant-value (vlax-safearray->list xData))) (if (setq p (vl-position cle l)) (nth (+ p 1) l) ) ) ) ) ;------------------------------------------------------------------------------ ; lit une liste en xdata ; entrées : e : nom d'entité ; appli: application ; ; retourne : liste XDATA correspondant à l'application ;------------------------------------------------------------------------------ (defun x_read (e appli / xType xData lstType lstData RES) (if (= (type e) 'ENAME) (setq e (vlax-ename->vla-object e)) ) (vla-getxdata e appli 'xType 'xData) (if (and xType xData) (progn (setq lstType (vlax-safearray->list xType)) (setq lstData (mapcar 'vlax-variant-value (vlax-safearray->list xData))) (setq RES (list lstType lstData)) ) ) RES ) ;------------------------------------------------------------------------------ ; place une liste en xdata sur une entité en préservant les ; xdata des autres applications ; entrées : l : liste XDATA correspondant à l'application ; appli: application ; e : nom d'entité ; ; retourne : sans intéret ;------------------------------------------------------------------------------ (defun x_write (l e appli / lstType lstData xType xData) (if (= (type e) 'ENAME) (setq e (vlax-ename->vla-object e)) ) (if l (progn (setq lstType (car l)) (setq lstData (cadr l)) ) (progn (setq lstType (list 1001)) (setq lstData (list appli)) ) ) (if (= (strcase (car lstData)) (strcase appli)) (progn (setq xType (vlax-make-safearray vlax-vbInteger (cons 0 (- (length lstType) 1)))) (setq xData (vlax-make-safearray vlax-vbVariant (cons 0 (- (length lstData) 1)))) (vlax-safearray-fill xType lstType) (vlax-safearray-fill xData lstData) (vla-setxdata e xType xData) ) (princ (strcat (car lstData) " et " appli " ne correspondent pas")) ) ) ;------------------------------------------------------------------------------ ; place une valeur en général ; entrées : cle : cle d'accés ; val : valeur à stocker ; code : code XDATA (>1000) ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_putgen (cle val code l appli / lstType lstData) (if l (progn (setq lstType (car l)) (setq lstData (cadr l)) ) (progn (setq lstType (list 1001)) (setq lstData (list appli)) ) ) (if (not (vl-position cle lstData)) (progn (setq lstType (append lstType (list 1002 1000 code 1002))) (setq lstData (append lstData (list "{" cle val "}"))) (list lstType lstData) ) l ) ) ;------------------------------------------------------------------------------ ; modifie une valeur en général ; entrées : cle : cle d'accés ; val : nouvelle valeur à stocker ; code : code XDATA (>1000) ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_modgen (cle val code l appli / lstType lstData) (if l (progn (setq lstType (car l)) (setq lstData (cadr l)) (if (= (strcase (car lstData)) (strcase appli)) (progn (if (setq p (vl-position cle lstData)) (progn (setq lstType (n_modify (+ p 1) code lstType )) (setq lstData (n_modify (+ p 1) val lstData )) ) ) (list lstType lstData) ) l ) ) ) ) ;------------------------------------------------------------------------------ ; enleve la valeur annoncée par cle ; entrées : cle : cle d'accés ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_otegen (cle l appli / lstType lstData p) (if l (progn (setq lstType (car l)) (setq lstData (cadr l)) (if (= (strcase (car lstData)) (strcase appli)) (progn (if (setq p (vl-position cle lstData)) (progn (repeat 4 (setq lstType (n_remove (- p 1) lstType)) (setq lstData (n_remove (- p 1) lstData)) ) (list lstType lstData) ) l ) ) l ) ) ) ) ;------------------------------------------------------------------------------ ; lit une valeur en général ; entrées : cle : cle d'accés ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : valeur recherchée ou nil si non trouvée ;------------------------------------------------------------------------------ (defun x_litgen (cle l appli / lstData p) (if l (progn (setq lstData (cadr l)) (if (and (= (strcase (car lstData)) (strcase appli)) (setq p (vl-position cle lstData))) (nth (+ P 1) lstDATA) ) ) ) ) ;------------------------------------------------------------------------------ ; place - modifie un entier ; entrées : cle : cle d'accés ; val : valeur à stocker ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_putint (cle val l appli) (x_putgen cle (fix val) 1070 l appli) ) (defun x_modint (cle val l appli) (x_modgen cle (fix val) 1070 l appli) ) ;------------------------------------------------------------------------------ ; place - modifie un reel ; entrées : cle : cle d'accés ; val : valeur à stocker ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_putrel (cle val l appli) (x_putgen cle (float val) 1040 l appli) ) (defun x_modrel (cle val l appli) (x_modgen cle (float val) 1040 l appli) ) ;------------------------------------------------------------------------------ ; place - modifie un 3Dpoint ; entrées : cle : cle d'accés ; pt : valeur à stocker ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_putpoint (cle pt l appli) (x_putgen cle pt 1010 l appli) ) (defun x_modpoint (cle pt l appli) (x_modgen cle pt 1010 l appli) ) ;------------------------------------------------------------------------------ ; place - modifie un coefficient d'échelle ; entrées : cle : cle d'accés ; coef : valeur à stocker ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_putech (cle coef l appli) (x_putgen cle coef 1042 l appli) ) (defun x_modech (cle coef l appli) (x_modgen cle coef 1042 l appli) ) ;------------------------------------------------------------------------------ ; place - modifie un handent ; entrées : cle : cle d'accés ; hand : maintien à stocker ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_puthan (cle hand l appli) (x_putgen cle hand 1005 l appli) ) (defun x_modhan (cle hand l appli) (x_modgen cle hand 1005 l appli) ) ;------------------------------------------------------------------------------ ; place et modifie un calque ; entrées : cle : cle d'accés ; calque : calque à stocker ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli : application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_putlay (cle calque l appli) (x_putgen cle calque 1003 l appli) ) (defun x_modlay (cle calque l appli) (x_modgen cle calque 1003 l appli) ) ;------------------------------------------------------------------------------ ; place et modifie une chaine ; entrées : cle : cle d'accés ; ch : chaine à stocker ; l : liste '((xType1 xType2 ...) (xData1 xData2...)) ; appli: application ; ; retourne : liste XDATA modifiée ;------------------------------------------------------------------------------ (defun x_putstr (cle ch l appli) (x_putgen cle ch 1000 l appli) ) (defun x_modstr (cle ch l appli) (x_modgen cle ch 1000 l appli) ) ; Fin XdataFer amicalement Vincent
  24. De la même manière, compte tenu que les polylignes qui décrivent les aciers ne sont pas nommés, puisque les polylignes ne le sont pas, ce sont les xdata qui permettent au ssget de retrouver "mes" petits par le moyen décrit par Bruno ci-dessus. C'est un acier s'il possède le nom spécifique de mon application. Je vais transposer le même principe à "mes" réseaux. Amicalement Vincent
  25. Les xdata me servent déjà pour inscrire le numéro du repère dans la polyligne qui décrit le façonnage. Ce qui permet de faire le lien entre le repère et la géométrie de l'acier lors de la génération de la nomenclature. D'où ma grande expérience des xdata ! Amicalement Vincent
×
×
  • 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é