-
Compteur de contenus
254 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par willy95
-
Voila mon probleme: (Setq Nulot (Getstring T "\nNuméro du Lot ou :")) (IF (= Nulot "sa") (command "TEXTE" "ST" "COURIER" pt1 "100" "Surface Annexe Total" ) (IF (= Nulot ???Chiffre???? ) (command "TEXTE" "ST" "COURIER" pt1 "100" "????Chiffre????) Dans le Premier choix à la question on répond un chiffre (exemple :3) donc Nulot = 3 Le résultat écrira juste le chiffre 3 Dans le deuxième choix on répond sa donc Nulot = sa pour écrire Surface Annexe Total Comment faire pour savoir si c'est un chiffre ou ma réponse (sa) ??
-
Bonsoir a tous... Je suis toujours en train de me poser des problèmes utiles... (IF (= Nulot "sa") (setq Nulot2 sa)) (IF (= Nulot ???valeur numérique???? ) (setq Nulot2 ???la valeur numérique????) Je souhaite savoir comment mettre une condition différente si la valeur de la variable Nulot est un chiffre autre que ma valeur sa ? Si quelqu'un peu m'aidé sur ce coup la. Merci d'avance
-
Merci Ma question etait surement mal posé. J'avais un probleme de ponctuation.
-
Je sais bien que l'idée est par la, mais.... Je pose 2 questions et je donne une réponse ! Tout mon problème est la
-
Bonjour à tous... Voila un de mes petit probleme : (setq Nom (getstring "Votre Nom :" )) Je réponds par exemple : Christophe (setq Prenom (getstring " Votre Prenom:" )) Je réponds par exemple : Martin (setq Les deux ??????????? Résultat : Christophe Martin Je cherche à mettre dans une variable (Les deux) les 2 variable precedentes. Merci pour vos réponse par avance.
-
Choix de l\'Epaisseur en plus
willy95 a répondu à un(e) sujet de willy95 dans AutoCAD, liste de souhaits
Bonjour à tous... Je reviens un peu sur ce code que je souhaiterai modifié, je m'explique : Après quelques essais non concluant j'aimerai pouvoir créer ma polytrame dans le calque courant, l'idéal peut etre serai de pouvoir choisir : soit dans mon calque inposé ou calque courant ? J'aimerai bien solutionné ce probleme qui comme d'habitude me fait réfléchir à bouillir... N'hésité pas à me répondre, merci par avance. -
Voila c'est pas au point mais ca fonctionne pour les lignes, les polylignes, les arcs, un jour peu etre pour les splines, et peu etre qu'aussi une amélioration pour les points avec des coordonées identique seront suprimés automatiquement. Merci Beaucoup pour tout. Pour ceux que sa intéresse : (defun c:Coo (/ selset filename file ind indA indC indL indPO indSP npt ent ent2 dxflst typ pt xpt1 xpt2 pt4 pt5 angl1 start str str1 str2 ) (setvar "LUNITS" 2) ;Metrique (setvar "LUPREC" 4) ;2 décimales (setvar "AUNITS" 2) ;Grade (setvar "AUPREC" 4) ;4 décimales (setvar "ANGBASE" (/ pi 2)) ;Le zéro au nord (setvar "ANGDIR" 1) ;Sens horaire ;;sélection des entités;; (if (setq selset (ssget '((0 . "ARC,CIRCLE,LINE,LWPOLYLINE,SPLINE")))) ;;création du fichier (if (setq filename (getfiled "Créer un fichier texte" "" "txt" 1)) (progn (setq file (open filename "w") ; ouverture en écriture numpt 0 ; initialisation de l'indice des points ind 0 ; initialisation de l'indice des Entités indA 0 ; initialisation de l'indice pour Arc indC 0 ; initialisation de l'indice pour Cercle indL 0 ; initialisation de l'indice pour Ligne indPO 0 ; initialisation de l'indice pour Polyligne indSP 0 ; initialisation de l'indice pour Spline npt 0 ; initialisation des numéros de points start 0 ; initialisation du point départ str1 0 ; initialisation des points intermédiaire str2 0 ; initialisation du point de fin str3 0 ; initialisation du point str 0 ; initialisation des points xpt1 0 ; initialisation du point 1 intermédiaire xpt2 0 ; initialisation du point 2 intermédiaire ) (setq model (strcat "," "MD=TOPO_POINT_MAT_Z")) ;;Modele Point 1 ;(setq model (strcat "," "MD=JT_PNT_MZ_BD")) ;;Modele Point 2 (setq modeli (strcat "," "MD=CLASSIQUE")) ;;Modele Ligne (setq numpt (strcat "R.")) ;; boucle tant qu'il y a des entités dans le jeu de sélection (while (setq ent (ssname selset ind)) (setq dxflst (entget ent) ; liste des données DXF typ (cdr (assoc 0 dxflst)) ; type d'entité ind (1+ ind) ; incrémentation de l'indice ) ;; traitement suivant le type d'entité (cond ;;-------------------------------------------------------------------------- ((= typ "ARC") (setq ent (ssname selset indA) indA (1+ indA)) ;(write-line (strcat " Arc") file); indice et type d'entité (setq cen (cdr (assoc 10 dxflst))) ; centre (setq rad (cdr (assoc 40 dxflst))) ; rayon (setq ang1 (cdr (assoc 50 dxflst))) ; angle départ (setq ang2 (cdr (assoc 51 dxflst))) ; angle fin (setq start (polar cen ang1 rad)npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (car start)) ",Y=" (rtos (cadr start)) (strcat model) )file) (setq mid (polar cen (/ (+ ang1 ang2) 2.0) rad)npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (car mid)) ",Y=" (rtos (cadr mid)) (strcat model) )file) (setq end (polar cen ang2 rad)npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (car end)) ",Y=" (rtos (cadr end)) (strcat model) )file) (write-line (strcat "Arc." (itoa indA) ":MD=CLASSIQUE") file) (write-line (strcat "Arc." (itoa indA) "&D0:" ) file) (write-line (strcat "Arc." (itoa indA) "&L0:*R." (itoa npt) "&R." (itoa (- npt 1)) "/R." (itoa (- npt 2))) file) (write-line (strcat "Arc." (itoa indA) "&V1:Meth=MdMoL") file) ) ;;-------------------------------------------------------------------------- ((= typ "CIRCLE") (setq ent (ssname selset indC) indC (1+ indC)) ;(write-line (strcat (itoa indC) " Cercle") file) (setq pt (cdr (assoc 10 dxflst)) npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (car pt)) ",Y=" (rtos (cadr pt)) (strcat model) ) file)) ;;-------------------------------------------------------------------------- ((= typ "LINE") (setq ent (ssname selset indL) indL (1+ indL)) ;(write-line (strcat (itoa ind) " Ligne") file) (setq pt (cdr (assoc 10 dxflst)) npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (car pt)) ",Y=" (rtos (cadr pt)) (strcat model) )file) (setq xpt1 (car pt)) (setq ypt1 (cadr pt)) (setq pt (cdr (assoc 11 dxflst)) npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (car pt)) ",Y=" (rtos (cadr pt)) (strcat model) )file) (setq xpt2 (car pt)) (setq ypt2 (cadr pt)) (setq xpt3 (/ (+ xpt1 xpt2)2)) (setq ypt3 (/ (+ ypt1 ypt2)2)) (setq pt4 (list xpt1 ypt1)) (setq pt5 (list xpt2 ypt2)) (setq angl1 (angle pt4 pt5)) (write-line (strcat "Ligne." (itoa indL) ":X=" (rtos xpt3) ",Y=" (rtos ypt3) ",G="(vl-string-right-trim "g" (angtos angl1 2 4)) (strcat modeli)) file) (write-line (strcat "Ligne." (itoa indL)"&L0:*R." (itoa npt) "/R." (itoa (1- npt)) ) file)) ;;-------------------------------------------------------------------------- ((= typ "LWPOLYLINE") (setq str (1+ npt)) (setq start (1+ npt) str1 (strcat "" (itoa start)) str2 "" ) (setq ent (ssname selset indPO) indPO (1+ indPO)) (foreach p (massoc 10 dxflst) (setq npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (cadr p)) ",Y=" (rtos (caddr p)) (strcat model)) file)) (write-line (strcat "Poly." (itoa indPO) ":MD=JT_LIN_L_LG") file) (strcat str1 " au point " (itoa npt)) (while (< (setq start (1+ start)) (1- npt)) (setq str2 (strcat str2 (itoa start) "*R."))) ;;(write-line (strcat str2 (itoa (1- npt))) file) (strcat str2 (itoa (1- npt))) (write-line (strcat "Poly." (itoa indPO) "&L0:*" numpt str1 "*" numpt str2 (itoa (1- npt)) "/" numpt (itoa npt) ) file) ) ;;-------------------------------------------------------------------------- ((= typ "SPLINE") (setq str (1+ npt)) ;(setq indSP (1+ indSP) (setq start (1+ npt) str1 (strcat "" (itoa start)) str2 "" ) (setq ent (ssname selset indSP) indSP (1+ indSP)) ;(write-line (strcat (itoa ind) " Spline") file) ;pour tous les points de lissage de la spline (foreach p (massoc 11 dxflst) (setq npt (1+ npt)) (write-line (strcat numpt (itoa npt) ":X=" (rtos (cadr p)) ",Y=" (rtos (caddr p)) (strcat model)) file)) (write-line (strcat "Spline." (itoa indSP) ":MD=JT_LIN_L_LG") file) (write-line (strcat "Spline." (itoa indSP) "&D0:") file) ;(write-line (strcat str1 " au point " (itoa npt)) file) (strcat str1 " au point " (itoa npt)) (while (< (setq start (1+ start)) (1- npt)) (setq str2 (strcat str2 (itoa start) "%R."))) ;(write-line (strcat str2 (itoa (1- npt))) file) (strcat str2 (itoa (1- npt))) (write-line (strcat "Spline." (itoa indSP) "&L0:*" numpt str1 "*" numpt str2 (itoa (1- npt)) ) file) (write-line (strcat "Spline." (itoa indSP) "&L1:/R." (itoa npt) ) file) ) ;;-------------------------------------------------------------------------- ) ;fin de cond ) ;fin de while (close file) ;fermeture du fichier ) ;fin de progn ) ;fin de if ) ;fin de if (princ) ) ;; MASSOC ;; Retourne la liste de toutes les entrées du ;; code spécifié d'une liste d'association ;; ;; Arguments ;; code : le code de groupe pour les entrées ;; lst : la liste d'association (defun massoc (code lst / ret) (foreach n lst (if (= (car n) code) (setq ret (cons n ret)) ) ) (reverse ret) )
-
Bonjour à tous... Tout d'abord je tiens à remercier "Gile" particulièrement pour toute l'aide qu'il ma apportée, l'enseignement et l'autoréflection qui mes parfois douloureuse mais très intellectuellement utile. Et grace à ce forum très instructif et à tous ces intervenants j'évolue, je crois dans le bon sens, MERCI à TOUS... Pour le moment j'ai compris en partie mon avant dernier probleme : En fait au lieu de : (foreach p (massoc 11 dxflst) pour la spline; Il fallait : (foreach p (massoc 10 dxflst) d'ou ma partie non comprise : pourquoi massoc 10 et 11 ? A part cela les problemes de parentheses sont réglés. En revanche j'ai trouvé encore un hic : Pour mes Polylignes je souhaite obtenir un résultat différent, du genre : * (1°pt) % (2°pt) * (3°pt) % (4°pt) / (5°pt) en clair : Poly.1: *1%2*3%4/5 Je pense que c'est au niveau du while : (while (< (setq start (1+ start)) (1- npt)) (setq str2 (strcat str2 (itoa start) "*"))) Peu etre faut-il créer une variable str3 ? Apres avoir chercher je souhaiterai encore un coup de pouce sur ce coup la. Merci par avance..
-
Salut, Tout d'abord Merci pour ce temps passé a mon egart. Je suis presque a la fin mais... Je ne comprend pas pourquoi le code fonctionne bien avec la spline et pas avec les polylignes !! Des que je suprime le passage polyligne il y a aucun probleme et des qu'il est la : Il me marque : " erreur: parenthèse fermante supplémentaire en entrée " et quand je selectionne une polyligne il manque dans le fichier les points !? donc je suppose que cela se passe dans les : " file ))" pouvez vous m'aider il y a quelque chose qui n'est pas bon mais ou , la est mon probleme. Comme a mon habitude j'ai retourné le probleme dans tous les sens, merci d'avance pour votre aide. Voici une partie du code ! ((= typ "CIRCLE") (setq ent (ssname selset indC) indC (1+ indC)) ;(write-line (strcat (itoa indC) " Cercle") file) (setq pt (cdr (assoc 10 dxflst)) npt (1+ npt)) (write-line (strcat (itoa npt) ":X=" (rtos (car pt)) ",Y=" (rtos (cadr pt)) (strcat model) ) file)) ;;-------------------------------------------------------------------------- ((= typ "LWPOLYLINE") (setq str (1+ npt)) (setq start (1+ npt) str1 (strcat "" (itoa start)) str2 "" ) (setq ent (ssname selset indSP) indSP (1+ indPO)) (foreach p (massoc 11 dxflst) (setq npt (1+ npt)) (write-line (strcat (itoa npt) ":X=" (rtos (cadr p)) ",Y=" (rtos (caddr p)) (strcat model)) file)) (write-line (strcat "Abod." (itoa indPO) ":MD=EPA_313") file) (write-line (strcat "Abod." (itoa indPO) "&D0:") file) ;(write-line (strcat str1 " au point " (itoa npt)) file) (strcat str1 " au point " (itoa npt)) (while (< (setq start (1+ start)) (1- npt)) (setq str2 (strcat str2 (itoa start) "*"))) ;(write-line (strcat str2 (itoa (1- npt))) file) (strcat str2 (itoa (1- npt))) (write-line (strcat "Abod." (itoa indPO) "&L0:*" str1 "*" str2 (itoa (1- npt)) ) file) (write-line (strcat "Abod." (itoa indPO) "&L1:/" (itoa npt) ) file) (write-line (strcat "Abod." (itoa indPO) "&V1:Meth=MdMoL") file) file)) ;;-------------------------------------------------------------------------- ((= typ "SPLINE") (setq str (1+ npt)) ;(setq indSP (1+ indSP) (setq start (1+ npt) str1 (strcat "" (itoa start)) str2 "" ) (setq ent (ssname selset indSP) indSP (1+ indSP)) ;(write-line (strcat (itoa ind) " Spline") file) ;pour tous les points de lissage de la spline (foreach p (massoc 11 dxflst) (setq npt (1+ npt)) (write-line (strcat (itoa npt) ":X=" (rtos (cadr p)) ",Y=" (rtos (caddr p)) (strcat model)) file)) (write-line (strcat "Abod." (itoa indSP) ":MD=EPA_313") file) (write-line (strcat "Abod." (itoa indSP) "&D0:") file) ;(write-line (strcat str1 " au point " (itoa npt)) file) (strcat str1 " au point " (itoa npt)) (while (< (setq start (1+ start)) (1- npt)) (setq str2 (strcat str2 (itoa start) "*"))) ;(write-line (strcat str2 (itoa (1- npt))) file) (strcat str2 (itoa (1- npt))) (write-line (strcat "Abod." (itoa indSP) "&L0:*" str1 "*" str2 (itoa (1- npt)) ) file) (write-line (strcat "Abod." (itoa indSP) "&L1:/" (itoa npt) ) file) (write-line (strcat "Abod." (itoa indSP) "&V1:Meth=MdMoL") file) file)) ;;-------------------------------------------------------------------------- ;fin de cond ) ;fin de while (close file) ;fermeture du fichier ) ;fin de progn ) ;fin de if ) ;fin de if (princ) )
-
Je souhaite seulement ecrire une ligne suplementaire qui donne les numeros des points intermédiaires J'ai besoin qu'il soient marqué malgrès que c'est évident.
-
Peu etre avec la fonction : Nth ?
-
Encore MErci J'ai eu du mal a comprendre l'enregistrement de la variable "npt" dans la variable "str". Mais grace a cela j'ai appris plein de choses comme "file1" et "file2" et beaucoup d'autres... Maintenant j'ai bien mon souhait : Spline n°3 ,Pt de départ n°16 et le pt d'arrivé n°23. Et pour finir je me suis battu presque toute la nuit sans obtenir de résultat pour ecrire une ligne après qui résume les points intérmédiaires sachant que d'une spline a l'autre il n'y a pas le meme nombre de pts. genre : Passant par les point n° : 17,18,19,20,21,22 Cela cloturai ce code, il ne me resterai qu'a reproduire ce cas aux autres entité du genre. Après cette nuit fastidieuse j'espere beaucoup obtenir une aide délivrante. Merci d'avance pour votre aide.
-
Voila je souhaite ressortir a la fin de chaque spline un résumé qui dit : Spline n°1 (itoa indSP) débute au point n° : ( itoa ?????) et fini au point n° ( itoa ?????) Mon probleme actuel est que j'obtient seulement le dernier point de la spline normale puisque j'ai ecris : (itoa npt) au lieu du 1er point . Je souhaite ecrire tous dans le meme fichier mais sur plusieurs lignes, genre : 1:X=4649.8419,Y=2189.5361 2:X=3973.0397,Y=2185.9965 3: 8:X=1265.831,Y=2147.0609 9:X=1074.4838,Y=2147.0609 ARC N°1 du point 1 au point 9 Je ne sais pas comment obtenir le n° du premier point ? ((= typ "SPLINE") (setq ent (ssname selset indSP) indSP (1+ indSP)) (foreach p (massoc 11 dxflst) (setq npt (1+ npt)) (write-line (strcat (itoa npt) ":X=" (rtos (cadr p)) ",Y=" (rtos (caddr p))) file)) (write-line (strcat "N°Spline:" (itoa indSP) "N° du 1er Point :" (itoa ??????????? )) ) file) file))
-
Salut, En fait j'ai beau tout essayé je ne comprends pas vraiment , En fait, je crois que je recherche le nom de la premiere entité qui se nomme : "npt" dans le jeu de selection indSL, car actuellement je recupere le nom de la derniere entité : Il existe pas une fonction ou une formule mathématique pour cela ? :( Voila ce que sa donne : ( le 9 est pas bon ) 1:X=4649.8419,Y=2189.5361 2:X=3973.0397,Y=2185.9965 3: 8:X=1265.831,Y=2147.0609 9:X=1074.4838,Y=2147.0609 ARC N°1 du point [u] 9 [/u] au point 9 :D Alors que je souhaite : (le 1 est bon ) 1:X=4649.8419,Y=2189.5361 2:X=3973.0397,Y=2185.9965 3: 8:X=1265.831,Y=2147.0609 9:X=1074.4838,Y=2147.0609 ARC N°1 du point [u] 1 [/u] au point 9 ;) Comment dois-je faire ? Merci
-
Et voila mon nouveau blocage : J'ai réussi avec les lignes car il y avait seulement 2 poinrs comme ceci : (itoa (- npt 2) mais la avec un nombre de points différent, quelle astuce existe-il pour appliqué a itoa la première valeur de npt ? ((= typ "SPLINE") (setq ent (ssname selset indSP) indSP (1+ indSP)) (foreach p (massoc 11 dxflst) (setq npt (1+ npt)) (write-line (strcat (itoa npt) ":X=" (rtos (cadr p)) ",Y=" (rtos (caddr p)) (strcat model)) file)) (write-line (strcat "Abod." (itoa indSP) ":MD=EPA_313") file) (write-line (strcat "Abod." (itoa indSP) "&D0:") file) (write-line (strcat "Abod." (itoa indSP) "&L0:*" [b] (itoa (- npt 2))[/b] ) file) file)) Merci d'avance pour cette réponse qui me manque...
-
MERCI pour ce cours magistral que je garde précieusement. :) J'ai pu intégré cette nouvelle fonction avec le résultat que je souhaitais : ((= typ "LINE") (setq ent (ssname selset indL) indL (1+ indL)) Je continu à faire évolué ce code que je mettrai à disposition pour ceux que sa intéresse (si il y en a ?)
-
Après avoir essayé de comprendre cette fonction "Cond" j'ai beaucoup de mal a pouvoir l'adapté a mon cas. Une piste serait très aprécié... ;)
-
MERCI je pensai bien que j'étais pas loin et comme toujours ca parrait tellement plus simple quand on a la réponse et pourtant j'ai vraiment buché dessus. MERCI
-
Pour ma part le "g" est toujours la. Bizarre alors que pour les degrés il n'y a rien :(
-
En fait apres tous ces changements qui me plaisent j'aimerai pouvoir numéroté les entités dans une liste indépendante: Ligne 1, Ligne 2 Polyligne 1; polyligne 2 etc... J'ai essayé de doublé le while mais sans succès, est ce possible ? Et si oui comment ? indA 0 ; initialisation de l'indice pour Arc indC 0 ; initialisation de l'indice pour Cercle indL 0 ; initialisation de l'indice pour Ligne indPO 0 ; initialisation de l'indice pour Polyligne indSP 0 ; initialisation de l'indice pour Spline ;; boucle tant qu'il y a des entités dans le jeu de sélection (while (setq ent (ssname selset ind)) (setq dxflst (entget ent) ; liste des données DXF typ (cdr (assoc 0 dxflst)) ; type d'entité ind (1+ ind) ; incrémentation de l'indice ) (while (setq ent (ssname selset indL)) (setq dxflst (entget ent) ; liste des données DXF typ (cdr (assoc 0 dxflst)) ; type d'entité indL (1+ indL) ; incrémentation de l'indice ) dans ce Genre La ? Merci
-
Je dois pas etre tres loin mais apres avoir tourner tout les elements dans tout les sens rien ne marche a part que tout disparait. (strcat (vl-string-right-trim (angtos angl1 2 4) "g")) un peu d'aide me remonterai le moral . Merci
-
Bonjour a tous... J'ai une question sans avoir la réponse: Je souhaite obtenir un angle avec la fonction ANGTOS mais je souhaite un résultat en grade sans le petit "g" apres le résultat, comme pour les degres ou il affiche rien. (setq angl1 (angle pt4 pt5)) (angtos angl1 2 4) Le 2 corresponds au format d'édition en grades Le 4 corresponds bien au nombre de chiffre Merci de me répondre si vous connaissez la réponse a ma question.
-
Bonjour a tous... Quel utilitaire vous parait le mieux pour écrire des lignes de code en lisp. Il serait bien qu'il aide ou propose des choix judicieux en couleur pour les parenteses etc... Merci d'avance pour vos réponse.. :question:
-
Merci Gile j'ai pu testé grace a ton code Instopo http:// http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=22459#pid97395 Tous est parfait et Encore Merci
-
Merci j'avais quelques instant pensé a cette solution mais je suis passé a coté maintenant que vous me l'avez mis devant les yeux cela me parait tellement evident que j'ai l'air d'etre vraiment tres stupide. Merci je vais me battre maintenant pour testé le résultat comme precedement conseillé. l'import des points exporté
