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
-
Oui effectivement bryce, en double-cliquant sur le bon attribut, je gagne une étape mais j'ai vraiment envie de toute les brûler. Jifi, j'ai bien cherché mais je ne trouve rien qui touche à cela.... :/ Je me suis quand même décidé à utiliser le fonction SUBST. Mais même avec une macro qui ne présente pas d'erreur, il n'y a rien qui change... (defun c:dda (/ tex newtex paire) (setq tex (entget(car(nentsel))) (setq newtex (getstring)) (setq paire (cons 1 (strcat "\\W0.75000;" newtex))) (setq tex (subst paire (assoc 1 tex) tex)) (entmod tex) (command "regen") ) j'ai uploadé un plan avec ma référence de bloc insérer. Si vous êtes curieux, vous pouvez y jeté un oeil. Merci encore. Dessin2.zip
-
Avec mat, il y a toujours autant de clic à faire pour juste éditer un attribut et de plus, il renomme tout les blocs portant le nom "indice". Ca va pas! Merci quand même.
-
Bonjour, et meilleurs voeux à tous, Je me rapproche de CadXP pour un petit problème qui me prend quand même pas mal de temps quand on a 650 plans à gérer. Nous travaillons sur Inventor et le client nous réclame des plans autocad. Pas de problème, inventor convertit ca très très bien. Autocad reconnait toutes les entités, les cercles, les lignes, les blocs, les cotations..... Sauf que, quand je cherche à éditer un des attributs de mon bloc "Indice" par exemple, si je passe par la fenêtre de propriété (ce que je fais d'habitude avec un bloc autocad classique) je peux voir les attributs de mon bloc. Si je cherche à changer la date, je ne peux pas la changer directement dans le champ de la fenêtre des propriétés. http://img80.imageshack.us/img80/7341/001uf.png. Je dois d'abord cliquer sur les "..." et alors une nouvelle fenêtre s'ouvre http://img14.imageshack.us/img14/5960/002bco.png. Ensuite je dois re-sélectionner l'attribut à éditer, recliquer sur "..." et enfin seulement il m'est possible de modifier la date. valider. OK. c'est fait!!! Bref bcp de chose pour pas grand chose. Ce matin j'ai bien essayé de faire une macro avec ddedit, ou attedit ou tblobjname mais je passe tout le temps par ces foutu fenêtres. Avec (entget(car(nentsel))) j'ai réussi à sélectionner directement mon objet mais je n'ai pas envie de passer par un (subst cons assoc) si vous voyez ce que je veux dire. J'aimerai avoir le même genre de réaction que quand on lance ddedit sur un TEXT ou un MTEXT directement aprés avoir lancé la commande puis sélectionner l'attribut. Des idées? Merci à tous
-
Non non, mon vocabulaire a été judicieusement choisi. Il ne s'agit pas là d'attributs mais bel et bien de texte. de "MTEXT" pour être exact. Voici ce que j'essayer de faire (defun c:test (/ blk js paire) (setq blk (tblobjname "BLOCK" "Liste de pièces")) (while (setq blk (entnext blk)) (setq js (entget blk)) (if (and (= (cdr (assoc 0 js)) "MTEXT")(= (cdr (assoc 1 js)) "S235JR")) (progn (setq paire (cons 1 "S275JR")) (setq js (subst paire (assoc 1 js) js)) (entmod js)) ) ) (command "regen") ) En revanche j'ai essayé de lancer cette commande dans un script et il ne la trouve pas. (write-line "(command \"test\")" fscr) Ma commande test est pourtant bien chargé à l'ouverture du plan.... Une idée [Edité le 5/7/2011 par Arcasdk]
-
Bonjour, Est ce que "tblsearch" est la commande à utiliser pour modifier les textes d'un bloc sans le décomposer. mon "ssget" ne fonctionne que si mon bloc est décomposé. Mais je préférerai le laisser tel qu'il est. Merci
-
Afficher le chemin du document actif.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Merci à tous -
Afficher le chemin du document actif.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Ah cool merci. Et en vlisp pour avoir le nom de fichier....? -
Bonjour mes gens, je cherche à afficher dans la boite de dialogue, le chemin de mon document actif. Il existe bien évidement la check-box dans les options pour l'afficher dans le titre de ma fenêtre mais mon chemin est tellement long que je vois pas tout. J'ai donc décidé de me lancer dans le V-lisp et j'ai pondu un truc dans le genre qui ne fonctionne pas. Est ce que je chauffe ou pas du tout....? (defun c:way (/) (vl-load-com) (setq lst (vl-filename-directory(vla-get-activedocument(vlax-get-acad-object)))) ) Merci
-
Rapport d\'erreur qui stop le Lisp
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Coucou, je n'ai pas inclus mon fichier excel ni mon fichier dcl... si cela t’intéresse, file moi ton adresse mail. Chao -
Rapport d\'erreur qui stop le Lisp
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Merci à tous, ma macro fonctionne. Si il y des curieux voilà le code (defun c:vish (/ memoire resultat s ch_dn xl_wks xl xl_fichier xl_classeur xl_feuille n cell_diam rng_dn val_dn list_lg val_lg p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 k s l px pz hyp adj pu py pw pz px lg lf hautext postext nomvis) (vl-load-com) ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Communiquer avec EXCEL;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ;(setq ch_dn "M16") ;(setq ch_lg "M16") (setq xl (vlax-get-or-create-object "Excel.Application")) (vlax-import-type-library :tlb-filename "c:/program files/microsoft office/office/excel9.olb" :methods-prefix "xl-" :properties-prefix "xlp-" :constants-prefix "xlc-") (setq xl_wks (vlax-get xl "workbooks")) (setq xl_fichier (xl-open xl_wks "J:\\Boulot\\Documents\\Autocad\\Lisp\\visserie\\Vis_H.xls")) (vla-put-visible xl 1) (setq xl_classeur (vlax-get xl_fichier "Sheets")) (setq xl_feuille (xlp-get-item xl_classeur "Feuil1")) (setq n 3) (setq cell_diam (strcat "B" (rtos n))) (setq rng_dn (xlp-get-range xl_feuille cell_diam)) (setq val_dn (vlax-variant-value (xlp-get-value rng_dn))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Trouver les val_dn du dn dans le tableau excel;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq list_dn '("M3" "M4" "M5" "M6" "M8" "M10" "M12" "M16" "M20" "M24" "M30" "M36" "M42")) (defun lire_excel (/ list_lg) (setq ch_dn (nth (atoi ch_dn) list_dn) n 3) (while (/= val_dn ch_dn) (progn (setq n (+ n 1)) (setq cell_diam (strcat "B" (rtos n))) (setq rng_dn (xlp-get-range xl_feuille cell_diam)) (setq val_dn (vlax-variant-value (xlp-get-value rng_dn))) ) ) (setq memoire n) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Lire les longueurs dispo pour les dn spécifiées;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (while (= val_dn ch_dn) (progn (setq cell_lg (strcat "A" (rtos n))) (setq rng_lg (xlp-get-range xl_feuille cell_lg)) (setq val_lg (vlax-variant-value (xlp-get-value rng_lg))) (setq list_lg (cons val_lg list_lg)) (setq n (+ n 1)) (setq cell_diam (strcat "B" (rtos n))) (setq rng_dn (xlp-get-range xl_feuille cell_diam)) (setq val_dn (vlax-variant-value (xlp-get-value rng_dn))) ) ) (setq list_lg (reverse list_lg)) (start_list "list_lg") (mapcar 'add_list list_lg) (end_list) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;DCL;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; charger de la boite de dialogue (setq dcl_id (load_dialog "windows.dcl")) (if (not (new_dialog "windows" dcl_id)) (progn (alert "chargement impossible") (exit) ) ) ;; Remplir la liste box "list_dn" (setq positiondiam 0) (defun liste_dest() (start_list "diam") (mapcar 'add_list list_dn) (end_list) ) (setq resultat 2) (liste_dest) (while (and (/= resultat 1)(/= resultat 0)) (action_tile "diam" "(setq ch_dn $value)(lire_excel)") (action_tile "list_lg" "(setq ch_lg $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq resultat (start_dialog)) ) (if (eq resultat 1) (progn ;; récupération des données dans excel pour dessiner la vis (setq dn (strcat "B" (itoa (+ (atoi ch_lg) memoire)))) (setq rng_dn (xlp-get-range xl_feuille dn)) (setq dn (vlax-variant-value (xlp-get-value rng_dn))) (setq dn (atoi (vl-string-trim "M" dn))) (setq l (strcat "E" (itoa (+ (atoi ch_lg) memoire)))) (setq rng_dn (xlp-get-range xl_feuille l)) (setq l (vlax-variant-value (xlp-get-value rng_dn))) (setq lf (strcat "F" (itoa (+ (atoi ch_lg) memoire))))e (setq rng_dn (xlp-get-range xl_feuille lf)) (setq lf (vlax-variant-value (xlp-get-value rng_dn))) (setq s (strcat "C" (itoa (+ (atoi ch_lg) memoire)))) (setq rng_dn (xlp-get-range xl_feuille s)) (setq s (vlax-variant-value (xlp-get-value rng_dn))) (setq k (strcat "D" (itoa (+ (atoi ch_lg) memoire)))) (setq rng_dn (xlp-get-range xl_feuille k)) (setq k (vlax-variant-value (xlp-get-value rng_dn))) ;;Dessin de la vis (setq p1 (list 0 (/ dn -2))) (setq p2 (list (- l (/ dn 10))(/ dn -2))) (setq p3 (list l (+(/ dn -2)(/ dn 10)))) (setq p4 (list l (-(/ dn 2)(/ dn 10)))) (setq p5 (list (- l (/ dn 10))(/ dn 2))) (setq p6 (list 0 (/ dn 2))) (setq p7 (list 0 (/ (* -1.15 s) 2))) (setq p8 (list 0 (/ (* 1.15 s) 2))) (setq p9 (list (- (/ dn 10) k)(/ (* 1.15 s) 2))) (setq hyp (/ (/ s 2) (cos (/ pi 6)))) (setq adj (* (cos (/ pi 3)) hyp)) (setq p10 (list (- 0 k)(- (/ (* s 1.15) 2) (/ adj 2)))) (setq p11 (list (- (/ dn 10) k)(- (/ (* s 1.15) 2) adj))) (setq p12 (list (- 0 k) 0)) (setq p13 (list (- (/ dn 10) k)(+ (/ (* s 1.15) -2) adj))) (setq p14 (list (- 0 k)(+ (/ (* s 1.15) -2) (/ adj 2)))) (setq p15 (list (- (/ dn 10) k)(/ (* -1.15 s) 2))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (if (not (tblsearch "LTYPE" "CONTINUOUS")) (command "-TYPELIGNE" "CH" "CONTINUOUS" "acadiso.lin" "") ) (command "-calque" "n" "FIN,EPURE" "") (command "-calque" "co" "cyan" "EPURE" "t" "a" "EPURE" "co" "rouge" "FIN" "tl" "continuous" "FIN" "") (setvar "clayer" "0") (command "polylign" p1 p2 p3 p4 p5 p6 "cl" "") (command "polylign" p7 p8 p9 "arc" "s" p10 p11 "s" p12 p13 "s" p14 p15 "li" "cl") (command "polylign" p10 p14 "") (setq px (strcat "@" (rtos (- k (/ dn 10))) "<0")) (command "polylign" p11 px "") (command "polylign" p13 px "") (setq pz (strcat "@" (rtos lf) "<180")) (setvar "clayer" "FIN") (if (/= lf l) (progn (setq lg (/ (/ dn 10)(cos (/ pi 4)))) (setq pw (strcat "@" (rtos lg) "<225")) (command "polylign" p3 pz pw "") (setq pw (strcat "@" (rtos lg) "<135")) (command "polylign" p4 pz pw "") (setq py (list (- l lf)(/ dn -2))) (setq pu (strcat "@" (rtos dn) "<90")) (setvar "clayer" "0") (command "polylign" py pu "") (setvar "clayer" "FIN") (command "polylign" p2 p5 "") ) (progn (command "polylign" p3 pz "") (command "polylign" p4 pz "") (command "polylign" p2 p5 "") ) ) (setvar "clayer" "EPURE") (setq hauttext (/ dn 5)) (setq postext (list (/ dn 10) 0 0)) (if (eq lf l) (setq nomvis (strcat "M" (rtos dn) "x" (rtos l))) (setq nomvis (strcat "M" (rtos dn) "x" (rtos l) "-" (rtos lf)))) (command "texte" "j" "mg" postext hauttext "" nomvis ""))) ) [Edité le 13/9/2010 par Arcasdk] -
Rapport d\'erreur qui stop le Lisp
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
ah cool...... Mais il m'a claqué un gros pavé comme ça....? Ca se lit comment....? Commande: Analyse rétrospective: [0.102] (VL-BT) [1.98] (*ERROR* "type d'argument incorrect: fixnump: \"6\"") LAP+7 [2.92] (_call-err-hook # "type d'argument incorrect: fixnump: \"6\"") [3.86] (sys-error "type d'argument incorrect: fixnump: \"6\"") :ERROR-BREAK.81 "type d'argument incorrect: fixnump: \"6\"" [4.78] (NTH "6" ("M3" "M4" "M5" "M6" "M8" "M10" "M12" "M16" "M20" "M24" "M30" "M36" "M42")) [5.72] (LIRE_EXCEL) LAP+14 [6.67] (# "diam" "6" "" 1 46 83) LAP+17 [7.57] (#) :ENTRY-NAMESPACE.54 (:ENTRY-NAMESPACE) [8.51] (#) [9.48] (_lisplet-apply # #-application-envelope-> nil nil) [10.40] (_lisplet-app-apply # # ("diam" "6" "" 1 46 83)) [11.33] (dcl-call-back ("diam" "6" "" 1 46 83) T) :DCL-ACTION.27 (((:DCL-ACTION "windows" "diam" 1))) [12.24] (START_DIALOG) [13.20] (C:VISH) LAP+811 [14.15] (#) [15.12] (# "(C:VISH)" T #) :CALLBACK-ENTRY.6 (:CALLBACK-ENTRY) :ARQ-SUBR-CALLBACK.3 (nil 0) [Edité le 13/9/2010 par Arcasdk] -
Bonjour à tous, je suis actuellement occupé de faire une petite routine qui dessine des vis en fonction d'une liste excel. Je m'en sort pas trop mal en piochant à droite et à gauche (Merci le mpl de patrcik35). Mais maintenant je rencontre un problème lorsque je teste ma routine en mode pas a pas. A un moment précis il me stoppe ma routine et je n'ai pas de précision sur ce qu'il ne va pas. Je ne vais pas vous coller ma routine entière (sauf si vous me le demander) mais en voici un bout, là où ça coince. (while (and (/= resultat 1)(/= resultat 0)) (action_tile "diam" "(setq ch_dn $value)(lire_excel)") (action_tile "list_lg" "(setq ch_lg $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq resultat (start_dialog))) Et ca plante quand je clic sur la liste de mon dcl Voici le message d'erreur ;;; Copie dans la fenêtre 11:09 AM 9/13/10 (lambda ($KEY $VALUE $DATA $REASON $X $Y) (setq ch_dn $value)(lire_excel) ) ;;; Fin du texte ) Comment faire pour voir la syntaxe qui merde Merci
-
AH merci, je vais aller jeter un oeil.
-
Bonjour à tous, je relance ce sujet faute d'avoir trouvé la réponse dans un autre... Je cherche donc comme mudlmp à rendre une list_box dynamique. Est ce qu'il est possible d'avoir une boite de dialogue avec deux list_box dont la deuxième qui réagit en fonction du choix de la première. http://a.imageshack.us/img27/6100/listbox.jpg Bien sur il me serait possible de le faire en deux boites de dialogue. Mais autant mettre la barre plus haute tout de suite. Bout de code ;; chargement de la boite de dialogue (setq dcl_id (load_dialog "windows.dcl")) (if (not (new_dialog "windows" dcl_id)) (progn (alert "chargement impossible") (exit) ) ) ;; Remplir la liste box "list_dn" (start_list "diam") (mapcar 'add_list list_dn) (end_list) FICHIER DCL windows: dialog { label="Choix de la vis"; spacer; :column { :list_box { label="Choix du DN"; key ="diam"; height=16; width=3; } } spacer; :column { :list_box { label="Liste des vis disponible"; key ="list_lg"; height=10; width=30; } } ok_cancel; } [Edité le 8/9/2010 par Arcasdk]
-
Un grand merci... ;)
-
Ah parfait.... Merci beaucoup Pour ma culture personnelle, qu'est ce que ça donnerai en V-Lisp?
-
Merci (gile) J'ai terminé ma macro. Je voulais rechercher tous les styles où la police est "Arial" et la remplacer par une autre. (Parce que quand je fait un pdf avec l'outil d'autocad "dwg to pdf", il me transforme la police "arial" en petit point). Mais malheureusement la modif ne prend pas .... Aucune erreur pourtant. (defun c:arialto (/) (while (setq ts (tblnext "style" (not ts))) (if (= (cdr (assoc 3 ts)) "ARIAL.TTF") (progn (setq paire (cons 3 "Microsoft Sans Serif.TTF")) (setq ts (subst paire (assoc 3 ts) ts)) (entmod ts) ) ) ) )
-
Bonjour à tous, je cherche un moyen de trouver tous les styles de mon plan qui ont une police égale à "ARIAL". j'étais parti la dessus mais..... (setq js(tblsearch "STYLE" "arial")) ou (setq js(tblsearch "STYLE" (3 . "arial"))) ou (setq js(tblsearch "STYLE" '((3 . "arial")))) et même (setq js (ssget "_X" '((0."style")(3."arial")))) rien y fait... De toute facon je n'ai jamais su l'encadrer la fonction "tblsearch" Merci à tous.
-
Ah cool.... Je n'ai pas bien saisi l'histoire du surlignage.... Le V-Lisp c'est nouveau pour moi... Lorsque je point une cote avec la commande (setq vlo(vlax-ename->vla-object(car(entsel)))) il me répond ça : "#" C'est bon?
-
Coucou tramber , merci pour ta réponse, Non non je parle bien de "arrondi"... donc ce n'est pas le code DXF 1.
-
Bonjour à tous, je cherche un moyen de sélectionner dans un lisp toutes les côtes d'un plan qui sont arrondies. J'ai comparé dans le code DXF de deux côtes (une arrondie, l'autre non) Et je n'ai pas trouvé de différence..... Merci
-
Le site ne fonctionne plus apparemment.... Dommage je l'utilisais souvent!!
-
Salut, Question bête, est ce que tu as bien spécifié le type de fichier ->> .dwt Un .dwt peut se changer en dwg au pire... C'est juste sur ton poste, ou c'est valable sur plusieurs poste....? Fred
-
Retrouver une entité grace au code dxf..
Arcasdk a répondu à un(e) sujet de Arcasdk dans AutoCAD LT 2008
Bon j'ai réussi à régler une partie de mon problème sur cette page... http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=24485#pid105453 J'ai mis la variable à 1. -
Retrouver une entité grace au code dxf..
Arcasdk a répondu à un(e) sujet de Arcasdk dans AutoCAD LT 2008
Les entités qui ont disparues sont devenu des "acad proxy entities"...... Allez savoir comment!!!!
