Aller au contenu

Fraid

Membres
  • Compteur de contenus

    2 523
  • Inscription

  • Dernière visite

  • Jours gagnés

    23

Tout ce qui a été posté par Fraid

  1. Bonjour, Un essai d'utilisation de l’excellente fonctions de Lee Mac En intégralité ici cela a l'air de fonctionner chez moi. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;getharea V1.0 12/12/2018;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Tappez GHA ou getharea pour lancer le lisp ;Additionne les surfaces des hachures contenues dans une XREF ;Place le champ dans le presse papier, affiche le résultat dans la console et crée une ldata (defun c:getharea (/ xref IOI OoO nomxref ) (vl-load-com) (setq IOI 0 ) (while (= IOI 0) (setq xref (entsel "\nSélectionnez une XREF: ")) (if xref (if (= (cdr (assoc 0 (entget (car xref)))) "INSERT") (setq IOI 1)) (princ "\nVeuillez Sélectionner une XREF") ) ) (setq *SURFACE* (cdr (car (LM:ODBX2 'GTHA (list (getchemin xref)) nil))) nomxref (cdr (assoc 2 (entget (car xref))))) (if *SURFACE* (progn (vlax-ldata-put "SURFACES" nomxref *SURFACE*) (SetClipBoardText (strcat "%<\AcVar.17.0 Lisp." (rtos *SURFACE*) ">%")) (princ (strcat "\nSurface totale des hachures de l'XREF " nomxref " : " (rtos *SURFACE*) " M²")) (princ) ) (progn (princ "\nAucune hachure trouvée.")(princ)) ) ) (defun GTHA ( doc / area) (setq area 0.0) (vlax-for obj (vla-get-ModelSpace doc) (if (= (vla-get-ObjectName obj) "AcDbHatch") (setq area (+ area (vla-get-Area obj))) ) ) area ) (defun LM:ODBX2 ( fun lst sav / *error* app dbx dir doc dwl err rtn vrs );de Lee mac (defun *error* ( msg ) (if (and (= 'vla-object (type dbx)) (not (vlax-object-released-p dbx))) (vlax-release-object dbx) ) (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*")) (princ (strcat "\nError: " msg)) ) (princ) ) (cond ( (progn (setq dbx (vl-catch-all-apply 'vla-getinterfaceobject (list (setq app (vlax-get-acad-object)) (if (< (setq vrs (atoi (getvar 'acadver))) 16) "objectdbx.axdbdocument" (strcat "objectdbx.axdbdocument." (itoa vrs)) ) ) ) ) (or (null dbx) (vl-catch-all-error-p dbx)) ) (prompt "\nUnable to interface with ObjectDBX.") ) ( t (vlax-for doc (vla-get-documents app) (setq dwl (cons (cons (strcase (vla-get-fullname doc)) doc) dwl)) ) (foreach dwg lst (if (or (setq doc (cdr (assoc (strcase dwg) dwl))) (and (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-open (list dbx dwg)))) (setq doc dbx) ) ) (progn (setq rtn (cons (cons dwg (if (vl-catch-all-error-p (setq err (vl-catch-all-apply fun (list doc)))) (prompt (strcat "\n" dwg "\t" (vl-catch-all-error-message err))) err ) ) rtn ) ) (if sav (vla-saveas doc dwg)) ) (princ (strcat "\nError opening file: " (vl-filename-base dwg) ".dwg")) ) ) (if (= 'vla-object (type dbx)) (vlax-release-object dbx) ) (reverse rtn) ) ) ) (defun getchemin ( ref / xref chemin) (if (and (setq xref (car ref)) (= "INSERT" (cdr (assoc 0 (entget xref)))) (setq def (tblsearch "block" (cdr (assoc 2 (entget xref))))) (= 4 (logand 4 (cdr (assoc 70 def)))) ) (setq chemin (cdr (assoc 1 def))) ) ) (defun SetClipBoardText ( text / htmlfile );Place un texte dans le presse papier Windows.(TheSwamp) (vlax-invoke (vlax-get (vlax-get (setq htmlfile (vlax-create-object "htmlfile")) 'ParentWindow ) 'ClipBoardData ) 'SetData "Text" text ) (vlax-release-object htmlfile) ) (defun c:GHA nil (c:getharea)) tu n'a plus qu'a faire Ctrl+v et tu as ton champ. dit moi si cela fonctionne.
  2. Fraid

    géolocaliser image

    Bonjour, J'imagine que c'est un imprim écran? si c'est le cas il te faut 2 points et utiliser l'outil aligner pour caler ton image. sachant que c'est de l'approximatif tout cela. Je préfère d'abord insérer le cadastre et aligner l'image sur les batiments.
  3. un petit bout de code en java pour passer les txt en html, non récursif. à télécharger on peut le faire en lisp, mais c'est plus long.
  4. Bonjour, En attendant c'est utilisable en sauvegarde, pour cela il faut cliquer droit / enregistrer sous d'une page quelconque du site dans le dossier, renommer les pages en html. et c'est consultable hors ligne.
  5. Moi aussi... J'ai fait cette capture pour déniché les liens morts, mais je n'ai pas su exploiter cette masse hétérogène... la, je ne vois pas ce que tu veux dire, il y a les fautes frappe originales. Exemple
  6. Bonjour, Comme promis les pages sont en .txt c'étais plus pratique.
  7. Bonjour, J'ai donc revue ma copie. Il y a toujours des cas ingérables qui produisent des textes dans le désordre. Mais moins que dans la première version. Si quelqu'un à une idée pour s'approché du 100% de réussite.
  8. Bonjour, Peut etre que cela puisse venir du style de texte. Fait lui un etransmit par exemple, et il auras les mêmes.
  9. Effectivement Cela correspond plutôt à Afficher le code source, ctrl a, ctrlc ,ctrl v dans un fichiers texte....
  10. Bonjour, Le 17/04/2018 Il y avais 46422 pages de messages (45636 questions). J'ai une copie html de chaque page. 2.83 GO (env. 666 mo zipé) Ce n'est pas du piratage, c'est juste un clic droit, enregistrer-sous sur chaque page. ;) Je vais essayé de mettre le zip en partage cette nuit.
  11. Je suis bien d'accord. Mais les pièges sont de plus en plus sournois. Par exemple, autoriser les cookies d'un site suffit pour introduire du code sur le PC, puis un clic n'importe ou sur la page, qui exécute un script...et ils sont doué pour contourner les droits et tromper les antivirus.
  12. Bonjour, Il n'est pas spécifié dans l'article que le code se trouve dans le dessin, mais qu'il se déclenche à l'ouverture d'un dessin. Avec n'importe quel langage, nous pouvons modifier acad20XXdoc ou la base de registre pour qu'un lsp malicieux ou autre s’exécute à l'ouverture d'Autocad... et la , ce n'est pas facile à détecter.
  13. He bonjour, Un petit , cela aide aussi.
  14. Et coucou, Je peut enfin me reconnecter. Merci pour vos retours. Effectivement, quand il y a plusieurs textes sur un segment, il y a de grande chance que les textes soient placés dans le désordre. J'ai donc repris mon algorithme, et continue a faire des testes. (pas simple) Je mettrais en ligne ce week end la nouvelle version. à bientôt.
  15. Bonjour, Un petit lisp qui sert à regrouper les textes des noms de voies sur les planches cadastrales téléchargeable Ici Si c'est bien un truc qui m'agace, c'est bien cela, le nom des rues éclatés le long de son axe... Il aurais pu mettre une x-data avec le nom entier, mais non... Me suis donc pris la tête avec l'algorithme pour choisir les bon textes en sélectionnant la polyligne représentant l'axe. Au début je pensais m'en tirer avec la rotation, mais il ne sont que rarement parallèle au segment. Puis en mesurant la distance du texte au point perpendiculaire au segment grâce inters et polar, cela aurais du fonctionner, mais non, j'ai des textes pollueurs... Me suis donc rabattu sur les distances des vertices au texte. En plus, le texte final (le nom de la rue) est placé dans le presse papier de Windows et dans une xdata dans la polyligne. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;RegrouptextCada V2.0 07/12/2018;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Tappez RGTC ou regrouptextcada pour lancer le lisp ;Regroupe les textes se trouvant le long d'une polyligne en un seul texte placé dans le presse papier et en xdata dans la polyligne. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;By Fraiddd and Cadxp Stars ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:regrouptextcada ( / sst_var *error* _StartUndo _EndUndo end_msg ;Fonctions internes acdoc entpline IOI OoO textes n txt pttxt listetexte finaltexte pt1 O< ;Variables sst_val listevoie expttxt ind longseg distpt1 distpt2 listseltext listetextetmp ) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;FONCTIONS INTERNES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun sst_var (var val);Sauvegarde des variables Autocad modifiées (cond((getvar var) (setq sst_val (cons (list 'setvar var (getvar var)) sst_val)) (if val (setvar var val)) )) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun *error* ( msg );Redéfinition de la fonction *error* (if acdoc (_EndUndo acdoc)) (mapcar 'eval sst_val) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun _StartUndo ( doc ) (_EndUndo doc);Marqueur de retour (vla-StartUndoMark doc) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun _EndUndo ( doc ) (if (= 8 (logand 8 (getvar 'UNDOCTL))) (vla-EndUndoMark doc) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun end_msg nil (princ "\nOpération réussie.") (princ "\nLe texte suivant est placé dans le presse papier Windows") (princ (strcat "\n" finaltexte))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Test la validitité du plan de cadastre ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (if (memberwcmatch "*ZONCOM*" (listecalque acdoc)) (progn ;Si valide ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CODE PRINCIPAL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (_StartUndo acdoc);Debut marqueur de retour ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;si le SCU /= de général on le met (if (= (getvar "worlducs") 0)(progn (command "_.ucs" "")(setq O< 1))) ;Variables Autocad (mapcar '(lambda (x) (sst_var (car x) (cdr x))) '(("angdir" . 0) ("osmode" . 0) ("auprec" . 4) ("luprec" . 4) ("cmdecho" . 0) ("menuecho" . 1) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Suppression des textes supperposés (s'effectue qu'une seul fois dans le dessin grace au marqueur ldata) (if (not (vlax-ldata-get "CADA" "DelSupText")) (progn (DelSuperposition (ssget "_x" (list (cons 0 "TEXT")(cons 8 "3ZONCOMMTEX")))) (vlax-ldata-put "CADA" "DelSupText" 1) ) ) ;Isolation des calques concernés (command "_clayer" "1ZONCOMM") (isolay "*ZONCOM*" acdoc) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Sélection de la polyligne (setq IOI 0 ;Drapeau qui évite l'erreur quand on clique dans le vide. OoO 0 ;Drapeau anti gogol );Fin setq (while (= IOI 0) (setq entpline (entsel "\nSélectionnez une polyligne: ")) (if entpline (if (= (cdr (assoc 0 (entget (car entpline)))) "LWPOLYLINE") (setq IOI 1)) (if (< OoO 222) (progn (princ "\nVeuillez Sélectionner une polyligne") (setq OoO (1+ OoO)) ) (progn (princ "\n!!!!! ALERTE !!!!! Votre chat est allongé sur votre clavier et/ou il dévore votre souris") (exit) ) ) ) ) (if (null (setq finaltexte (get-xdata "NOMV" entpline)));si la polyligne ne contient pas le nom de la voirie en xdata (progn (setq textes (ssget "_x" (list (cons 0 "TEXT")(cons 8 "3ZONCOMMTEX")));Sélection des textes dans le calque "3ZONCOMMTEX" listevoie '("AUTOROUTE" "Rue" "Boulevard" "Bd" "Avenue" "Av" "Route" "Ruelle" "Rte" "Route départementale" "R.d." "Route nationale" "R.n." "Voie" "Chemin" "Ch" "Ch." "Impasse" "Imp" "Imp." "Allée" "Passage" "Chaussée" "Quai" "C.R." "V.C." "C.E.") ) (if textes (progn ;Pour chaque vertice de la polyligne (mapcar '(lambda (pt2) (setq n -1 ;Compteur pour ssname listetextetmp nil ) (if pt1 ;A la 1er passe, il ne se passe rien ;pour chaque texte (progn (repeat (sslength textes) (setq txt (entget (ssname textes (setq n (1+ n))));Extraction du texte dans la liste du jeu de sélection ind (cdr (assoc 1 txt));Contenu du texte pttxt (cdr (assoc 10 txt));Liste des coordonnées du point d'insertion du texte longseg (distance pt1 pt2);Longueur du segment distpt1 (distance pt1 pttxt);Distance du point 1 au texte distpt2 (distance pt2 pttxt);Distance du point 2 au texte );Fin setq ;(if (= rottxt 0.0) (setq rottxt (* 2 pi))) (if (and (not (member (cdr (assoc 5 txt)) listseltext));On verifie que ce texte n'a pas été déjà selectionné (< (- (+ distpt1 distpt2) longseg) 3);La somme des distances du point d'insertion du texte au 2 points d'un segment, moins la longueur du segment, doit etre inferieur à 3 (> (+ longseg 3) distpt1) ;la longueur du segment + 3 (3 pour prendre en charge les textes juste au dessus d'un vertices) (> (+ longseg 3) distpt2);doit etre superieur au distances du point d'insertion du texte au 2 points d'un segment ) (setq listetextetmp (append listetextetmp (list(list distpt1 ind)));on ajoute a la liste temporaire le contenu du texte avec la distance au pt1 listseltext (append listseltext (list(cdr (assoc 5 txt))));Permet de ne pas reselectionné un texte qui se trouve au dessus du vertice ) ) );Fin repeat (if listetextetmp (if (> (length listetextetmp) 1) (mapcar '(lambda (x) (setq listetexte (append listetexte (list(cadr x))))) (trilistlist listetextetmp 0));on ajoute la liste temporaire triée par distpt1 a la liste de texte (setq listetexte (append listetexte (list (cadr (car listetextetmp)))));on ajoute le texte a la liste de texte ) ) );Fin du progn );Fin du if pt1 (setq pt1 pt2);pt2 devient pt1 );Fin lambda (vertices (car entpline));Liste des vertices d'une polyligne );Fin mapcar );Fin progn );Fin if textes );Fin progn );Fin if (command "_laythw" ;Dégel tout les calques "_clayer" "0" ;Calque 0 courant ) (if listetexte (progn (if (member (car (reverse listetexte)) listevoie) (setq listetexte (reverse listetexte)));Si un nom de voie figure en dernier, on inverse la liste (setq finaltexte (replace " " " " (lst2str listetexte " ")));liste de str en str ;Placement du texte assemblé dans le presse papier. Peut planter selon la config de Windows. (SetClipBoardText finaltexte); SetClipBoardText Peut etre remplacé par dos_clipboard si doslib est installé. (put-xdata "NOMV" entpline finaltexte);ecriture du nom de la voirie en xdata au sein de la polyligne (end_msg);Message de fin ) (progn (if finaltexte (progn (SetClipBoardText finaltexte) (end_msg);Message de fin ) (princ "\nAucun texte trouvé.") ) ) ) (if O< (returnscu));Rétablissement du SCU si il a changé (_EndUndo acdoc);Fin du marqueur de retour (mapcar 'eval sst_val);Restauration des variables (princ) );Fin progn (princ "\nFichier invalide") );Fin if );Fin defun c:regrouptextcada ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;FONCTIONS EXTERNES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun memberwcmatch (str lst);Fonctionne comme member mais on peux utiliser * (vl-member-if '(lambda (x) (wcmatch x str)) lst ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun isolay (lay doc / listlay);Gèle tout les calques sauf ceux décrit en attribut lay (vlax-for listlay (vla-get-layers doc) (if (not (wcmatch (vla-get-Name listlay ) lay)) (vla-put-Freeze listlay :vlax-true) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;vertices (Gile) ;Renvois la liste des vertices (points) d'une polyligne ;Argument ent obtenu par exemple avec (car (entsel "\nSélectionnez une polyligne :")) (defun vertices (ent / i lst) (vl-load-com) (setq i (1+ (fix (vlax-curve-getEndParam ent)))) (repeat i (setq lst (cons (vlax-curve-getPointAtParam ent (setq i (1- i))) lst)) ) lst ) ;; lst2str ;; Concatène une liste et un séparateur en une chaine ;; ;; Arguments ;; lst : la liste à transformer en chaine ;; sep : le séparateur (defun lst2str (lst sep) (if (cdr lst) (strcat (vl-princ-to-string (car lst)) sep (lst2str (cdr lst) sep)) (vl-princ-to-string (car lst)) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun listecalque ( doc / lay lst);Renvois la liste des calques (vlax-for lay (vla-get-layers doc) (setq lst (cons (vla-get-name lay) lst)) ) lst ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun SetClipBoardText ( text / htmlfile );Place un texte dans le presse papier Windows.(TheSwamp) (vlax-invoke (vlax-get (vlax-get (setq htmlfile (vlax-create-object "htmlfile")) 'ParentWindow ) 'ClipBoardData ) 'SetData "Text" text ) (vlax-release-object htmlfile) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ReturnSCU nil ;Rétablis le SCU précédant (command "_ucs" "p" "repere" "" ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun Replace (oldText newText text / i) (while (setq i (vl-string-search oldText text)) (setq text (vl-string-subst newText oldText text i ) ) ) text ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Place une xdata dans un objet sous la forme d'un texte ;Arguments: appli : Nom de l'application, crée si elle n'existe pas. ; sel : sélection d'objet obtenue par exemple avec (entsel "\nSélectionnez une polyligne :"). ; txt : Texte (defun put-xdata (appli sel txt) (regapp appli) (entmod (append (entget (car sel)) (list ( list -3 (cons appli (list (cons 1000 txt))))))) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Lire une xdata dans un objet ;Arguments: appli : Nom de l'application. ; sel : sélection d'objet obtenue par exemple avec (entsel "\nSélectionnez une polyligne :"). (defun get-xdata (appli sel) (cdar (cdadr (assoc -3 (entget (car sel) (list appli))))) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ListeCDR (listedListes / k°) (setq K° '("")) (mapcar '(lambda (x) (setq K° (cons (cdr x) K°))) listedListes) K° ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun trilistlist (listlist i) (vl-sort listlist '(lambda (list1 list2)(< (nth i list1) (nth i list2)))) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Efface les objets superposés (vdh bruno) (defun DelSuperposition ( ss / i e l m flag DefGeo) (defun DefGeo (l / m) (cons (car l) (cons (cadr l) (cdr (member (assoc 100 (setq m (cdr (member '(100 . "AcDbEntity") l)))) m))) ) ) (and (repeat (setq i (sslength ss)) (setq l (cons (DefGeo (entget (ssname ss (setq i (1- i))))) l))) (while l (setq e (car l) m (cdr l) l nil) (while m (or (and (equal (cdr e) (cdar m) 1.e-8) (setq flag T) (entdel (cdr (assoc -1 (car m))))) (setq l (cons (car m) l))) (setq m (cdr m)) ) (if flag (entdel (cdr (assoc -1 e))) ) (setq flag nil) ) ) (princ) ) ;Raccourci (defun c:rgtc nil (c:regrouptextcada)) Par contre, je ne peux que le tester sur Autocad 2011 et Windows 7. Quelqu’un pourrais t'il tester sur 8 et 10? et un Autocad 2018? Merci :D
  16. Yop, Tu n'est pas le seul, j'ai même eu peur qu'il disparaisse....
  17. Bonjour, Je n'utilise pas la dernière version de Circé, pas eu le temps, mais la version CirceBatch (mode commande) de la version précédente 4.3, encore dispo A cette adresse voici un exemple d'un .bat écrit avec un lisp, puis lancer avec la commande shell @echo off "C:\Data\CirceBatch\CirceBatch.exe" -init Circe.ini -mode 0 -type 2 -sys1 24 -sys2 24 -typcoor1 2 2 1 -typcoor2 3 140 -lon 4.50166666667 -lat 49.5180555556 > "C:\Data\ReturnCirceddT93.txt" exit pour tester la presence et continuer (while (null (dos_find "C:\Data\ReturnCirceddT93.txt")) (command "_delay" 200) ) arf, le doslib me colle au basquette, mettre findfile a la place de dos_find
  18. Bonjour, Peut etre avec un regard?
  19. Bonjour, Je suis étonné que tu doive killer le process. J'utilise aussi Circé, dans sa version batch. Comme le retour est un .txt contenant les nouvelles coordonnées; il suffit de tester sa présence. De plus le .bat s’arrête tout seul me semble t'il, sinon il suffit de mettre exit en dernières ligne. Si tu n'utilise pas la version batch, je suis curieux de voir ce lisp.
  20. Bonjour, Gile nous a fait un superbe Lisp FUSION peut etre qu'il peut t'aider.
  21. (humour Malouin ON) Non, enorme (humour Malouin OFF)
  22. si il n y a pas de femmes, c'est peut être parce qu'ils dessinaient allongé.... naze...
  23. He boujour, Mieux ou mien bien, c'étais surtout différent. Après plus de 15 ans de planche, j'ai eu du mal à me séparer de mes pointes tubulaires. Quand je rentrais chez moi, a mes debut d'Autocad en entreprise, je traçais des Mandalas celtiques pour me défouler. Outre l'aspect technique des dessins, c'étais d'autre compétences mises en place qui maintenant ne servent plus ou peux. c'est une conséquence de l'évolution inévitable qui touche tout les domaines d'activités.
  24. Bonjour, Il existe aussi la solution du Registre Windows, avec ces 2 petites fonctions ;;; Ecrire/Changer les Variables dans le registre (defun PUT-var (RegVar RegVal) (vl-registry-write "HKEY_CURRENT_USER\\Software\\User\\Variables" RegVar RegVal ) (princ) ) ;;;Récupérer la valeur d'une variable inscrite dans le registre (defun GET-var (RegVar / ExtVal) (setq ExtVal (vl-registry-read "HKEY_CURRENT_USER\\Software\\User\\Variables" RegVar ) ) ExtVal )
  25. Fraid

    Maison d'arrêt

    Bonjour, Si tu fait une recherche par élément dans google tu en trouveras surement certain. Bonne chance
×
×
  • 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é