Arcasdk
Membres-
Compteur de contenus
279 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Arcasdk
-
Coucou, tu as ce site là pour savoir à quoi correspond les codes DXF. C'est rangé par type d'entités. http://www.autodesk.com/techpubs/autocad/acad2000/dxf/entities_section.htm
-
Coucou pour répondre à ta question..... ton erreur vient de ta première ligne de commande (defun c:eaa ([surligneur]/js[/surligneur] i1 ent lent typent) Tu n'as pas mis d'espace entre "/" et "js" Voilà [Edité le 26/3/2009 par Arcasdk]
-
Vraiment bien foutu... et en plus je crois bien que c'est le seul site de vidéo que j'arrive à lire au taf... Cool :cool:
-
Merci (Gile) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ; Substituer deux valeurs d'attributs ; ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:coto (/ ent ename objid) (vl-load-com) ;SELECTION DU PERMIER ATTRIBUT (setq ename (vla-get-ObjectId (vlax-ename->vla-object (car (nentsel))))) (setq ename (itoa ename)) ;SELECTION DU DEUXIEME ATTRIBUT (while (not (setq ent (car (nentsel "\nEt automatiser lequel ??"))))) (setq ent (vlax-ename->vla-object ent)) ;SUBSTITUTION (setq objid (strcat "%<\\AcObjProp Object(%<\\_ObjId " ename ">%).TextString>%")) (setq paire (cons 1 objid)) (vla-put-TextString ent objid) (command "regen") )
-
Merci Gile Ben voilà mon code. Ça tourne mais il semblerait que le numéro objid ne soit pas le bon. Il me donne ça -> 1903203888 Alors qu'il me faut ça -> 1903203968 (defun c:coto (/ ent2 ename prop final) (vl-load-com) ;; conversion hexadécimal -> décimal (patrick_35) (defun dec (n / r s) (if (= (type n) 'INT) (setq n (itoa n)) ) (setq r 0) (foreach s (vl-string->list (strcase n)) (setq r (+ (lsh r 4)(- s (if (<= s 57) 48 55)))) ) ) ;; Argument : un ename (defun ename->objectID (ename) ((lambda (str) (dec (vl-string-right-trim ">" (substr str (+ 3 (vl-string-search ":" str))) ) ) ) (vl-princ-to-string ename) ) ) ;SELECTION DU PERMIER ATTRIBUT (setq ename (vla-get-ObjectId (vlax-ename->vla-object (car (entsel))))) (setq ename (rtos ename)) ;SELECTION DU DEUXIEME ATTRIBUT (while (not (setq ent2 (nentsel "\nEt automatiser lequel ??")))) ;SUBSTITUTION (setq final (strcat "%<\\AcObjProp Object(%<\\_ObjId " ename ">%).TextString>%")) (setq paire (cons 1 final)) (setq ent2 (car ent2)) (setq prop (entget ent2)) (setq ent2 (subst paire (assoc 1 prop) prop)) (entmod ent2) ) ;%<\AcObjProp Object(%<\_ObjId 1903203968>%).textstring>%
-
Personne ne sait si le signe "environ" existe...en code ascii Le "=" mais avec la barre du dessus en vague?? merci
-
Bonjour, Pour pouvoir faire une petite routine avec les champs dynamiques, j'ai besoin de savoir comment on récupère de genre d'information.. %<\AcObjProp Object[b](%<\_ObjId 2120014704>%)[/b].TextString>% Merci bcp. [Edité le 18/3/2009 par Arcasdk]
-
Moi j'avais fais ce petit programme ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Permet de créer une planche contenant tous les fichiers présent dans ;; ;; dans une destination donnée ;; ;; ;; ;; ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:scr (/ fic lst n x y w chemin pos name alpha dcx dcy dct nbc); Pour lancer le programme, Charger le .lsp, et taper scr dans la ligne de commande d'autocad (setq x 0 y 0) ;;Variables ci dessous à modifier si nécessaire (setq dcx 200 dcy 200 dct 10 nbc 11) ;;dcx = Taille des cases en x ;;dcy = Taille des cases en y ;;dct = Taille de la case contenant le texte en y ;;nbc = Nombre de colonne (vl-load-com) ;;Partie du programme servant à selectionner le dossier contenant tous les fichiers *.dwg (if (setq fic (getfiled "Sélectionnez un fichier cible: " "" "dwg" 16)) (progn (setq lst (acad_strlsort (vl-directory-files (vl-filename-directory fic) "*.dwg" 1)) n 0) ;;Compte le nombre de bloc (setq w 0) (while (nth w lst) (setq w (+ w 1))) (princ "\n") (princ w) (princ "\n") ;;Compte le nombre de bloc (FIN) (while (nth n lst) (setq chemin (strcat (vl-filename-directory fic) "\\" (nth n lst)) pos (list x y) ;;Recherche du nom de fichier et insertion du bloc size (strlen (nth n lst)) alpha (- size 4) name (substr (nth n lst) 1 alpha )) (setvar "CLAYER" "0") (command "_insert" chemin pos "1" "" "" "" "" "" "" "" "" "" "" "" "" "" "") ;;Positionnnement et Ecriture du texte (setq y (+ y (+ (/ dcy 2) (/ dct 2))) pos (list x y 0.0)) (setvar "CLAYER" "TEXTE") (command "texte" "j" "MC" pos "4" "" name "");; 4 est la taille de la police du nom de bloc (setq y (- y (+ (/ dcy 2) (/ dct 2))) pos (list x y 0.0)) ;;Suite du programme (Modification des positions et bouclage) (setq x (+ x dcx)) (setq n (+ n 1)) (if (= x (* nbc dcx)) (progn (setq y (+ y (+ dcy dct)) x 0 pos (list x y 0.0)) ) ) ) ;;Tracer les droites horizontales (setq n 0 x 0 y (- 0 (/ dcy 2)) pos (list x y 0.0)) (setvar "CLAYER" "CACHE") (command "droite" "h" pos "") (while (/= n (+ nbc 1)) (setq y (+ y dcy) pos (list x y 0.0)) (command "droite" "h" pos "") (setq y (+ y dct) pos (list x y 0.0)) (command "droite" "h" pos "") (setq n (+ n 1)) ) ;;Tracer les droites verticales (setq n 0 x (- 0 (/ dcx 2)) y 0 pos (list x y 0.0)) (while (/= n (+ nbc 1)) (command "droite" "v" pos "") (setq x (+ x dcx) pos (list x y 0.0) n (+ n 1)) ) ) ) ) [Edité le 17/3/2009 par Arcasdk]
-
J'étais sur une version 2009. J'ai bien eu la fenêtre "Charger automatiquement au démarrage ?" Par contre pour celle de la documentation. Je ne pense pas l'avoir vu. Je vais ré-essayer.... Après tests. Non y a pas de fenêtre de documentation. Mais la commande fonctionne quand même. En revanche si je ferme autocad.... Le programme se décharge et je doit relancer la commande "dialog-setup". Est ce quelqu'un a déjà essayé cette macro sur une 2009? Merci... [Edité le 25/3/2009 par Arcasdk]
-
Cela fonctionne néanmoins au lancement de la commande dialog-setup dans la ligne de commande, j'ai eu un message d'erreur....Est ce que c'est grave docteur Commande: dialog-setup netload Nom du fichier d'assemblage: LispDialog Commande: System.InvalidCastException: Le cast spécifié n'est pas valide. à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.Invoke(MethodInfo mi, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.InvokeLisp(); erreur: Demande ADS erronée
-
Renommer un bloc (A$C3056...) par un nom plus explicite.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Débuter en LISP
et oui j'essaie de tenir tout ça au propre..... ;) -
Renommer un bloc (A$C3056...) par un nom plus explicite.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Débuter en LISP
Eh ben, après tout ce temps.... Comment se fait il que tu sois tombé dessus???? Bravo pour la correction en tout cas!! -
Interrompre une commande en LISP
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Merci Bruno-T On peut trouver la réponse à mon problème ici -
Je pense avoir trouvé, en fait c'est dans la justification du texte que cela se passe. Si le texte n'est pas justifié à gauche, les champs de position sont grisés. Merci à toi didier
-
Bon ben j'ai osé.... J'ai édité le fichier .cui courant avec un éditeur de texte. j'ai ouvert aussi le AutoCAD.cui qui été vierge de modifications. J'ai copié collé, juste les menus contextuels qui m'intéressait et j'ai ré-ouvert autocad. A première vu tout fonctionne. J'ai bien vu les avertissements de Monsieur Autodesk en début de fichier mais bon, jusque là ça va.
-
Bonjour, j'ai fais quelques modifs dans le menu édition des menus contextuels. j'ai changé les alias...et maintenant le menu édition à disparu...... :casstet: pourtant quand je clic droit dans l'espace objet. le menu apparait toujours avec les modifs que j'avais apporté. Je me dis, pas de problème, je recharge le menu édition de AutoCAD.cui, il me dit qu'il existe déjà (même si je ne le vois plus) donc je remplace tout. Et quand je fais clic droit. c'est toujours le menu que j'avais modifié qui apparait.... :casstet: Où est ce qu'autocad sauvegarde ça??????? Que faire?
-
Type de ligne (Type flexible)
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Oui effectivement, il y a des fautes (que je n'avais pas faites dans mes fichiers) Ce n'était pas la clef 10 mais 12 que j'utilisais. Et apparemment mon erreur venait des titres qui n'étaient pas en majuscule. maintenant tout va bien echltp 1 http://www.hiboox.fr/go/images/informatique/flexible-autocad,923dcf1b8ef703096a19b0bd32c72a8a.jpg.html voici le code du fichier .lin *FLEXABCD, Flexible A,0,-1,[FLEXA,FLEXA.shx,x=-2,s=0.5],-1, [FLEXB,FLEXB.shx,x=-1.5,y=-1.5,s=0.5],-1, [FLEXC,FLEXC.shx,x=-1,s=0.5],-1, [FLEXD,FLEXD.shx,x=-0.5,y=1.5,s=0.5],-2 en une ligne bien sûr des .shp *250,5,FLEXA 1,10,(3,042),0 *251,5,FLEXB 1,10,(3,062),0 *252,5,FLEXC 1,10,(3,-042),0 *253,5,FLEXD 1,10,(3,-022),0 allez je fais essayer maintenant avec 8 morceaux. Mon flexible n'en sera que plus jolie!!!! ;-) Merci encore Bonuscad -
Type de ligne (Type flexible)
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Oui, c'est ce que j'ai vu en parcourant les posts. J'ai un retour chariot à chaque fin de ligne et aucun espace..... -
Type de ligne (Type flexible)
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Merci beaucoup Bonuscad, j'ai réussi à faire ce que je voulais en me basant sur tes exemples. En revanche, j'ai essayé de créer une période en 4 arcs. Et y a rien à faire. Quand je charge le .lin il y a une erreur. pourtant le "compiler" fonctionne et le "_load" aussi. Fichier .LIN *FlexABCD, Flexibles A,0,-1.5,[FlexA,FlexA.shx],0,-1,[FlexB,FlexB.shx],0,-1,[FlexC,FlexC.shx],0,-1,[FlexD,FlexD.shx],0 Fichiers .SHP *250,6,FlexA 1,10,(3,3,-53),0 *251,6,FlexB 1,10,(3,-3,-53),0 *252,FlexC 1,10,(3,-3,53),0 *253,6,FlexD 1,10,(3,3,53),0 J'ai laissé tomber j'ai déjà quelque chose de très positif. [Edité le 11/3/2009 par Arcasdk] -
Type de ligne (Type flexible)
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Bon après plus deux jours de dur labeur....Eh bien je n'arrive toujours rien à faire. je pense que mon fichier .shp n'est pas bon. *140,14,FLEXIBLE 1,13,(30,0,127),(30,0,-127),(0,0),0 pourtant j'ai lu tous les post du forum et l'aide en long en large et en travers.....Rien y fait. J'arrive à le compiler. Pas d'erreur... Mais quand je lance la commande "FORMES" pour vérifier si ca passe, il me demande Entrez le nom de la forme ou [?]: j'entre flexible et il me répond: Forme FLEXIBLE non trouvée. Je ne sais plus quoi faire. Quelqu'un aurait une idée Siouplait Merci Bonuscad pour ta réponse qui m'a permis de comprendre le langage du type de ligne.... -
Bonjour, je souhaite créer un type de ligne (l'idéal) spécifique ou alors passer par une macro qui me dessine schématiquement un flexible. Dans nos plans nous représentons un flexible avec des demis cercles reliés les uns aux autres. Lorsque c'est linéaire, il n'est pas très difficile de réaliser la macro. Là où ça se complique c'est quand on souhaite le faire avec des courbes. J'aimerai créer le flexible lorsque je clic sur une spline (ce serait le mieux) ou une polyligne. Si vous n'avez pas bien saisi la forme de mon flexible voici une ptite explication. Prendre une ligne, Dessiner un cercle sur cette ligne de façon à couper le cercle en deux partie égale, Copier ce cercle et le coller juste à coté pour que les "quadrants" soit confondus Supprimer la partie inférieur du cercle de gauche et la partie supérieur du cercle de droite. Copier ces deux demis cercles les uns à la suite de l'autre et voilà. J'ai cherché dans le forum mais je n'ai rien trouvé de semblable. Pourtant cela à déjà du être fait quelque part, j'en suis sûr. Merci beaucoup
-
Ne pas renseigner les champs pendant une insertion
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
J'ai honte..... :mad: C'était si simple.... Trop merci bseb67 -
Ne pas renseigner les champs pendant une insertion
Arcasdk a posté un sujet dans Pour aller plus loin en LISP
Bonjour, je suis légèrement embêté, car j'ai un bout de code qui fonctionne mais qui n'est pas jolie du tout. Pour mettre un plan d'ensemble à jour (qui n'est constitué que de blocs) je lance une routine qui ré-insère les blocs contenu dans un dossier spécifique. De cette façon si des blocs sont différents Autocad les mettra à jour. Le problème est que lorsque j'insère un bloc avec des attributs, il me demande de renseigner les champs. --> Chose inutile puisque la mise à jour est faite. Je n'ai plus besoin de terminer la commande. Ne pouvant pas l'annuler sans mettre fin à la routine en cours. donc je fini la commande, j'insère le bloc en 0.0, et je valide x fois un champ vide pour passer à la suite. J'aimerai supprimer les x fois. Voici un bout de code -
J'ai trouvé, il faut activer l'aide active... Ça existe sur 2007 non? Et le cadenas n'y apparait pas???
-
Je ne connais pas l'existence de ce fameux cadenas. Pourtant j'ai 2008 Lorsque je m'aperçois que ma fenêtre n'étais pas verrouiller, alors je fais un UNDO et après j'utilise aussi les commande verr, et unverr que j'ai associé à des boutons. Pourrai-tu me donner le nom que donne autocad à cette commande???? Bonne journée. [Edité le 3/2/2009 par Arcasdk]
