PHILPHIL
Membres-
Compteur de contenus
1 259 -
Inscription
-
Dernière visite
-
Jours gagnés
10
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par PHILPHIL
-
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
-
TROUVER LES BLOCS
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans ObjectARX/DBX, C++, .NET, RealDWG
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 -
TROUVER LES BLOCS
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans ObjectARX/DBX, C++, .NET, RealDWG
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 -
bonjour je ne sais pas si ca existe ou si c'est programmable facilement. j'ai plein de fichiers pour différentes affaires dans plein de sous répertoire. je cherche un programme qui me permetrait de lister les noms de fichiers *.dwg ou j'ai pu insérer un bloc dont je connais le nom. en cherchant dans le répertoire et les sous répertoire que j'ai choisi. un peu comme le programme de GILE textfinder merci a+ Phil
-
Un gestionnaire de calques comme Adobe
PHILPHIL a répondu à un(e) sujet de Nighthawk dans AutoCAD 2016
salut et en rajoutant un "C:" dans le lisp (defun SSLAR () (defun c:SSLAR () tu recharges le lisp et lance "SSLAR" a+ Phil -
hello Tramber Merci ca marche super a+ Phil
-
bonjour l'explication est simple le but est de creer un fichier de base d'une chambre d'hopital complete cotes, surface, annotations, la faire valider par le client puis de venir l'implanter dans fichier de l'hopital en faire des copies, le tourner dans tous les sens, une copie de bloc est plus facile a manipuler, et on est sur de tout déplacer en meme temps puis une fois le plan de l'hopital valider decomposer le bloc de la chambre, en la transformant en groupe ( pour si besoin la remanipuler, effacer le groupe .... ) et il y a toujours des chambres qui sont un peu differentes ( position de porte, isolation en plus, .... ) une fois décomposer je retrouve mes surfaces, pour faire un calcul globale de l'hopital faire le listing des portes, mobiliers, ..... remetre les ecritures et cotes dans le bon sens ( ca peut faire quelque millier de cotes en moins a refaire ) mais non il est hors de question de décomposer des blocs portes, meubles, pour en faire des groupes c'est sur a+ Phil
-
hello tramber quand tu as plus de 100 blocs deja implantés a faire et que ca peux reservir apres ? retrouvé les entités superposés devient plus difficile non ? ( ca doit etre aussi mon coté "machine" qui veux ca ) Phil
-
bonjour je cherche un lisp: qui explose un bloc et créer un groupe anonyme ou pas avec ses entités ensuite. si vous avez ca je suis preneur mercii Phil
-
bonjour on nous a vendue dans autocad 2017 que bcp de fenetres seraient redimensionnable a souhait, comme celles de publier, ou autres. mais a chaque fois que je les rouvre je dois tjrs les redimensionner. il y a une fonction qui fige une bonne fois pour toutes leurs dimensions ? a+ merci Phil
-
etat d'inversion automatique qui bug
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans Routines LISP
hello zebulon merciii Cool ca marche a+ Phil (DEFUN c:cpnf (/) (SETVAR "cmdecho" 0) (SETQ osm (GETVAR "osmode")) (PROMPT "\nSELECTIONNER LES BLOCS PARAMETRIQUE A MODIFIER :") (SETQ selinsert (SSGET (LIST '(0 . "INSERT")))) (SETQ com (SSLENGTH selinsert)) (SETQ compt 0 propdynnom2 nil pop2 nil pro2 nil ) (WHILE (< compt com) (PROGN (FOREACH att (VLAX-INVOKE (VLAX-ENAME->VLA-OBJECT (CDR (ASSOC -1 (ENTGET (SSNAME selinsert compt))))) 'getdynamicblockproperties ) (IF (/= (VLAX-VARIANT-TYPE (VLA-GET-VALUE att)) 8197) (SETQ propdynnom2 (CONS (VLA-GET-PROPERTYNAME att) propdynnom2) pro2 (CONS (LIST (VLA-GET-PROPERTYNAME att) (VLA-GET-UNITSTYPE att) (VLAX-VARIANT-TYPE (VLA-GET-VALUE att)) (VLAX-VARIANT-VALUE (VLA-GET-VALUE att)) ) pro2 ) ) ) ) (SETQ compt (1+ compt)) ) ) (SETQ propdynnom (remove_doubles (VL-SORT propdynnom2 '<))) (boitepropdyn2) (SETQ compt 0) (SETQ com (SSLENGTH selinsert)) (acet-ui-progress-init "Avancement" com) (WHILE (< compt com) (FOREACH don ret (FOREACH att (VLAX-INVOKE (VLAX-ENAME->VLA-OBJECT (CDR (ASSOC -1 (ENTGET (SSNAME selinsert compt))))) 'getdynamicblockproperties ) (PROGN (IF (= (VLA-GET-PROPERTYNAME att) (CAR don)) (PROGN (IF (AND (= (VLA-GET-UNITSTYPE att) 0) (= (VLAX-VARIANT-TYPE (VLA-GET-VALUE att)) 2)) (PROGN (VLA-PUT-VALUE att (VLAX-MAKE-VARIANT (ATOI (CDR don)) VLAX-VBINTEGER))) ) (IF (AND (= (VLA-GET-UNITSTYPE att) 1) (= (VLAX-VARIANT-TYPE (VLA-GET-VALUE att)) 5)) (PROGN (SETQ test11 (CDR don)) (VLA-PUT-VALUE att (* (ATOF (CDR don)) (/ PI 180)))) ) (IF (AND (= (VLA-GET-UNITSTYPE att) 2) (= (VLAX-VARIANT-TYPE (VLA-GET-VALUE att)) 5)) (PROGN (SETQ test12 (CDR don)) (SETQ test12a (ATOF (CDR don))) (VLA-PUT-VALUE att (ATOF (CDR don)))) ) ) ) ) ) ) (SETQ compt (1+ compt)) (acet-ui-progress-safe compt) ) (acet-ui-progress-done) (SETVAR "osmode" osm) (PRINC) ) (DEFUN boitepropdyn2 (/ tmp file fuzz ret pn av dcl_id val) (SETQ tmp (VL-FILENAME-MKTEMP "Tmp.dcl") file (OPEN tmp "w") ret nil ) (WRITE-LINE (STRCAT "DynBlkProps:dialog{label=\"Blocs dynamiques\";" " :text{label=\"Nom du bloc : \"" (VL-PRIN1-TO-STRING "Tous les blocs") " ;} :text{label=\"Nombre de bloc : " (ITOA com) "\"; } spacer;:boxed_column{label=\"Propriétés dynamiques\";" ) file ) (FOREACH pn propdynnom (WRITE-LINE (STRCAT ":row{:edit_box{label=" (VL-PRIN1-TO-STRING pn) ";key=" (VL-PRIN1-TO-STRING pn) ";edit_width=20;allow_accept=true;} }" ) file ) ) (WRITE-LINE "}spacer;ok_cancel;}" file) (CLOSE file) (SETQ dcl_id (LOAD_DIALOG tmp)) (IF (NOT (NEW_DIALOG "DynBlkProps" dcl_id)) (EXIT) ) (FOREACH p pop2 (START_LIST (CAR p)) (MAPCAR 'ADD_LIST (CDR p)) (END_LIST)) (ACTION_TILE "accept" "(foreach p propdynnom (if (assoc p POP2) (setq val (nth (atoi (get_tile p)) (cdr (assoc p POP2)))) (setq val (get_tile p))) (if (and val (/= val \"\")) (setq ret (cons (cons p val) ret)))) (and (not ret) (setq ret T)) (setq sel (get_tile \"selset\")) (done_dialog)" ) (ACTION_TILE "cancel" "(setq ret nil)") (START_DIALOG) (UNLOAD_DIALOG dcl_id) (VL-FILE-DELETE tmp) ) -
etat d'inversion automatique qui bug
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans Routines LISP
HELLO pour tester avec la boite de dialogue ca devrait mieux marcher a+ Phil -
bonsoir c'est une lisp qui date, il me sert a forcer des valeurs de parametre dynamique dans un bloc dynamique justement. ca marche tres bien pour des valeurs numeriques: LARGEUR, HAUTEUR, ou les angles mais quand je veux forcer les etats d'inversion, il ne veut pas il lui faut comme valeur 0 ou 1 j'ai beau mettre 0 ou 1 dans la boite de dialogue en utilisant ceci dans le lisp :(vla-put-value att (atoi (cdr don))) ca plante meme si dans le LISp je met 1 ou 0 a la place : (vla-put-value att 1 ) ca me met tjrs "Erreur Automation Entrée incorrecte" question qu'est ce que ca attend comme reponse ?? ( oui il y a plein de test de variable et de toto ( c'est pour savoir ou s'arrete le lisp )) a+ merci Phil
-
hello Gile : j'ai rajouté (setq new-name (vl-string-trim ret)) a la place de (setq new-name ret) mais ca plante aussi, pas grave je viens de voir "snvalid" et la ca marche, je corrige le lisp merci Tramber : le shift apporte quoi de plus ? d'avoir un point de base ? ba sinon dans le meme fichier je fais "copier" ( la commande ) ou d'un fichier a l'autre , je colle puis apres je redéplace a+ Phil
-
hello Gile merciii Gile c:nbl fonctionne mieux car il garde les unites de dessin du blocs du coup je lui ai rajouté un boite de dialogue pour le nom on ne peut pas sortir de la boite tant que le nom est déja present dans la base ou qu'il soit blanc ( sans caractere ) bizarrement il plante si on finit le nom par un espace 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) (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) )
-
hello didier steven autant pour moi c'est exact j'ai confondu avec ctrl+c et ctrl+v mais j'ai jamais utilisé ctrl+shift+c et/ou ctrl+shift+v c'est quoi ce truc barbare, je comprend mieux pourquoi je me recupere des blocs avec des noms pareils dans des fichiers, le truc a proscrire. a+ bonne nuit Phil
-
bonsoir je copie mes blocs "A1" "A2" "A3" ils sont donc deja en place, bien inseres je voudrais les renommer en "B1" "B2" "B3" un par un ca sera plus facile tout en restant des clones (pour le moment) et apres je fais la mise a jour de mes blocs "B1" "B2" "B3" par rapport a ma bibliotheque. je crais tjrs mes blocs comme des fichiers a part rarement dans le fichier lui meme de facon a ce que ca puisse reservir ailleurs, comme bcp je pense. ou alors ensuite je les exportes vite fait avec "BTOWBL". ca me semble compliqué , car c'est une copie de bloc en interne sans "foutre le bordel" dans la base des noms de bloc du fichier sinon Didier il y a bien longtemps que ctrl-shift+c et ctrl-shift+v ne donne plus de nom barbare au nom de bloc a+ Phil
-
bonsoir une question est ce réalisable ?? copier un bloc nommé "A" et le renommer en "B" ? pour avoir deux blocs identique (clone ) visuellement mais de nom different ( car si je fait une copie normal, et renomme le bloc en "B" ils seront tous appeler "B" meme les "A" ) si le bloc "B" existe dans le fichier il prend la forme de "B", sinon il reste un clone de "A" apres reflexion : je peux copier sans probleme le probleme est de renommer un bloc "A" en bloc "B" par la suite je mets a jour les bloc "B" "C" "D" .... tous en meme temps suivant le fichier qui est dans ma biblioteque sinon je suis obliger de copier le blocs "A", importer le bloc "B", remplacer "A" par "B" avec rebloc a+ Phil
-
Soucis avec les points de cotations
PHILPHIL a répondu à un(e) sujet de Geof dans CADxp, comment ça marche?
hello plutot que de sélectionner gauche droite selectionne bas droite et haut gauche ca va sélectionner tout ce qui est entierement dans le cadre ( selection gauche droite selectionne tout ce qui est en partie dans le cadre ) tu selectionnes ensuite la cote d'angle ou de rayon qui n'est pas entierement dans le cadre, une sélection un par un puis tu déplaces un truc comme ca bon week end Phil -
hello vue que autocad n'evolue plus ( meme les bugs ne sont pas corrigés ) autocad 2017 vas devenir la reference des pirates, pourquoi louer un programme qui n'evolue plus autant acheter tout de suite une version 2017 et la garder sans louer a+ Phil
-
hello il faut mettre un bout de fichier, ou le fichier complet, pour regarder, en le zippant, car je crois que l on ne peut pas déposer de fichier *.dwg mais un *.zip oui a+ Phil
-
hello et les performances de autocad 2017 sous windows 10 ca donne quoi ? en 2D ? j'hésite a passer de Windows 7 a Windows 10 est ce que autocad 2018 tirera mieux son jeu avec directx 12 de windows 10? bon week Phil
-
salut le crabe c'est le fichier 3.5 mais quand tu l'ouvres c'est ecrit 3.6 en haut donc si ca se trouve tu l'as deja bon week end a+ Phil
-
hello gros oupss désolé ca marche, j'avais pas déclarer les chemins de recherches des sous répertoires je les avais déclaré comme etant des emplacements approuvés seulement comme quoi faut faire 2/3 fois les manips a+ Phil
-
bonjour je suis passé sur une version 2017 est ce que comme moi edit bloc 3.6 ne marche plus sur cette version ?? a+ Phil
