PHILPHIL
Membres-
Compteur de contenus
1 256 -
Inscription
-
Dernière visite
-
Jours gagnés
10
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par PHILPHIL
-
POINTS DE COTE AJOUTER SOUSTRAIRE
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans Pour aller plus loin en LISP
hello lili tu lances la fonction avec "ASPC" tu selectionnes une cote , ou des cotes tu valides tu tappes A et valider pour ajouter de point de cotes n'importe ou en cliquant S et valider pour supprimer un point de cotes en cliquant sur les croix ( points ) jaunes Q et valider pour quitter apres quitter ca reconstruit les cotes avec les nouveaux points il faut que le style des points soit sur 5% et une croix visibles aux choix si tu selectionnes des cotes qui ne sont pas sur la meme ligne la premiere cote selectionner sert de base et toutes les cotes seront aligner a celle ci une fois les test et tortures convinquantes je retirrais les lignes de verification du nombres de croix ou de verifications de liste phil [Edité le 10/7/2008 par PHILPHIL] -
hello ok je me suis planter et pas reussis a trouver les bonnes listes comme tu as surement compris le principe des compteurs peux tu modifier celui ci de facon a ce qu'il inscrive sur la ligne de commande le non de la presentation , le N° de la fenetre de la presentation, le N° du calque suivant la liste du nombre de calque a traiter, le nombre de calque a traiter par fenetre, le calque qu"il traite enfin tu vois bien quoi meme si dans le bout de LISP que j'ai fait je n'ai que le nom de bon de la présentation en ce moment je le vois bien il traite des présentations que je n'ai meme pas choisi et je suis désole mais la en 5 minutes c'est un peu du chinois ou de l'hebreux a comprendre les LISp des autres bonne soirée bye bye a la prochaine PPDA ( bah oui il est parti "ayaittt" phil
-
hello patrick je me suis permis un petite modif de ton lisp histoire de savoir ou il en etait quand il travail c'est un simple systeme de compteur juste avant qu'il fasse le changement sur les calques qui ne devrait pas alterer la manipulation bon je dois avoir un petit souci avec les compteurs deux des calque et des fenetres " NBCALK (LENGTH PAR)" compteur calque car il recupere pas tjrs le bon nombre de calque a modifie il doit pas etre placer au bon endroit donc au final on a la liste des presentations sur lesquelles il bosse ainsi que les calques et la on constate les erreurs il bosse bien sur des presentations non selectionnées ainsi que sur des calques non selectionnés bizarre ???? tu peux tester aussi le LISP au tip "POINT DE COTE AJOUTER SOUSTRAIRE" voir si ca bug phil [Edité le 10/7/2008 par PHILPHIL] [Edité le 11/7/2008 par PHILPHIL]
-
HELLO si tu as pdfactory si tu les balances par series de 30 ( publier par serie de 30 ) avec pdfactory tant que tu n'as pas fermer le fichier les differentes pages se mettent au bout non ??? ainsi tu peux creer un gros fichier de plus de 30 pages ca buguera peut etre pas c'est une piste à suivre ou non quelle version de pdfactory aussi ?? phil
-
hello patrick_35 je viens de tester GEF 2.10 pour le filtre de calque ca marche impec si je comprend bien ton LISP il ne parcoure que les presentations que l'on a sélectionner pour modifier les fentres LOGIQUE jusque la ca marche pour un fichier mais ne marche pas pour d'autres gros fichiers : 100 onglets 1900 calques 20 xrefs il semble qu'il parcoure des presentations qui n'ont pas été selectionner dans la fenetre gef 2.10 et la ca rame car il réaffiche toutes les fenetres est ce que le programme ne serait pas en train de parcourir toutes les presentations ou l'etat des calques à été modifié ?? phil
-
HELLO toutes et tous dsl j'avais pas vu les nombreuses réponses dans le sujet precedent "POUR LES PROS DU LISP" patrick_35 je suis en train de tester ton LISP GEF 2.00 sur 100 presentations de 2 à 4 fenetres et 1900 calques = nombreux calques dans de nombreux XREF ca commence a faire bcp quelques idées de dévelopement a te suggerer est il possible qu'il n'y est pas de regenération des presentations pour que les calques soit modifies ?? ca irait bcp plus vite ( ca fait bien 20 minutes qu'il mouline la ) en fait hier il a mouliné 1h00 sans resultat pour la liste des calques : est il possible de rajouter une ligne pour filtrer les calques : exemples : *cotes* = pour afficher tous les calques du fichiers et des XREF contenant le mot cote et la bcp plus complexe a mon avis pour choisir les differentes fenetres des presentations quand tu passes sur le "nom, dimension, centre" avoir un petite dessin representant les fenetres dans la presentation avec la fenetre en trait plus gras ou grisé oupsss dsl trop compliqué ?? voila quelques pistes merci a toi pour ce LISP sinon riena voir comment on fait dans un message pour renvoyer vers un autre message, un raccouci en bleu et gras ?? phil
-
pour les pros du LISP
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans Pour aller plus loin en LISP
HELLO toutes et tous dsl j'avais pas vu les nombreuses réponses dans le sujet precedent "POUR LES PROS DU LISP" patrick_35 je suis en train de tester ton LISP GEF 2.00 sur 100 presentations de 2 à 4 fenetres et 1900 calques nombreux calques dans de nombreux XREF ca commence a faire bcp quelques idées de dévelopement a te suggerer est il possible qu'il n'y est pas de regenération des presentations pour que les calques soit modifies ?? ca irait bcp plus vite ( ca fait bien 20 minutes qu'il mouline la ) pour la liste des calques : est il possible de rajouter une ligne pour filtrer les calques : exemples : *cotes* = pour afficher tous les calques du fichiers et des XREF contenant le mot cote et la bcp plus complexe a mon avis pour choisir les differentes fenetres des presentations quand tu passes sur le "nom, dimension, centre" avoir un petite dessin representant les fenetres dans la presentation avec la fenetre en trait plus gras ou grisé oupsss dsl trop compliqué ?? voila quelques pistes merci a toi pour ce LISP phil [Edité le 9/7/2008 par PHILPHIL] [Edité le 10/7/2008 par PHILPHIL] -
HELLO petite mise a jour pour verification aupres des lispeurs et autocadiennes, autocadiens si vous trouvez des bugs je veux bien etre au courant et avoir votre avis ca peut servir ceci avant un netoyage du LISP merci à gile et ceux que j'oublie qui reconnaitront des bouts de LISP phil ;;;;---------------------------------------------- ;;;ajouter/soustraire des points dans des cotes ;;; le 11 07 2008 ;;---------------------------------------------- (DEFUN C:ASPC () (VL-LOAD-COM) [surligneur] (SETQ OSM (GETVAR "osmode"))[/surligneur] (SETQ CAV (GETVAR "clayer")) (SETQ VARPDMODE (GETVAR "pdmode")) (SETQ VARPDSIZE (GETVAR "pdsize")) (SETQ STYLECOTEENCOURS (GETVAR "DIMSTYLE")) (SETVAR "osmode" 0) (SETVAR "pdmode" 3) (SETVAR "pdsize" 0) (PROMPT "\nCLIQUER SUR LA COTE(S) A MODIFIER (1ere COTE SELECTIONNER = COTE DE BASE ) :") (SETQ ENTG1 NIL) (WHILE (NULL ENTG1) (SETQ ENTG1 (SSGET '((0 . "DIMENSION"))))) (COMMAND "zoom" "OB" ENTG1 "") ;;;debut recuperation de donnee de la cote de base (SETQ POINT10 (TRANS (CDR (ASSOC 10 (ENTGET (SSNAME ENTG1 0)))) 0 1) STYLECOTE (CDR (ASSOC 3 (ENTGET (SSNAME ENTG1 0)))) CALQCOTE (CDR (ASSOC 8 (ENTGET (SSNAME ENTG1 0)))) ANGCOTE (CDR (ASSOC 50 (ENTGET (SSNAME ENTG1 0)))) ASX1 (CAR (GETVAR "ucsxdir")) ASX2 (CADR (GETVAR "ucsxdir")) FUZZ 1e-10 ) ;;;fin recuperation de donnee de la cote de base ;;;calcul de l'angle du SCU par rapport au SCG (IF (AND (= ASX1 1) (= ASX2 0)) (SETQ ANGSCU 0) ) (IF (AND (AND (< ASX1 1) (> ASX1 0)) (AND (< ASX2 1) (> ASX2 0))) (SETQ ANGSCU (ATAN (/ ASX2 ASX1))) ) (IF (AND (= ASX1 0) (= ASX2 1)) (SETQ ANGSCU (/ PI 2)) ) (IF (AND (AND (< ASX1 0) (> ASX1 -1)) (AND (< ASX2 1) (> ASX2 0))) (SETQ ANGSCU (- (ATAN (/ ASX2 ASX1)) PI)) ) (IF (AND (= ASX1 -1) (= ASX2 0)) (SETQ ANGSCU (* 2 PI)) ) (IF (AND (AND (< ASX1 0) (> ASX1 -1)) (AND (< ASX2 0) (> ASX2 -1))) (SETQ ANGSCU (+ (ATAN (/ ASX2 ASX1)) PI)) ) (IF (AND (= ASX1 0) (= ASX2 -1)) (SETQ ANGSCU (+ PI (/ PI 2))) ) (IF (AND (AND (< ASX1 1) (> ASX1 0)) (AND (< ASX2 0) (> ASX2 -1))) (SETQ ANGSCU (ATAN (/ ASX2 ASX1))) ) ;;;fin de calcul de l'angle du SCU par rapport au SCG (SETQ ANG (- ANGCOTE ANGSCU)) ;;calcul de l'angle de la cote dans le SCU (SETQ ANGCOTEDEGRE (ANGTOS (- ANGCOTE ANGSCU) 0 10)) ; fin de calcul de l'angle de la cote dans le SCU ;;recuperation des points de cotes dans uns liste (SETQ COMPT 0) (SETQ LISTPOINT NIL) (SETQ CROIX (SSADD)) (VL-CMDF "-calque" "n" "T_CROIX" "co" "52" "T_CROIX" "ch" "T_CROIX" "") (REPEAT (SSLENGTH ENTG1) (IF (= (MEMBER-FUZZ (TRANS (CDR (ASSOC 13 (ENTGET (SSNAME ENTG1 COMPT)))) 0 1) LISTPOINT FUZZ) NIL) (SETQ LISTPOINT (CONS (TRANS (CDR (ASSOC 13 (ENTGET (SSNAME ENTG1 COMPT)))) 0 1) LISTPOINT)) ) (IF (= (MEMBER-FUZZ (TRANS (CDR (ASSOC 14 (ENTGET (SSNAME ENTG1 COMPT)))) 0 1) LISTPOINT FUZZ) NIL) (SETQ LISTPOINT (CONS (TRANS (CDR (ASSOC 14 (ENTGET (SSNAME ENTG1 COMPT)))) 0 1) LISTPOINT)) ) (SETQ COMPT (1+ COMPT)) ) (SETQ LISTPOINT (REMOVE_DOUBLES LISTPOINT)) (SETQ COMPT 0) (REPEAT (LENGTH LISTPOINT) (VL-CMDF "point" (NTH COMPT LISTPOINT)) (SSADD (ENTLAST) CROIX) (SETQ COMPT (1+ COMPT)) ) (SETQ NBCROIXDB (SSLENGTH CROIX)) (SETQ REP 0) (WHILE (= REP 0) (INITGET "a A s S q Q") ;;;(PROMPT (STRCAT "\nLE NOMBRE DE CROIX EST DE " (RTOS (SSLENGTH CROIX) 2 0))) (SETQ REPONSE (GETKWORD "\nSELECTIONNER Ajouter Supprimer ou < Quitter >: ")) (IF (OR (= REPONSE "a") (= REPONSE "A")) (PROGN (VL-CMDF "ORDRETRACE" CROIX "" "AR") [surligneur] (SETVAR "osmode" OSM)[/surligneur] (SETQ POI NIL) (WHILE (NULL POI) (SETQ POI (GETPOINT "\nNOUVEAU POINT DE COTE :"))) [surligneur] (SETVAR "osmode" 0)[/surligneur] (IF (= (MEMBER-FUZZ POI LISTPOINT FUZZ) NIL) (PROGN (SETQ LISTPOINT (CONS POI LISTPOINT)) (VL-CMDF "point" POI) (SSADD (ENTLAST) CROIX) (SETQ LISTPOINT (REMOVE_DOUBLES LISTPOINT)) ) ;;; (PROMPT "\nLE POINT FAIT PARTIE DE LA LISTE PREDEFINIE") ) ) ) (IF (OR (= REPONSE "s") (= REPONSE "S")) (PROGN (VL-CMDF "ORDRETRACE" CROIX "" "AV") [surligneur] (SETVAR "osmode" 8)[/surligneur] (SETQ POI NIL REPONSEPOI NIL DEBUTLISTE NIL FINLISTE NIL ) ;;; (SETVAR "regenmode" 0) ;;; (COMMAND "-calque" "v" "*" "d" "T_CROIX" "") (WHILE (NULL POI) (SETQ POI (GETPOINT "\nPOINT DE COTE A SUPPRIMER:"))) [surligneur] (SETVAR "osmode" 0)[/surligneur] ;;; (SETQ REPONSEPOI (MEMBER-FUZZ POI LISTPOINT FUZZ)) ;;; (IF (= REPONSEPOI NIL) (IF (/= (MEMBER-FUZZ POI LISTPOINT FUZZ) NIL) ;; (PROGN (PROMPT "\nLE POINT NE FAIT PAS PARTIE DE LA LISTE PREDEFINIE")) (PROGN ;; (PROMPT "\nLE POINT FAIT PARTIE DE LA LISTE PREDEFINIE") (SETQ ;;; DEBUTLISTE (TRUNC-FUZZ POI LISTPOINT FUZZ) ;;; FINLISTE (CDR (MEMBER-FUZZ POI LISTPOINT FUZZ)) ;;; LISTPOINT1 (APPEND DEBUTLISTE FINLISTE) LISTPOINT (APPEND (TRUNC-FUZZ POI LISTPOINT FUZZ) (CDR (MEMBER-FUZZ POI LISTPOINT FUZZ))) ) (SETQ COMPT1 1 COMPT2 NIL NBCROIX (SSLENGTH CROIX) ) (WHILE (<= COMPT1 NBCROIX) (SETQ P1 (TRANS (CDR (ASSOC 10 (ENTGET (SSNAME CROIX COMPT1)))) 0 1)) (IF (EQUAL POI P1 FUZZ) (PROGN ;; (PROMPT "\nLE POINT EST DANS LA LISTE DE CROIX") ;;; (SETQ COMPT2 COMPT1) (VL-CMDF "effacer" (SSNAME CROIX COMPT1) "") (SSDEL (SSNAME CROIX COMPT1) CROIX) (SETQ COMPT1 (1+ NBCROIX)) ) ;; (PROMPT "\nLE POINT N'EST PAS DANS LA LISTE DE CROIX") ) (SETQ COMPT1 (1+ COMPT1)) ) ;;; (IF (/= COMPT2 NIL) ;;; (PROGN (VL-CMDF "effacer" (SSNAME CROIX COMPT2) "") ;;; (SSDEL (SSNAME CROIX COMPT2) CROIX)) ) ) ;;; ) (COMMAND "-calque" "d" "*" "") (SETQ LISTPOINT (REMOVE_DOUBLES LISTPOINT)) ) ) (IF (OR (= REPONSE "q") (= REPONSE "Q")) (PROGN (SETQ REP 1) (COMMAND "zoom" "OB" ENTG1 CROIX "") (SETQ LISTPOINT (REMOVE_DOUBLES LISTPOINT)) ) ) ) ;;refaire la liste des points dans le scg (SETQ LISTPOINTA NIL) (SETQ COMPT 0) (REPEAT (LENGTH LISTPOINT) (SETQ LISTPOINTA (CONS (TRANS (NTH COMPT LISTPOINT) 1 0) LISTPOINTA)) (SETQ COMPT (1+ COMPT)) ) ;;fin de la liste en SCG ;;passer dans le SCU de la cote (COMMAND "scu" "z" '(0 0) (POLAR '(0 0) ANG 10)) ;;refaire la liste des points dans le scu de la cote de base (SETQ LISTPOINTC NIL) (SETQ COMPT 0) (REPEAT (LENGTH LISTPOINTA) (SETQ LISTPOINTC (CONS (TRANS (NTH COMPT LISTPOINTA) 0 1) LISTPOINTC)) (SETQ COMPT (1+ COMPT)) ) ;;fin de la liste en SCU de la cote de base ;;faire la liste en ordre croissant par rapport a l'angle de la cote de base (SETQ LISTPOINTX (VL-SORT LISTPOINTC (FUNCTION (LAMBDA (P1 P2) (< (CAR P1) (CAR P2)))))) ;;;fin de la mise en ordre croissant ;;refaire la liste des points dans le scg (SETQ LISTPOINTB NIL) (SETQ COMPT 0) (REPEAT (LENGTH LISTPOINTX) (SETQ LISTPOINTB (CONS (TRANS (NTH COMPT LISTPOINTX) 1 0) LISTPOINTB)) (SETQ COMPT (1+ COMPT)) ) ;;fin de la liste en SCG ;;repasser dans le scu de vue (VL-CMDF "scu" "p") ;; point11 dans l'alignement de la ligne de cote de base (SETQ POINT11 (POLAR POINT10 ANG 500)) ;;fin du point11 ;;;passer dans les donnees de base (VL-CMDF "effacer" ENTG1 "") (VL-CMDF "effacer" CROIX "") (VL-CMDF "-calque" "ch" CALQCOTE "") (VL-CMDF "-dimstyle" "R" STYLECOTE) ;;fin de donner de base ;;;refaire les cotes (SETQ COMPT 0) (REPEAT (1- (LENGTH LISTPOINTB)) (SETQ POINT13A (TRANS (NTH COMPT LISTPOINTB) 0 1) POINT14A (TRANS (NTH (1+ COMPT) LISTPOINTB) 0 1) ) (IF (OR (AND (< (SIN (- (ANGLE POINT13A POINT10) (ANGLE POINT11 POINT10))) 0) (< (SIN (- (ANGLE POINT14A POINT10) (ANGLE POINT11 POINT10))) 0) ) (AND (> (SIN (- (ANGLE POINT13A POINT10) (ANGLE POINT11 POINT10))) 0) (> (SIN (- (ANGLE POINT14A POINT10) (ANGLE POINT11 POINT10))) 0) ) ) (VL-CMDF "cotlin" POINT13A POINT14A "R" ANGCOTEDEGRE POINT10) (VL-CMDF "cotlin" POINT13A POINT14A "R" ANGCOTEDEGRE (INTERS POINT10 POINT11 POINT13A POINT14A NIL)) ) (SETQ COMPT (1+ COMPT)) ) ;;fin de refaire les cotes (VL-CMDF "-purger" "ca" "T_CROIX" "n") [surligneur] (SETVAR "osmode" OSM)[/surligneur] (SETVAR "clayer" CAV) (SETVAR "pdmode" VARPDMODE) (SETVAR "pdsize" VARPDSIZE) (VL-CMDF "-dimstyle" "R" STYLECOTEENCOURS) (PRINC) ) (DEFUN MEMBER-FUZZ (EXPR LST FUZZ) (WHILE (AND LST (NOT (EQUAL EXPR (CAR LST) FUZZ))) (SETQ LST (CDR LST))) ) (DEFUN TRUNC-FUZZ (EXPR LST FUZZ) (IF (AND LST (NOT (EQUAL EXPR (CAR LST) FUZZ))) (CONS (CAR LST) (TRUNC-FUZZ EXPR (CDR LST) FUZZ)) ) ) ;;; REMOVE_DOUBLES - Suprime tous les doublons d'une liste (DEFUN REMOVE_DOUBLES (LST) (IF LST (CONS (CAR LST) (REMOVE_DOUBLES (VL-REMOVE (CAR LST) LST))) ) ) ;;; MID_PT Retourne le milieu de deux points (DEFUN MID_PT (P1 P2) (MAPCAR '(LAMBDA (X1 X2) (/ (+ X1 X2) 2)) P1 P2)) [Edité le 10/7/2008 par PHILPHIL][Edité le 10/7/2008 par PHILPHIL][Edité le 10/7/2008 par PHILPHIL] [Edité le 11/7/2008 par PHILPHIL]
-
Aligner des blocs perpendiculairement à une polyligne
PHILPHIL a répondu à un(e) sujet de doublecriquet dans Routines LISP
hello heuuuu c'est pas ce que j'avais suggere deja ?? de modifier le fichier servant de bloc ?? phil [Edité le 9/7/2008 par PHILPHIL] -
Aligner des blocs perpendiculairement à une polyligne
PHILPHIL a répondu à un(e) sujet de doublecriquet dans Routines LISP
salut une auttre solution dans ton fichier de base qui te sert de bloc tu tournes l'attribut de 90 degres dans le sens horaire ou trigo a toi de voir et tu le rappel en remplacement des tes milliers de bloc comme tes blocs sont déja en place avec une certaines rotation ils seront tous tournés de 90 degres sinon quel LISP as tu utilisé ? il est peut etre modifiable pour faire en sorte de demander l'angle par rapport a la polyligne au point d'insertion ce qui pourrait servir a d'autres phil [Edité le 8/7/2008 par PHILPHIL] -
Centrer des objet dans la fenêtre courante
PHILPHIL a répondu à un(e) sujet de (gile) dans Routines LISP
HELLO GIL lili2006 hello tres pratique en effet ton petite lisp gile thanks phil -
hello si d'apres ce que dit gile la version 2009 la pire version depuis r13 avec vista la pire version depuis JC ou Bil G. on est mal barré accumulation de soucis = retour au dessin a la mains ????? ouai on va rejouer aux flechettes avec les rotrings phil
-
hello si ca peut t'aider faut peut etre faire un peut de menage la liste des hachures par exemples ou pour tout voir faut tapper sur "F2" ca bug un peut des fois ok ok j'avoue oupsss pas sur que mon LISP créer les hachures en arriere plans par contre phil ;;; --------------------------------------------- ;;; REMPLIT PAR UN HACHURAGE LES POLYLIGNES FERMEE ;;; --------------------------------------------- (defun C:HAC2 (/) (setvar "cmdecho" 1) (setvar "dimzin" 0) (setq CAV (getvar "clayer")) (setq OSM (getvar "osmode")) (setvar "osmode" 0) (setq TYPEHACH (getcfg "APPDATA/TYPEHACH")) (setq ECHELHACH (atof (getcfg "APPDATA/ECHELHACH"))) (setq ANGLHACH (atof (getcfg "APPDATA/ANGLHACH"))) (setq CALQUEHACH2 (getcfg "APPDATA/Tcalq2")) (setq CALQUEHACH NIL) (princ "\n") (princ "\n") (setq S1 (getstring t "\nVOULEZ VOUS SELECTIONNER LE TYPE DE HACHURAGE SI OUI TAPPER S ")) (if (or (= S1 "S") (= S1 "s")) (progn (setq H2 NIL) (setq HACH1 NIL) (setq TEST1 0) ;;; (setq ENT1 nil) ;;; (while (null ENT1) ;;; (setq ENT1 (ssget (list (cons -4 ";;; (cons 0 "HATCH") ;;; (cons -4 "or>") ;;; ) ;;; ) ;;; ) ;;; ) (while (/= TEST1 1) (setq ENT1 (car (nentsel "\nSELECTIONNER LA HACHURE DE BASE."))) (setq TEST (cdr (assoc 0 (entget ENT1))) TEST1 (cond ((= TEST "HATCH") 1)) ) ) (setq TYPEHACH (cdr (assoc 2 (entget ENT1))) CALQUEHACH (cdr (assoc 8 (entget ENT1))) ) (if (or (= TYPEHACH "SOLID") (= TYPEHACH "solid")) (setq ECHELHACH 1 ANGLHACH 0 ) (setq ECHELHACH (cdr (assoc 41 (entget ENT1))) ANGLHACH (* (cdr (assoc 52 (entget ENT1))) (/ 180 pi)) ) ) ) (progn (prompt "\nSOLID - remplissage de solide") (prompt "\nANGLE - angle acier") (prompt "\nANSI31 - fer, brique, maçonnerie en pierres") (prompt "\nANSI32 - acier") (prompt "\nANSI33 - bronze, laiton, cuivre") (prompt "\nANSI34 - plastique, élastique") (prompt "\nANSI35 - brique réfractaire, matériau réfractaire") (prompt "\nANSI36 - marble, ardoise, verre") (prompt "\nANSI37 - plomb, zinc, magnesium, isolation acoustique/thermique/électrique") (prompt "\nANSI38 - aluminium") (prompt "\nAR-B816 - support d'élévation de bloc 8x16") (prompt "\nAR-B816C - support d'élévation de bloc avec des joints de mortier 8x16") (prompt "\nAR-B88 - support d'élévation de bloc 8x8") (prompt "\nAR-BRELM - support standard en brique pour l'élévation de bloc à l'anglaise avec" ) (prompt "\nAR-BRSTD - support standard en brique pour l'élévation de bloc") (prompt "\nAR-CONC - point au hasard et motif en pierres") (prompt "\nAR-HBONE - motif de brique standard en arête de poisson à 45 degrés") (prompt "\nAR-PARQ1 - revêtement de sol de 2x12 : motif de 12x12") (prompt "\nAR-RROOF - toiture en galet") (prompt "\nAR-RSHKE - toiture en bois") (prompt "\nAR-SAND - motif de points disposés au hasard") (prompt "\nBOX - boîte en acier") (prompt "\nBRASS - matériau en laiton") (prompt "\nBRICK - surface en brique ou en maçonnerie") (prompt "\nBRSTONE - briques et pierres") (prompt "\nCLAY - argile") (prompt "\nCORK - liège") (prompt "\nCROSS - une série de croix") (prompt "\nDASH - tirets") (prompt "\nDOLMIT - marcottage géologique de roches") (prompt "\nDOTS - une série de points") (prompt "\nEARTH - terre ou terrain - sous terre - ") (prompt "\nESCHER - motif Escher") (prompt "\nFLEX - matériau flexible") (prompt "\nGRASS - aire gazonnée") (prompt "\nGRATE - grille") (prompt "\nGRAVEL - Motif gravier") (prompt "\nHEX - héxagones") (prompt "\nHONEY - motif alvéolaire") (prompt "\nHOUND - pied de poule") (prompt "\nINSUL - matériau isolant") (prompt "\nACAD_ISO02W100 - tiret") (prompt "\nACAD_ISO03W100 - tiret espace") (prompt "\nACAD_ISO04W100 - tiret long points") (prompt "\nACAD_ISO05W100 - tiret long deux points") (prompt "\nACAD_ISO06W100 - tiret long trois points") (prompt "\nACAD_ISO07W100 - point") (prompt "\nACAD_ISO08W100 - tiret long point court") (prompt "\nACAD_ISO09W100 - tiret long deux tirets courts") (prompt "\nACAD_ISO10W100 - tiret points") (prompt "\nACAD_ISO11W100 - deux tirets point") (prompt "\nACAD_ISO12W100 - tiret deux points") (prompt "\nACAD_ISO13W100 - deux tirets deux points") (prompt "\nACAD_ISO14W100 - tiret trois points") (prompt "\nACAD_ISO15W100 - deux tirets trois points") (prompt "\nLINE - lignes horizontales parallèles") (prompt "\nMUDST - boue et sable") (prompt "\nNET - grille horizontale / verticale") (prompt "\nNET3 - motif réseau 0-60-120") (prompt "\nPLAST - matériau plastique") (prompt "\nPLASTI - matériau plastique") (prompt "\nSACNCR - béton") (prompt "\nSQUARE - alignement de petits carrés") (prompt "\nSTARS - étoile de David") (prompt "\nSTEEL - matériau métallique") (prompt "\nSWAMP - zone marécageuse") (prompt "\nTRANS - matériau thermoconducteur") (prompt "\nTRIANG - triangles équilatéraux") (prompt "\nZIGZAG - effet d'escalier") (setq TYPE1 (getstring t (strcat "\nVEUILLEZ ENTRER LE NOUVEAU TYPE DE HACHURAGE <" TYPEHACH ">: "))) (if (/= TYPE1 "") (setq TYPEHACH TYPE1) ) (if (/= TYPEHACH "solid") (progn (setq ECHL1 (getdist (strcat "\nENTRER LA VALEUR DE L'ECHELLE DE HACHURAGE <" (rtos ECHELHACH 2 8) ">: "))) (if ECHL1 (setq ECHELHACH ECHL1) ) (setq ANGL1 (getdist (strcat "\nENTRER LA VALEUR DE L'ANGLE DE HACHURAGE <" (rtos ANGLHACH 2 8) ">: "))) (if ANGL1 (setq ANGLHACH ANGL1) ) ) ) ) ) (setq S2 (getstring t "\nVOULEZ VOUS SELECTIONNER DES POLYLIGNES OU DES POINTS SI OUI TAPPER P ")) (if (or (= S2 "P") (= S2 "p")) (progn (prompt "CLIQUER LES POINT A HACHURER:") ;;; (if (= calquehach nil) (command "-calque" "ch" CALQUEHACH "") ;;; (command "-calque" "ch" calquehach "") ;;; ) ;;; (princ "\) ;;; (princ "\) (command "-fhach" "p" TYPEHACH ECHELHACH ANGLHACH "A" "A" "O" "") ;;; (initget "O N") ;;; (setq ANS (getkword "EST CE QUE LE HACHURAGE VOUS CONVIENT ? (O/N):")) ;;; (if (= ANS "N") ;;; (command "ANNULER" "") ;;; ) ;;; (setvar "clayer" cav) ;;; (command "-fhach") ) (progn (command "-fhach" "p" TYPEHACH ECHELHACH ANGLHACH "A" "A" "O" "" "") (if (= CALQUEHACH NIL) (command "-calque" "ch" CALQUEHACH2 "") (command "-calque" "ch" CALQUEHACH "") ) (prompt "CLIQUER SUR L'ENTITE(S) POLYLIGNE(S) A HACHURER :") (setq LESPOLY NIL) (while (null LESPOLY) (setq LESPOLY (ssget (list (cons -4 " (cons 0 "CIRCLE") (cons 0 "polyline") (cons 0 "lwpolyline") (cons 0 "AEC_POLYGON") (cons -4 "or>") ) ) ) ) (setq FERM NIL) (setq COMPT 0) (setq COM (sslength LESPOLY)) (while (< COMPT COM) (progn (setq UNEPOLY (ssname LESPOLY COMPT)) (setq FORME (cdr (assoc 0 (entget UNEPOLY)))) (setq FERM (cdr (assoc 70 (entget UNEPOLY)))) (setq NBPOINT (cdr (assoc 90 (entget UNEPOLY)))) (if (= FORME "CIRCLE") (setq FERM 1 NBPOINT 3 ) ) (if (and (or (= FERM 129) (= FERM 1)) (> NBPOINT 2)) (command "-fhach" "SE" UNEPOLY "" "") ) (setq COMPT (1+ COMPT)) ) ) (princ) (setq COMPT 0) (initget "O N") (setq ANS (getkword "EST CE QUE LE HACHURAGE VOUS CONVIENT ? (O/N):")) (if (= ANS "N") (progn (while (< COMPT COM) (command "ANNULER" "") (setq COMPT (1+ COMPT)))) ) (setvar "clayer" CAV) ) ) (setcfg "APPDATA/typehach" TYPEHACH) (setcfg "APPDATA/echelhach" (rtos ECHELHACH 2 8)) (setcfg "APPDATA/anglhach" (rtos ANGLHACH 2 8)) (setvar "osmode" OSM) ;;; (setvar "clayer" cav) (princ) ) [Edité le 3/7/2008 par PHILPHIL]
-
hello pas plus dure que ca tape "COTDISSOCIER" phil
-
HELLO j'ai 4 go et vista 32 bits et meme chose tout plante je suis au ange super content ravi de bonne humeur lollll merci monsieur GATES le BILL pour VISTA bon ok je sais c'est pas lui qui l'a programmée tout seul entre midi et deux quoique des fois on se demande moi en tout cas et MONSIEUR AUTODESK il devrait pas songer a developper autocad et autres sous un autre systeme d'exploitations du fonctionne et ne soit pas gourmand en ressource affaire a suivre phil ( raleur moi ??? non non )
-
pour les pros du LISP
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans Pour aller plus loin en LISP
looollll c'est bien pour ca que j'ai demande aussi a MONSIEUR AUTODESK mais je doute que le MONSIEUR lise ce forum ci ou qu'il se base sur nos desiderata pour modifier son programme fetiche autocad phil -
pour les pros du LISP
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans Pour aller plus loin en LISP
salut lili salut gile j'ai teste les lisp de GILE mais c'est pas ce que je recherche gelobj : fournit la lisp des calques dans une fenetre a geler dans l'onglet objet et que dans l'onglet objet gel_fen : gele le calque dans la fenetre flottante de l'onglet de presentation de l'objet selectionner et que pour la presentation dans lequel on est deja souci il faut ouvrir tous les onglets de presentation un par un et j'en ai souvent plus de 50 dans mes fichiers sinon plus il faudrait que la manip se fasse en restant dans l'onglet objet de pourvoir manipuler les fenetre flottantes de chaque onglet de prensetations bonne soirée phil -
bonjour une petite idée de programme LISP mais grosse demande de boulot surement donc AUTODESK si tu nous ecoutes !!!! un LISP ou par le biais d'une fenetre on pourrait geler ou degeler des calques dans les fenetre de presentations se presentant comme ceci la colonne des calques a gauche la colonne des nom des differentes onglets de presentations au milieu la colonne des "nom" ou "numero" de fenetre "EO" des presentations a droite avec ca MONSIEUR AUTODESK on gagne facile 1 heure il n'y avait pas un forum avec les desirs des utilisateurs d'autocad pour les prochaines versions sur le site ?? merci phil
-
AutoCAD ! le dépoussiérage... après 26 ans c\'est toujours la Préhistoire... y a encore du boulot !!
PHILPHIL a répondu à un(e) sujet de rebcao dans AutoCAD LT 2009
hello a tous ouai autocad et les declinaisons ne sont pas encore au niveau heureusement que le LISP est la rebcao tu parles que nous somme tous pratiquement passer a des ecrans 24 pouces voir a 2 ecrans mais a voir certaines "fenetres" de commance je pense que chez autodesk ils sont tous encore avec des 17pouces en 800x600 elles ne sont pas redimensionnable et le fichier *.dcl n'est pas fournit la fenetre des groupes justement quand tu en as rien q'une centaines qui s'afichent sur 4 lignes c'est super genial pour les retrouver , premier chose a faire a l'installation d'autocad remodifier les fichier AutoCAD.dcl bien qu'avec les "lisp" je ne passe plus par la fenetre des goupes et y'a plein d'autre fenetre de commance aussi comme ca ou les nom de plus de 20 caratere ne s'affiche pas en entier aussi bref ca manque de serieux tout ca ca fait plus "esbrouf" qu'autre chose autodesk nous dit que l'on gagne en rapidite depuis pas mal d'années d'au moins 30% par nouveaux produits vous avez remarque ca aussi ??? mais je suis pas sur que autodesk suivent vraiment ce qui se dit sur les forum et ecoutes plutot les responsables informatiques des grands comptes qui bien sur ne travail pas sur autocad ok ok je m'emporte phil -
POINT APPROCHANT DE CEUX D UNE LISTE
PHILPHIL a répondu à un(e) sujet de PHILPHIL dans Pour aller plus loin en LISP
salut gile merci pour la réponse mais bon souci j'ai bien essayer mais je vois pas comment l'integrer par contre ? en l'ecrivant comme ca je dois perdre la liste "listpoint" car aucune cote ne se reconstruit phil )[/code][Edité le 29/5/2008 par PHILPHIL] [Edité le 10/7/2008 par PHILPHIL] -
salut besoin d'aide sur un petit programme dans un programme a force de faire des "trans" les coordonnées des points changent legerement loin derriere la virgule je voudrais verifier si un point est bien dans une liste avec une certaine marge j'ai essaye ca (setq poi ( 123.25000004 125.36000004 0.0 ) ) (setq listpoint (( 123.25000005 125.36000003 0.0) ... .... ... ) (if (= (equal poi (member poi listpoint) 1e-8) nil) .... .... .... .... ) mais ca ne fonctionne pas merci d'avance phil
-
BONJOUR mise a jour du LISP a tester en attente d'avis question aux experts et besoin d'aide apparement ca manque de precision sur la recherche d'un point dans la liste les 'trans" d'un SCU à un SCG a repetition font que les points ne sont plus exactement les meme un point qui semble etre un doublons dans la liste a 8 chiffres apres la virgule n'est pas trouver dans la liste et forme un doublons comment trouver un point dans la liste avec un petit peu de marge ( ou marge definie a 8 chiffres apres la virgule par exemple ) pour eviter les doublons ? voir lisp merci phil ;;--------------------------------- ;;;ajouter/soustraire des point dans des cotes ;;--------------------------------- (defun C:ASPC () (vl-load-com) (setq OSM (getvar "osmode")) (setq CAV (getvar "clayer")) (setq STYLECOTEENCOURS (getvar "DIMSTYLE")) (setvar "osmode" 0) ;;; (command "scu" "") (prompt "CLIQUER SUR LA COTE(S) A MODIFIER (1ere COTE SELECTIONNER = COTE DE BASE ) :" ) (setq ENTG1 NIL) (while (null ENTG1) (setq ENTG1 (ssget '((0 . "DIMENSION")))) ) (command "zoom" "OB" ENTG1 "") ;;;debut recuperation de donnee de la cote de base (setq point10 (trans (cdr (assoc 10 (entget (ssname ENTG1 0)))) 0 1) STYLECOTE (cdr (assoc 3 (entget (ssname ENTG1 0)))) CALQCOTE (cdr (assoc 8 (entget (ssname ENTG1 0)))) ANGCOTE (cdr (assoc 50 (entget (ssname ENTG1 0)))) ASX1 (car (getvar "ucsxdir")) ASX2 (cadr (getvar "ucsxdir")) ) ;;;fin recuperation de donnee de la cote de base ;;;calcul de l'angle du SCU par rapport au SCG (if (and (= ASX1 1) (= ASX2 0)) (setq ANGSCU 0) ) (if (and (and (< ASX1 1) (> ASX1 0)) (and (< ASX2 1) (> ASX2 0)) ) (setq ANGSCU (atan (/ ASX2 ASX1))) ) (if (and (= ASX1 0) (= ASX2 1)) (setq ANGSCU (/ pi 2)) ) (if (and (and (< ASX1 0) (> ASX1 -1)) (and (< ASX2 1) (> ASX2 0)) ) (setq ANGSCU (- (atan (/ ASX2 ASX1)) pi)) ) (if (and (= ASX1 -1) (= ASX2 0)) (setq ANGSCU (* 2 pi)) ) (if (and (and (< ASX1 0) (> ASX1 -1)) (and (< ASX2 0) (> ASX2 -1)) ) (setq ANGSCU (+ (atan (/ ASX2 ASX1)) pi)) ) (if (and (= ASX1 0) (= ASX2 -1)) (setq ANGSCU (+ pi (/ pi 2))) ) (if (and (and (< ASX1 1) (> ASX1 0)) (and (< ASX2 0) (> ASX2 -1)) ) (setq ANGSCU (atan (/ ASX2 ASX1))) ) ;;;fin de calcul de l'angle du SCU par rapport au SCG (setq ANG (- ANGCOTE ANGSCU)) ;;calcul de l'angle de la cote dans le SCU (setq ANGCOTEDEGRE (angtos (- ANGCOTE ANGSCU) 0 10)) ;;; (prompt (strcat "\nL'ANGLE DE LA COTE EST : " ANGCOTEDEGRE)) ; fin de calcul de l'angle de la cote dans le SCU ;;recuperation des points de cotes dans uns liste (setq COMPT 0) (setq listpoint nil) (setq croix (ssadd)) (vl-cmdf "-calque" "n" "T_CROIX" "co" "52" "T_CROIX" "ch" "T_CROIX" "") ;;; (vl-cmdf "-calque" "ch" 0 "") (repeat (sslength ENTG1) (setq POINT13 (trans (cdr (assoc 13 (entget (ssname ENTG1 COMPT)))) 0 1) POINT14 (trans (cdr (assoc 14 (entget (ssname ENTG1 COMPT)))) 0 1) ) (if (= (member point13 listpoint) nil) (progn (setq listpoint (cons point13 listpoint)) (vl-cmdf "point" point13) (ssadd (entlast) croix) ) ) (if (= (member point14 listpoint) nil) (progn (setq listpoint (cons point14 listpoint)) (vl-cmdf "point" point14) (ssadd (entlast) croix) ) ) (setq COMPT (1+ COMPT)) ) (setq rep 0 ;;; reponse "Q" ) (while (= rep 0) (INITGET "a A s S q Q") (setq reponse (GETKWORD "\nSELECTIONNER Ajouter Supprimer ou : " ) ) ;;; (prompt (strcat "\nLa reponse est : " reponse)) (if (or (= reponse "a") (= reponse "A")) (PROGN ;;(AJOUTERPOINT) (vl-cmdf "ORDRETRACE" croix "" "AR") (setvar "osmode" OSM) (setq poi nil) (while (null POI) (setq POI (getpoint "\nNOUVEAU POINT DE COTE :")) ) (if (= (member poi listpoint) nil) (progn (setq listpoint (cons poi listpoint)) (vl-cmdf "ligne" (polar poi (/ pi 4) 10) (polar poi (+ pi (/ pi 4)) 10) "" ) (ssadd (entlast) croix) (vl-cmdf "ligne" (polar poi (- pi (/ pi 4)) 10) (polar poi (- (+ pi pi) (/ pi 4)) 10) "" ) (ssadd (entlast) croix) ;;; (setq reponse "q") ) ) ) (setvar "osmode" 0) ) (if (or (= reponse "s") (= reponse "S")) (progn ;; (SUPPRIMERPOINT) (vl-cmdf "ORDRETRACE" croix "" "AV") (setvar "osmode" 8) (setq poi nil) (while (null POI) (setq POI (getpoint "\nPOINT DE COTE A SUPPRIMER:")) ) (if (= (member poi listpoint) nil) (progn (prompt "\nLE POINT NE FAIT PAS PARTIE DE LA LISTE PREDEFINIE" ) ;;; (command "cercle" poi 20) ) (progn (prompt "\nLE POINT FAIT PARTIE DE LA LISTE PREDEFINIE") (setq listpoint (append (cdr (member poi (reverse listpoint))) (cdr (member poi listpoint)) ) ) ) ) (setvar "osmode" 0) ) ) (if (or (= reponse "q") (= reponse "Q")) (progn (setq rep 1) (command "zoom" "OB" ENTG1 croix "")) ) ) ;;refaire la liste des points dans le scg (setq listpointa nil) (setq COMPT 0) (repeat (length listpoint) (setq listpointa (cons (trans (nth compt listpoint) 1 0) listpointa) ) (setq COMPT (1+ COMPT)) ) ;;fin de la liste en SCG ;;passer dans le SCU de la cote (command "scu" "z" '(0 0) (polar '(0 0) ANG 10)) ;;refaire la liste des points dans le scu de la cote de base (setq listpointc nil) (setq COMPT 0) (repeat (length listpointa) (setq listpointc (cons (trans (nth compt listpointa) 0 1) listpointc) ) (setq COMPT (1+ COMPT)) ) ;;fin de la liste en SCU de la cote de base ;;faire la liste en ordre croissant par rapport a l'angle de la cote de base (setq listpointx (vl-sort listpointc (function (lambda (p1 p2) (< (car p1) (car p2)))) ) ) ;;;fin de la mise en ordre croissant ;;refaire la liste des points dans le scg (setq listpointb nil) (setq COMPT 0) (repeat (length listpointx) (setq listpointb (cons (trans (nth compt listpointx) 1 0) listpointb) ) (setq COMPT (1+ COMPT)) ) ;;fin de la liste en SCG ;;repasser dans le scu de vue (vl-cmdf "scu" "p") ;; point11 dans l'alignement de la ligne de cote de base (setq POINT11 (polar point10 ang 500)) ;;fin du point11 ;;;passer dans les donnees de base (vl-cmdf "effacer" ENTG1 "") (vl-cmdf "effacer" croix "") (vl-cmdf "-calque" "ch" CALQCOTE "") (vl-cmdf "-dimstyle" "R" STYLECOTE) ;;fin de donner de base ;;;refaire les cotes (setq COMPT 0) (repeat (1- (length listpointb)) (setq point13a (trans (nth COMPT listpointb) 0 1) point14a (trans (nth (1+ COMPT) listpointb) 0 1) ) (if (or (and (< (sin (- (angle point13a point10) (angle point11 point10))) 0 ) (< (sin (- (angle point14a point10) (angle point11 point10))) 0 ) ) (and (> (sin (- (angle point13a point10) (angle point11 point10))) 0 ) (> (sin (- (angle point14a point10) (angle point11 point10))) 0 ) ) ) (vl-cmdf "cotlin" POINT13a POINT14a "R" ANGCOTEDEGRE POINT10) (vl-cmdf "cotlin" POINT13a POINT14a "R" ANGCOTEDEGRE (inters POINT10 point11 point13a point14a nil) ) ) (setq COMPT (1+ COMPT)) ) ;;fin de refaire les cotes (vl-cmdf "-purger" "ca" "T_CROIX" "n") (setvar "osmode" OSM) (setvar "clayer" CAV) (vl-cmdf "-dimstyle" "R" STYLECOTEENCOURS) (princ) ) [Edité le 27/5/2008 par PHILPHIL]
-
hello peut on interdire l'accroche a des entites dans un calque nommé ?? voir les entitées d'un calque sans pouvoir s'y accrocher tout en le pouvant aux entités d'autres calque ?? une histoire de variable ??? pas certains que ca existe mais je tente bonne nuit phil
-
hello j'ai besoin d'aide sur ces deux fonctions comment fonctionnent elles au final je voudrait verifier si un "point1" fait partie d'une "liste" pour l'inclure dans la "liste" ou pas est ce les bonnes fonctions ?? merci phil
-
BONJOUR voir sujet plus sous autocad 2009 mise a jour du LISP merci phil [Edité le 27/5/2008 par PHILPHIL]
