Aller au contenu

yohan69

Membres
  • Compteur de contenus

    11
  • Inscription

  • Dernière visite

yohan69's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. MERCI ! tout simplement parfait, comme d'habitude ... ça me semblait très difficile, et vous résolvez le prb en quelques lignes ... c'est à se demander si vous avez des limites :D encore merci, j'adore ce site :)
  2. Bonjour, Je cherche un LISP qui supprime tout paramètre dynamique d'un dwg. En clair, j'aimerais éviter d'avoir à "exploser" les blocs dynamiques et/ou rentrer dans l'éditeur de bloc de chaque bloc fixe qui contiennent eux-même des blocs dynamiques à exploser ... En vous remerciant
  3. OFFRE D'UN POSTE DE DESSINATEUR DAO MATERIEL BATIMENT Poste : Dessinateur DAO A pourvoir à partir de : 19/07/2010 Type : CDI avec période essai 3 mois renouvelable 1 fois Statut : Technicien Lieu : Sédentaire - Rhone ( Chaponost ) ou IdF ( Vélizy ) avec période formation de 4 à 6 mois sur Rhone obligatoire Missions : Sous l'autorité d'un igénieur assurant sa formation : - A partir de gabarits pré-établis sur autocad et en récupérant des fonds de plan béton , réaliser les calepinages de passerelles de travail - Réalisation de calepinages de coffrages plancher sur logiciel de la société - Elaboration de croquis techniques simples - Participation à l'élaboration de notices techniques détaillées - Participation au suivi technique et à l'évolution des produits ( materiels de chantier ) Profil : - Formation Bac+2 type DUT ou équivalent avec spécialité DAO ( formation mécanique ou batiment ) - Débutant ou 2 à 3 ans d'expérience - Lecture des plans béton bienvenue mais non indispensable - Bonne vision de la 3D souhaitée - Notions de calcul BA et RdM souhaitées - Forte motivation et implication exigées
  4. je m'excuse d'être aussi nul, mais je ne parviens pas à insérer correctement ceci dans le lisp. en fait je ne comprends pas si les attributs font parti de la même liste que les noms ou pas. Faut-il insérer ces lignes en parallele de la démarche pde tri our les noms au début, ou dans la boucle d'écriture finale dans Excel? parce que ça me retourne toujours VLA-Objet nil !? encore désolé d'être aussi nul ...
  5. Bonjour à tous, J'essaie depuis un moment d'adapter le lisp "CBL" en vain ... Ce lisp recense tous les blocs sélectionnés dans Excel avec leur nom en colonne 1 et leur nombre en colonne 2. Mais pour un bloc bien particulier, (toujours dans la sélection et toujours avec le même nom), je voudrais la valeur du 1er attribut, et pas le nombre (il n'y en aura toujours qu'un seul dans la sélection de toute façon) j'ai donné du: (setq att (vlax-invoke val 'getattributes)) mais je m'embrouille dans le tri ... HELP le code CBL d'origine: ;; Helper function 'count-blocks' ;; written by Fatty T.O.H. () 2005 * all rights removed (defun count-blocks (/ acsp adoc bname bname_list tmp_list ss tmp) (vl-load-com) (setq adoc (vla-get-activedocument (vlax-get-acad-object) ) acsp (vla-get-block (vla-get-activelayout adoc) ) ) (command "_.zoom" "_e") (setq ss (ssget "_X" (list (cons 0 "INSERT") ;|(cons 2 "block1,block2,block3")|;);your desired block names here ) ) (vlax-for a (vla-get-activeselectionset adoc) (if (wcmatch (vla-get-objectname a) "AcDbBlockReference*") (progn (setq bname (vla-get-name a)) (setq bname_list (cons bname bname_list)) ) ) ) (while (car bname_list) (setq tmp (list (vl-remove-if-not (function (lambda (a) (eq a (car bname_list)) ) ) bname_list ) ) ) (setq tmp_list (cons (car tmp) tmp_list)) (setq bname_list (vl-remove-if (function (lambda (a) (eq a (car bname_list)) ) ) bname_list ) ) (setq tmp nil) ) (setq tmp_list (mapcar (function (lambda (x) (list (car x) (length x)) ) ) (reverse tmp_list) ) ) tmp_list ) ;CaLL:(count-blocks);ok ;; Main program ; ;;; Based on program 'Excel' written by ;;; ALEJANDRO LEGUIZAMON - arquingeneu@gmail.com ;;; edited by Fatty (defun c:cbl (/ LAYER# LIST# N ROW TOTALVALUE VALUE) (vl-load-com) (setq *AplExcel* (vlax-get-or-create-object "Excel.application") *Books-Colection* (vlax-get-property *AplExcel* "Workbooks") *New-Book* (vlax-invoke-method *Books-Colection* "Add") *Sheet-Collection* (vlax-get-property *New-Book* "Sheets") *Sheet#1* (vlax-get-property *Sheet-Collection* "Item" 1) *excell-cells* (vlax-get-property *Sheet#1* "Cells") ) (vla-put-visible *AplExcel* :vlax-true) (setq row 4) (setq n 0) (setq totalvalue 0) (princ "\nCOUNTING BLOCKS IN DRAWING") (setq list# (count-blocks)) (setq totalvalue (apply '+ (mapcar 'cadr list#))) (repeat (length list#) (setq value (cadar list#)) (vlax-put-property *excell-cells* "Item" row 2 (vl-princ-to-string value) ) (setq layer# (caar list#)) (vlax-put-property *excell-cells* "Item" row 1 (vl-princ-to-string layer#) ) (setq list# (cdr list#)) (setq n (+ n 1)) (setq row (+ row 1)) ) (setq row (+ row 1)) (vlax-put-property *excell-cells* "Item" row 1 (vl-princ-to-string "TOTAL") ) (vlax-put-property *excell-cells* "Item" row 2 (vl-princ-to-string totalvalue) ) (vlax-put-property *excell-cells* "Item" 1 1 (vl-princ-to-string " Based on routine by ALEJANDRO LEGUIZAMON - http://arquingen.tripod.com.co" ) ) (vlax-put-property *excell-cells* "Item" 2 1 (vl-princ-to-string (strcat "COUNTING BLOCKS IN DRAWING: " (getvar "dwgprefix")) ) ) (vlax-put-property *excell-cells* "Item" 3 1 (vl-princ-to-string "Block name") ) (vlax-put-property *excell-cells* "Item" 3 2 (vl-princ-to-string "Subtotal") ) (vlax-release-object *excell-cells*) (vlax-release-object *Sheet#1*) (vlax-release-object *Sheet-Collection*) (vlax-release-object *New-Book*) (vlax-release-object *Books-Colection*) (vlax-release-object *AplExcel*) (alert "Save Excel file manually") ) (prompt "\nType CBL to execute ...") (princ)
  6. Bonjour, j'ai un petit blocage de modification sur un Lisp existant: ce lisp ouvre Excel a chaque lancement de la routine, hors je voudrais qu'il créé une nouvelle feuille dans le classeur actif la partie du Lisp concernée: (vl-load-com) (setq *AplExcel* (vlax-get-or-create-object "Excel.application") *Books-Colection* (vlax-get-property *AplExcel* "Workbooks") *New-Book* (vlax-invoke-method *Books-Colection* "Add") *Sheet-Collection* (vlax-get-property *New-Book* "Sheets") *Sheet#1* (vlax-get-property *Sheet-Collection* "Item" 1) *excell-cells* (vlax-get-property *Sheet#1* "Cells") ) (vla-put-visible *AplExcel* :vlax-true) (setq row 4) (setq n 0) (princ "\nCOUNTING BLOCKS IN DRAWING") (setq list# (count-blocks)) (repeat (length list#) (setq value (cadar list#)) (vlax-put-property *excell-cells* "Item" row 2 (vl-princ-to-string value) ) (setq layer# (caar list#)) (vlax-put-property *excell-cells* "Item" row 1 (vl-princ-to-string layer#) ) (setq list# (cdr list#)) (setq n (+ n 1)) (setq row (+ row 1)) ) (vlax-put-property *excell-cells* "Item" 3 1 (vl-princ-to-string "Bloc") ) (vlax-put-property *excell-cells* "Item" 3 2 (vl-princ-to-string "Nb") ) (vlax-release-object *excell-cells*) (vlax-release-object *Sheet#1*) (vlax-release-object *Sheet-Collection*) (vlax-release-object *New-Book*) (vlax-release-object *Books-Colection*) (vlax-release-object *AplExcel*) ) J'ai tenté ceci dans les déclarations: (vl-load-com) (setq *AplExcel* (vlax-get-or-create-object "Excel.application") *Books-Colection* (vlax-get *AplExcel* "Workbooks") *New-Book* (vlax-get-property *AplExcel* "ActiveWorkbook") *Sheet-Collection* (vlax-get-property *New-Book* "Sheets") *Sheet#1* (vlax-invoke-method *Sheet-Collection* "Add") *excell-cells* (vlax-get-property *Sheet#1* "Cells") ) (vla-put-visible *AplExcel* 1) mais ça marche pas ... si quelqu'un peut m'aider ?
  7. Après réflexion, j'ai l'impression qu'en VBA se serait plus simple: lister des noms de blocs ou des polylignes dans Excel avec VBA a l'air bien plus courant, reste à traduire BCOUNT en VBA pour pouvoir utiliser la sélection de polyligne ... :casstet:
  8. Re salut et merci de vos réponses. J'avais déjà testé ces 2 options, mais c'est un peu laborieux vu que mon but serait de sélectionner une vingtaine de polyligne et de lister séparément le contenu de chacune d'elle (une colonne pour chaque polyligne par ex) mais dans la même feuille Excel ! Le but final étant de pouvoir déterminer la quantité maximale de chaque type de blocs utilisés dans ces polylignes ... ce qui est tout simple dans excel: en considérant les noms de blocs par lignes et les contenus des polylignes en colonne, je ferais MAX(A1:G1) puis MAX(A2:G2) etc ... A moins que sur Autocad 2009, il soit possible de lister les résultats de BCOUNT dans un tableau similaire et de choisir la valeur max ??? mais alors là ça serait de la magie, limite sorcellerie ... ;-)
  9. Bonsoir, Je cherche à exporter la surface et surtout la liste des blocs (simples) que contiennent.mes polylignes d'un plan Autocad 2009. J'utilise le fameux BCOUNT retouché du non moins fameux gile, mais il faut faire une par une, et surtout je ne peux pas exploiter directement les résultats sur Excel. J'aimerais pouvoir sélectionner plusieurs polylignes à la fois, et exporter les résultats dans Excel (pour comparaison sur autres tableaux excel existant ...) La solution est-elle d'essayer d'adapter ce Lisp (sachant que je n'y connais rien en Lisp) ?
  10. parfait ! (rien ne vaut la réponse de l'artiste himself) merci beaucoup, je ne peux plus me passer de ce Lisp ! ;-) @+
  11. Bonjour à tous, J'utilise l'excellentissime Lisp IXL de Patrick_35, pour insérer des blocs dans Autocad 2009, suite aux calculs de coordonnées dans Excel. Mais dans la feuille qui liste les blocs, j'affiche les noms de blocs (et leurs coordonnées) selon des conditions Excel, et je me rend compte que le Lisp travaille aussi longtemps qu'il voit des formules excel, mais si les cellules sont visuellement vides. Pour etre clair: ma formule excel est étirée sur 400 lignes (maximum de blocs possibles) mais même si il ne s'affiche que 10 blocs dans la liste, Autocad va mouliner sur les 400 lignes... Existe-t-il un moyen de ne le faire travailler que sur les cellules remplies ? (autre que de supprimer manuellement les formules dans Excel ...)
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité