Aller au contenu

PHILPHIL

Membres
  • Compteur de contenus

    1 256
  • Inscription

  • Dernière visite

  • Jours gagnés

    10

Tout ce qui a été posté par PHILPHIL

  1. PHILPHIL

    Lisp change space

    bonsoir le lisp de lee-mac : c:vpoout par exemple ?? ca traite fenetre par fenetre par contre www.lee-mac.com a+ Phil
  2. bonjour je ne vois plus l'image de ce qu'il y a dans mes fichiers DWG dans le gestionnaire de fichier de windows 10 ( affichage tres grands icones ) depuis que je suis passé sous autocad 2018. et vous ? comment on regle le probleme ? a+ Phil
  3. hello bonuscad 3 ans apres les modifications prenne comme base le SCU, comment modifie le lisp pour qu'il prenne en compte un point de base ( scg ) que l'on aurait donné avant de traitement? a+ Phil
  4. Hello DENISHEN j'ai ca en stock, je ne sais plus de qui c'est a la base c'est pas avec la meme variable mais avec une modif ca doit le faire. en debut de LISP (decomptedebut) en fin de LISP (decomptefin) tu me dira si ca marche (defun decomptedebut () (setq datede (rtos (getvar "cdate") 2 8)) ; année (setq annee (substr datede 1 4)) ; mois (setq mois (substr datede 5 2)) ; jour (setq jour (substr datede 7 2)) ; heure (setq heure (substr datede 10 2)) ; minute (setq minute (substr datede 12 2)) ; seconde (setq seconde (substr datede 14 2)) ; concatenation de la date (setq seconde10 (substr datede 16 2)) ; concatenation de la date ; vous pouvez modifier ici le suffixe "le" et les séparateurs "/" ; exemple : ; (setq n-date (strcat "agence toto le : "jour"-"mois"-"annee)) (setq n-datede (strcat "\nDEBUT le : " jour "/" mois "/" annee " à " heure ":" minute ":" seconde ":" seconde10) ) (prompt n-datede) (princ) ) (defun decomptefin () (setq datefin (rtos (getvar "cdate") 2 8)) ; année (setq annee (substr datefin 1 4)) ; mois (setq mois (substr datefin 5 2)) ; jour (setq jour (substr datefin 7 2)) ; heure (setq heure (substr datefin 10 2)) ; minute (setq minute (substr datefin 12 2)) ; seconde (setq seconde (substr datefin 14 2)) ; concatenation de la date (setq seconde10 (substr datefin 16 2)) ; concatenation de la date ; vous pouvez modifier ici le suffixe "le" et les séparateurs "/" ; exemple : ; (setq n-date (strcat "agence toto le : "jour"-"mois"-"annee)) (setq n-datefin (strcat "\nFIN le : " jour "/" mois "/" annee " à " heure ":" minute ":" seconde ":" seconde10) ) (setq datetravail (rtos (- (atof datefin) (atof datede)) 2 8)) (setq heuret (substr datetravail 2 2)) ; minute (setq minutet (substr datetravail 4 2)) ; seconde (setq secondet (substr datetravail 6 2)) ; concatenation de la date (setq seconde10t (substr datetravail 8 2)) ; concatenation de la date ; vous pouvez modifier ici le suffixe "le" et les séparateurs "/" ; exemple : ; (setq n-date (strcat "agence toto le : "jour"-"mois"-"annee)) (setq n-datetravail (strcat "\nSOIT " heuret ":" minutet ":" secondet ":" seconde10t " DE TRAVAIL") ) (prompt n-datede) (prompt n-datefin) (prompt n-datetravail) (princ) ) a+ Phil
  5. bonjour ok ce que je ne comprend pas c'est pourquoi je n'arrive pas a reproduire la chose meme sur un version plus recente d'autocad architecture un nouvel attribut qui aurait pour résultat "DELTA*PUISSANCE" par exemple j'ai beau recréer dans le gestionnaire un parametre "toto" "DELTA*PUISSANCE" puis un atribut "TOTO" valeur "toto" rien ne se passe, rien ne s'affiche dans le bloc ( meme en respectant les majuscule minuscule) un BUG ? entre autocad et autocad architecture ? Phil
  6. bonjour a tous Chris24 j'ai récupéré ton bloc et j'ai voulu tester je suis sur autocad architecture 2017 sur quel logiciel es tu ? je suis passé dans l'éditeur de bloc pour reproduire la manip en créant un nouveau paramètre utilisateur et un nouvel attribut faisant référence a ce parametre et la rien ne se produit BATTMAN, controle, regeneration, rien n'y fait sauf sur ton attribut "DEBIT" ou la ca change autant dans la fenetre de propriété je vois bien mes nouveaux paramètres personnalisés qui se modofient, mais rien d'afficher en dessous sous "attributs" ni dans l'espace objet. ca marche chez les autres ? un nouveau BUG autocad ? a+ Phil
  7. PHILPHIL

    ID dun viewport

    Bonjour sur certains vieux fichiers je dois avoir des bugs sur les ID ( code dxf 69 ) de mes "VIEWPORT". aussi bien les fenêtres des présentations que de mon espace papier. je vois ca en utilisant le lisp GEF de Patrick. j'ai des présentations avec une fenêtre, et il ne me marque que 'présentation' et les présentation a 2 fenêtres j'ai 'présentation " et 'fenêtre 1' l'ID du VIEWPORT de l'espace papier doit toujours etre : 1 comment je peux vérifier et avoir la liste de ces codes dxf des viewport : espace objet, espace papier des présentations, et espace objet ( fenêtres ) des présentations. merci ps : on ne pas mettre d'image JPG ???? a+ Phil
  8. hello Sergio un Lisp de Gile ou / et de Bryce qui travail en arriere plan a+ Phil (defun c:cpp (/ acdoc layouts ;;; selectedlayouts *error* lay ss sa) ; Bryce, janvier 2012 ; Copie les objets sélectionnés dans les présentations choisies. (vl-load-com) (setq layouts (vla-get-layouts (setq acdoc (vla-get-activedocument (vlax-get-acad-object))) ) ) (defun *error* (msg) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON" ) ) (princ (strcat "\nErreur : " msg)) ) ) (if ss (setq ss nil) ) (vla-endundomark acdoc) (princ) ) (vla-startundomark acdoc) (or (and (/= (getvar 'ctab) "Model") (= (getvar 'cvport) 1)) (progn (princ "\n** Commande non autorisée dans l'espace Objet**") (quit) ) ) (if (and (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget))) (setq sa (bs:ss2safearray ss)) ) (progn (setq selectedlayouts (bs:getotherlayouts nil t)) ;;;(setq test42 selectedlayouts) (foreach lay selectedlayouts (vla-copyobjects acdoc sa (vla-get-block (vla-item layouts lay)) ) ) ; foreach (princ "\nCopie effectuée !") ) ) ;if ssget (*error* nil) ) ;cpp (princ "\nCommande à utiliser: CPP") (princ) ;; BS:GETOTHERLAYOUTS Bryce 19/01/2012 ;; basé sur GETLAYOUTS (gile) 03/12/07 ;; ;; Retourne la liste des présentations choisies dans la boite de dialogue ;; La présentation active n'est pas proposée. ;; ;; arguments ;; titre : titre de la boite de dialogue ou nil, défauts = Choisir la (ou les) présentation(s) ;; mult : T ou nil (pour choix multiple ou unique) (defun bs:GetOtherLayouts (titre mult / lay tmp file ret) (setq lay (vl-sort (vl-remove (getvar 'CTAB) (layoutlist)) (function (lambda (x1 x2) (< (TabOrder x1) (TabOrder x2) ) ) ) ) tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") ) (write-line (strcat "GetLayouts:dialog{label=" (if titre (vl-prin1-to-string titre) (if mult "\"Choisir les présentations\"" "\"Choisir une présentation\"" ) ) ";:list_box{height = 80;key=\"lst\";multiple_select=" (if mult "true;width = 80;}:row{:retirement_button{label=\"Toutes\";key=\"all\";} ok_button;cancel_button;}}" "false;}ok_cancel;}" ) ) file ) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "GetLayouts" dcl_id)) (exit) ) (start_list "lst") (mapcar 'add_list lay) (end_list) (action_tile "all" "(setq ret (reverse lay)) (done_dialog)") (action_tile "accept" "(or (= (get_tile \"lst\") \"\") (foreach n (str2lst (get_tile \"lst\") \" \") (setq ret (cons (nth (atoi n) lay) ret)))) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) (reverse ret) ) (defun TabOrder (name / dict lay) ; (gile) (setq dict (dictsearch (namedobjdict) "ACAD_LAYOUT")) (if (setq lay (cdr (assoc 350 (member (cons 3 name) dict)))) (cdr (assoc 71 (entget lay))) ) ) (defun str2lst (str sep / pos) ; (gile) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) (defun bs:ss2safearray (sset / i entlst) ; Bryce (setq i 0) (repeat (sslength sset) (setq entlst (cons (vlax-ename->vla-object (ssname sset i)) entlst)) (setq i (1+ i)) ) (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (1- (length entlst))) ) entlst ) )
  9. bonjour a tous ca va aller, je vous remercie pour les lisp je vais regarder ca. je pense que je n'aurais jamais les meme noms de calques a sauvegarder, ca change d'un client a l'autre. puis avec un lisp il faut parer a toutes éventualités vue la rareté de la demande aussi, le faire a la "mano" est suffisant aussi. par contre DenisHen, moi je suis partisan que le calque "0" soit un calque ou on ne met JAMAIS RIEN dedans, il s'appelle pas zéro pour rien. il est seulement la pour que un fichier vide, tout purger est au moins un calque. en dessinnant quelque chose dans le calque zero, meme si on ne le veux pas , il y aura tjrs un petit malin pour décomposer les blocs, et la ba on se retrouve avec tout sur le zero. quand on importe le fichier en xref avec les 50 autres, en gelant le calque zero, on gele tout les zero de tous les fichiers xref, et on se retrouve a voir plus rien a l'ecran, enfin pas ce que l'on voulait. un calque avec un nom explicite au moins on a une idée de ce que la personne a voulu dessiner. combien de fois je me suis retrouver avec des fichiers dwg avec 5 couches, sans couleur, le truc genail pour n'en sortur que la structure, ou que les portes .... bonne semaine merci Phil
  10. hello Denish je veux sauvegarder les entites dans des calques choisis, en gardant les présentations du fichier la methode que j utilise pour le moment c'est effacer les entites que je n'ai pas besoin, de purger le fichier et le sauvegarder dans un autre. mais c'est long, une fois de temps en temps ca va. Phil
  11. bonjour je voudrai sauvegarder mon fichier dans un autre fichier mais en gardant que des calques que j'aurai sélectionner et qui peuvent etre dans des blocs. exemple : a partir d'un fichier avec 2500 calques contenant les dessin archi et struture, je ne garderai que les calques ( avec les entites dessin qui sont dedans ) qui correspondent a la structure. en gardant les presentations, et purgeant le fichier est ce que vous avez la manip ou un lisp pour faire ceci ? merci Phil
  12. PHILPHIL

    Chemin Xrefs

    salut copie les fichiers xrefs dans le meme sous répertoire que ton fichier de base. il devrait les retrouver apres je suis d'accord ce n'est plus tres bien rangé comme avant ou utiliser le "gestionnaire de refrences" et changer / trouver les repertoires de tes fichiers a+ Phil
  13. bonjour connaissez vous un lisp pour convertir des *.dgn ( microstation ) en *.dwg par lot. ou un fichier *scr sachant qu'ils sont dans plusieurs sous repertoire. l'import fichier par fichier ne permet pas de garder le meme nom de fichier mercii a+ Phil
  14. bonjour en lisp comment peut on récupérer les données d'un calque en connaissant sont nom ? récupérer l'épaisseur, la couleur, et type de ligne ? et le reste aussi pourquoi pas merci a+ Phil
  15. bonjour un sondage qui changera pas grand chose je le sais. mais juste pour avoir votre avis je trouve AUTOCAD DE PLUS EN PLUS LENT au fur et a mesure que les versions progressent. je bosse surtout en 2D dans sa régénération, dans l'exécution, il est lent. ca n'utilise meme pas tout la puissance du processeur a peine 10% ou 2 /3 processeurs et j'en ai 12. etes vous d'accord ? j'ai toujours une latence de 1 a 2 secondes quand je lance une commande, je vais plus vite a tapper sur le clavier que autocad a reflechir. est ce que c'est ma carte graphique ? une quadro K 2000 quelle carte avez vous ? merci bon week end Phil
  16. hello +1 merci pour le retour de CADxp Phil
  17. BONJOUR lili2006, tu devrais enlever le parametre de rotation, je pense qu'il ne sert a rien ici tu as besoin d'un reseau pour la plaque mais la rotation de tout le plafond ce fait avec la rotation du bloc une fois implanté, et ca regle le probleme ensuite avec des lisps, tu implantes ton bloc de faux plafond soit sur un angle d'une piece, soit a l'axe de la piece, et l'oriente en fonction d'un cote de la piece puis tu le delimites avec xdline a+ Phil
  18. hello lecrabe oui je suis l'auteur de l'autre sujet mais j'y vais rarement sur le forum autodesk j'ai pas fait le lien entre les deux forums désolé bon je vais laisser tomber mon idée de manipuler les données d'un jeu de propriété.je suis pas tres doué en visual lisp et j'y connais rien en dotnet. j'ai bien vue qu'il y avait des fonctions "ARX" "aec....." dans autocad mais comment passer du résultats de ses fonction a du lisp ?? merci Phil
  19. bonjour pour info Gile m'avait crée ce lisp il donne un nouveau nom a un bloc deja implanté en gros ca fait un doublon de bloc mais avec un nom different apres a toi de faire la mise a jour de ce nouveau bloc merci Gile a+ phil ;; NBL -09/06/16- version 2.3 ;; gile ;; Crée un nouvelle définition de bloc semblable à celle de la référence sélectionnée. ;; La référence sélectionnée est remplacée par une référence de la nouvelle définition ;; qui conserve ses propriétés. (defun c:nbl (/ old-ref new-name acdoc space blocks old-name old-block new-block obj new-ref) (vl-load-com) (while (not (and (setq old-ref (car (entsel "\nSélectionner le bloc à re-créer: "))) (= "INSERT" (cdr (assoc 0 (entget old-ref)))) ) ) (princ "\nObjet incorrect.") ) (setq old-ref (vlax-ename->vla-object old-ref) old-name (if (vlax-property-available-p old-ref 'effectivename) (vla-get-effectivename old-ref) (vla-get-name old-ref) ) ) (while (not (and (progn (setq boite "MODIFICATION DU NOM DE BLOC") (setq message "NOUVEAU NOM") (inputbox2 boite message old-name) ;;; (setq new-name ret) (snvalid (setq new-name ret)) ) (/= new-name "") (null (tblsearch "BLOCK" new-name)) ) ) (princ "\nNom incorrect.") ) (setq acdoc (vla-get-activedocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-paperspace acdoc) (vla-get-modelspace acdoc) ) blocks (vla-get-blocks acdoc) old-block (vla-item blocks old-name) new-block (vla-add blocks (vlax-3d-point '(0 0 0)) new-name) ) (vlax-for o old-block (setq obj (cons o obj))) (vlax-invoke acdoc 'copyobjects obj new-block) (and (vlax-property-available-p old-block 'units) (vla-put-units new-block (vla-get-units old-block)) ) (setq new-ref (vla-insertblock space (vlax-3d-point '(0 0 0)) new-name (vla-get-xscalefactor old-ref) (vla-get-yscalefactor old-ref) (vla-get-zscalefactor old-ref) (vla-get-rotation old-ref) ) ) (vla-put-normal new-ref (vla-get-normal old-ref)) (vla-put-insertionpoint new-ref (vla-get-insertionpoint old-ref)) (if (= (vla-get-hasattributes old-ref) :vlax-true) (progn (setq old-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke old-ref 'getattributes)) new-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke new-ref 'getattributes)) ) (foreach att new-att (foreach prop (list 'alignment 'backward 'color 'fieldlength 'height 'insertionpoint 'invisible 'layer 'textstring 'linetype 'linetypescale 'lineweight 'material 'normal 'obliqueangle 'rotation 'scalefactor 'stylename 'textstring 'thickness 'truecolor 'upsidedown 'visible ) (if (vlax-property-available-p (cdr (assoc (car att) old-att)) prop) (vlax-put (cdr att) prop (vlax-get (cdr (assoc (car att) old-att)) prop)) ) ) ) ) ) (vla-delete old-ref) (princ (strcat "Le bloc \"" new-name "\" a été créé.")) (princ) )
  20. bonjour grace aux Lispeurs de CADXP (ils reconnaitront leur code ) j'avais modifié un lisp ( ci dessous ) qui me permettait de copier les attributs et / ou les propriétés dynamique d'un bloc vers un autre bloc je travaille avec autocad architecture, et les objets AEC "space" surtout j'aimerai faire la meme chose mais pour les données d'un jeu de propriétés d'objet aec. en modifiant mon lisp ( ci dessous ) ces données doivent etre dans un dictionnaire je suppose. comment y acceder en lisp ? avoir la liste des données liées a un objet AEC? ( vla ??? ou get??? ) comment remplacer la donnée ensuite ? si ca marche pour un objet AEC "space" ca devrait aussi etre utile pour les autres objets AEC ( architecture, MEP, ... ) merci a+ Phil (defun c:mdpa (/) (setvar "cmdecho" 0) (setvar "CURSORSIZE" 10) (setq osm (getvar "osmode")) (if (and (setq source (car (entsel "\nCLIQUER SUR LE BLOC DE REFERENCE : "))) (setq source (vlax-ename->vla-object source)) (= (vla-get-objectname source) "AcDbBlockReference") ) (progn (setq layerbloc (vla-get-layer source) namebloc (vla-get-effectivename source) ) ) ) (setq compt 0 propdynnom nil propdynnom2 nil propdynnom3 nil attributnom nil attributnom2 nil attributnom3 nil ) (foreach att (vlax-invoke source 'getdynamicblockproperties) (if (/= (vlax-variant-type (vla-get-value att)) 8197) (setq propdynnom2 (cons (cons (vla-get-propertyname att) (vlax-variant-value (vla-get-value att))) propdynnom2)) ) ) (setq propdynnom (vl-sort propdynnom2 (function (lambda (p1 p2) (< (car p1) (car p2)))))) (foreach att (vlax-invoke source 'getattributes) (setq attributnom2 (cons (cons (vla-get-tagstring att) (vla-get-textstring att)) attributnom2)) ) (setq attributnom (vl-sort attributnom2 (function (lambda (p1 p2) (< (car p1) (car p2)))))) (prompt "\nSELECTIONNER LES BLOCS A MODIFIER:") (setq selinsert (ssget (list (cons 0 "INSERT") (cons 8 layerbloc)))) (setq com (sslength selinsert)) (boitepropdynattribut) (foreach att (vlax-invoke source 'getdynamicblockproperties) (progn (if (member (vla-get-propertyname att) listeparam) (setq propdynnom3 (cons (cons (vla-get-propertyname att) (vla-get-value att)) propdynnom3)) ) ) ) (foreach att (vlax-invoke source 'getattributes) (progn (if (member (vla-get-tagstring att) listeattrib) (setq attributnom3 (cons (cons (vla-get-tagstring att) (vla-get-textstring att)) attributnom3)) ) ) ) (setvar "CURSORSIZE" 100) (setq compt 0) ;;; (acet-ui-progress-init "Avancement" com) (while (< compt com) (if (= (vla-get-effectivename (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname selinsert compt)))))) namebloc ) (progn (foreach bidyn propdynnom3 (progn (setq nomprop (car bidyn) valprop (cdr bidyn) ) (foreach prop (vlax-invoke (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname selinsert compt))))) 'getdynamicblockproperties ) (if (= (vla-get-propertyname prop) nomprop) (vla-put-value prop valprop) ) ) ) ) (foreach bidyn attributnom3 (progn (setq nomattrib (car bidyn) valattrib (cdr bidyn) ) (foreach prop (vlax-invoke (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname selinsert compt))))) 'getattributes ) (if (= (vla-get-tagstring prop) nomattrib) (vla-put-textstring prop valattrib) ) ) ) ) ) ) (acet-ui-progress-init (strcat "Avancement " (rtos (/ (* compt 100) (float com )) 2 2 ) " %") com) (acet-ui-progress-safe compt) (setq compt (1+ compt)) ) (acet-ui-progress-done) (setvar "osmode" osm) (princ) )
  21. hello Steven j'ai mis a jour renb2.lsp il y a une fonction pour changer la couleur du calque dans une fenetre, mais entité par entité ( faut pas en avoir bcp a faire ) et une fonction pour annuler la couleur forcée tu trouvera le lisp ici http://cadxp.com/topic/42643-renommer-calque-bloc-couleur/#entry242307 bon week end Phil
  22. hello la lozere merci oui je connais, et c'est justement fastidieux car assez souvent des que je déplace la souris sur le menu, celui ci a tendance a disparaitre donc je dois recliquer le grip, pour avoir le menu, quand c'est pas ajouter, qu'il valide a la place de supprimer. ca va quand j'en ai un ou deux a faire, sur une hachure, mais quand on recupere les fichiers des autres,( logiciels ) ca peut devenir penible. merci A+ Phil
  23. bonjour auriez vous un lisp qui ajoute ou retire des points de contours pour les hachures non associatives comme AddVtx et DelVtx de Gile pour les polylignes on trouve pas les coordonnées de contours d'une hachure, comme on trouve celle d'une polyligne :angry: :angry: :angry: bonne soirée merci Phil
  24. hello Gile Patrick merci merci, pas de bataille de programmeurs svp c'était aussi pour ne pas passer par autocad pour chercher les blocs. bon week end Phil
  25. Hello Gile Merci j'ai posté cette question ici pensant que ca ne devait pas etre un programme Lisp mais par contre j'y connais rien en programmation c'est quoi comme type de language ca ??? a+ Phil
×
×
  • 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é