-
Compteur de contenus
5 029 -
Inscription
-
Dernière visite
-
Jours gagnés
56
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bonuscad
-
[résolu] Lisp inverser Association/superposition
bonuscad a répondu à un(e) sujet de La Lozère dans Routines LISP
Bonjour, Pour moi cela fonctionne sans problème dans les 2 sens, je l'ai juste modifié pour qu'il soit plus pratique d'utilisation... (defun c:XRef2Ass_Sup ( / blk each key) (initget "Association Superposition") (setq key (getkword "\nStatut [Association/Superposition]? <Superposition>: ")) (if (eq key "Association") (setq key 0) (setq key 1)) (setq blk (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)))) (vlax-for each blk (if (= :vlax-true (vla-get-isxref each)) (setpropertyvalue (vlax-vla-object->ename each) "IsFromOverlayReference" key) ) ) ) Par contre le lien donné par Patrick_35 ne fonctionne pas pour moi: J'ai identifier le problème, mais je ne sais pas le corriger: c'est la ligne (vla-detach BlockDef) qui me génère cette erreur. Merci, je n'avais jamais remarqué cette fonctionnalité. -
Bonjour, Ton code est bon, il n'y a pas d'erreur. La seule erreur possible pourrait venir de là: "c:/debois/44.txt" (fixé en dur dans ton code) et que ceci ne corresponde pas à au contenu de ton disque; ça je ne peux le vérifier.(un accent, un espace, une majuscule ....??) Pour éventuellement résoudre ton problème, essayes d'utiliser la fonction (getfiled): (setq fichier (open (getfiled "Fichier texte à ouvrir" "" "txt" 8) "r")) Pendant les tests antérieurs que t'aurais pus faire, si le fichier n'a pas été fermé (close fichier), cela peut aussi créer des problèmes ultérieures. Ferme ta session et recommence tes tests dans une nouvelle session; Autocad se charge de fermer les fichiers qui seraient resté ouvert...
-
Bonjour, Un vieux sujet, qui je pense pourrait te donner une piste sur la syntaxe.
-
Bonjour, A tout hazard quels sont les valeurs de: INSUNITS INSUNITSDEFSOURCE INSUNITSDEFTARGET
-
Bonjour, Peut être en passant par une étape supplémentaire. 1 - Faire une sortie en Post-Script (celui-ci accepte ton format grandiose) 2 - Convertir (avec un utilitaire) de Post-Script en PDF. GhostScript? ps2pdf testé le 1 mais pas le 2.
-
Copier une présentation existante avec -p
bonuscad a répondu à un(e) sujet de paulo43 dans LISP et Visual LISP
Bonjour, Essayes (testé succinctement) de remplacer ta fonction c:cy par celle-ci: (defun c:cy () (vl-load-com) (setq NBPAGE (getint "\nNombre de copies : ")) (repeat NBPAGE (setq OLDLLAY (llayouts)) (command "_layout" "_c" "" "") (setq NEWLLAY (llayouts)) (setq NNAME (NewNameLayout OLDLLAY NEWLLAY)) (command "_layout" "_s" NNAME) (command "_MSPACE") (if (setq ss (ssget "_X" (list (cons 0 "VIEWPORT") (if (getvar "CTAB") (cons 410 (getvar "CTAB")) (cons 67 (- 1 (getvar "TILEMODE"))) ) ) ) ) (foreach n (mapcar 'cdr (mapcar '(lambda (x) (assoc 69 x)) (mapcar 'entget (mapcar 'cadr (ssnamex ss))))) (if (not (eq n 1)) (progn (setvar "CVPORT" n) (command "_-pan" "_non" '(0 0) "_non" '(0 50)) ) ) ) ) (command "_PSPACE") ) (princ) ) -
Dégeler dans la fenetre
bonuscad a répondu à un(e) sujet de x_all dans Personnalisation, macros, DIESEL
Bonjour, Oui, tu rajoutes le f de ficelle à calques et cela te fait la commande fcalque Ce qui pourrait donner dans une macro: ^C^C_.vplayer;_thaw;-Epure;_current;;^Z -
Bonjour, Certainement, Au boulot (avec un serveur de licences), au grand dam du service informatique, ils ont été obligés d'élever les droits sur tous les postes d'AutoCad pour que ça fonctionne correctement. Quand je vais sur le dossier d'installation d'Autocad, je peut voir que les autorisations que j'ai sont "spéciales" (mais je ne te pourrais pas dire lesquelles; pas les droits de voir). Donc je pense qu'il te faut chercher dans cette direction, si l'utilisateur est restreint. Il y a que l'admin qui va pouvoir (et qui devra) faire quelque chose...
-
Bonjour, Une video sur la pollution d'un fleuve au Brésil avec des détergents. La quantité est vraiment impressionnante, on se demande comment on peut en arriver là. Ici c'est fort visible, on pourrait imaginer la même chose avec un polluant de nature invisible et certainement encore plus dangereux... Je crois que je commence à comprendre les hécatombes en masse inexpliquées (ou inavouées) de poissons ou espèces aquatiques.
-
gestion des xrefs - tableau récapitulatif
bonuscad a répondu à un(e) sujet de philsogood dans AutoCAD 2015
Bonjour, As tu regardé la commande RTEXT des ExpressTools, ça ce passe avec l'option "Diesel". Appuis sur F1 (une fois la commande lancée), comme ça tu auras de l'aide sur la syntaxe à employer. -
compter les hachures solid en un point
bonuscad a répondu à un(e) sujet de x_all dans Débuter en LISP
Si tu utilises pour la 1ère fois dans une session, des solid3D ou des regions, tu remarqueras qu'AutoCad charges un module ARX qui permet de créer des solides, mais aussi de faire des opérations booléenne sur des volumes 3D ou des surfaces 2D (régions) Ces opérations booléenne font de l'union, soustraction et intersection de volume ou surface. Ce que te proposait Olivier... Avec des formes pas trop complexes (surtout en 3D), ça fonctionne très bien. -
compter les hachures solid en un point
bonuscad a répondu à un(e) sujet de x_all dans Débuter en LISP
Oui "_C" = Crossing -> Capture (même initiale). Je pense en effet que ce type de sélection va être très capricieux si appliqué sur des motifs de hachures... La solution de passer le "modeleur" d'Olivier me semble plus viable, ou si tu as Map, par des Mpolygon. -
Dessiner un pavage en arc de cercle
bonuscad a répondu à un(e) sujet de Pierre-Yves dans Infrastructures
Avec SUPERHATCH on peut le faire aussi avec une image de ce style comme modèle: http://pix.toile-libre.org/upload/thumb/1435149149.jpg Cela donne un effet de rendu très réaliste ... Mettre la variable IMAGEFRAME à 0 ou 2, pour ne pas avoir les cadres des images à l'impression -
[Résolu] [AutoCad 2014] Listing Volume solide 3D par calque
bonuscad a répondu à un(e) sujet de -Ced- dans AutoCAD 3D
Bonjour, Je rebondis sur cette discussion pour automatiser cette astuce (forcer le volume ou l'aire) sur des "3DSOLID" et créer facilement les champs. Voici le code lisp qui permet cela... (vl-load-com) (defun c:SolidVolume-Area2Field ( / js obj AcDoc Space nw_style pt htx rtx unit_key unit_draw n dxf_cod lremov k_mod ename ll ur nw_obj) (princ "\nSélectionnez un solide.") (while (null (setq js (ssget "_+.:E:S" (list '(0 . "3DSOLID") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) (princ "\nCe n'est pas un objet solide valable pour cette fonction!") ) (initget 6) (setq htx (getdist (getvar "VIEWCTR") (strcat "\nSpécifiez la hauteur du champ <" (rtos (getvar "TEXTSIZE")) ">: "))) (if htx (setvar "TEXTSIZE" htx)) (if (not (setq rtx (getorient (getvar "VIEWCTR") "\nSpécifiez l'orientation du champ <0.0>: "))) (setq rtx 0.0)) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (cond ((null (tblsearch "LAYER" "Id-Volumes")) (vlax-put (vla-add (vla-get-layers AcDoc) "Id-Volumes") 'color 96) ) ) (cond ((null (tblsearch "STYLE" "Romand-Field")) (setq nw_style (vla-add (vla-get-textstyles AcDoc) "Romand-Field")) (mapcar '(lambda (pr val) (vlax-put nw_style pr val) ) (list 'FontFile 'Height 'ObliqueAngle 'Width 'TextGenerationFlag) (list "romand.shx" 0.0 (/ (* 15.0 pi) 180) 1.0 0.0) ) ) ) (if (or (eq (getvar "USERS5") "") (not (eq (substr (getvar "USERS5") 1 2) "qz"))) (progn (initget "KM ME CM MM") (if (not (setq unit_key (getkword "\nDessin réalisé en [KM/ME/CM/MM] <ME>: "))) (setq unit_key "ME") ) (cond ((eq unit_key "KM") (setq unit_draw 1000000) ) ((eq unit_key "ME") (setq unit_draw 1000 unit_key "M") ) ((eq unit_key "CM") (setq unit_draw 10) ) ((eq unit_key "MM") (setq unit_draw 1) ) ) (setvar "USERS5" (strcat "qz" (itoa unit_draw))) ) (progn (setq unit_draw (atoi (substr (getvar "USERS5") 3))) (cond ((eq unit_draw 1000000) (setq unit_key "KM") ) ((eq unit_draw 1000) (setq unit_key "M") ) ((eq unit_draw 10) (setq unit_key "CM") ) ((eq unit_draw 1) (setq unit_key "MM") ) ) ) ) (initget "Unique Multiple _Single Multiple") (if (eq (getkword "\nSélection filtrée [unique/Multiple]<M>: ") "Single") (setq n -1) (setq dxf_cod (entget (ssname js 0)) js (ssget "_X" (foreach m (foreach n dxf_cod (if (not (member (car n) '(0 67 410 8 6 62 48 420 70))) (setq lremov (cons (car n) lremov)))) (setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod)) ) ) n -1 ) ) (initget "Volume Surface _Volume Area") (setq k_mod (getkword "\nMesurer [Volume/Surface] <Volume> : ")) (if (not k_mod) (setq k_mod "Volume")) (repeat (sslength js) (setq obj (ssname js (setq n (1+ n))) ename (vlax-ename->vla-object obj) ) (vla-GetBoundingBox ename 'll 'ur) (setq ll (safearray-value ll) ur (safearray-value ur) pt (mapcar '* (mapcar '+ ll ur) '(0.5 0.5 0.5)) nw_obj (vla-addMtext Space (vlax-3d-point pt) 0.0 (strcat "%<\\AcObjProp.16.2 Object(%<\\_ObjId " (itoa (vla-get-ObjectID ename)) ">%)." k_mod " \\f \"%lu2%pr2%ps[" (if (eq k_mod "Volume") "V=," "S=,") (strcase unit_key T) (if (eq k_mod "Volume") "\\\U+00B3]\">%" "²]\">%") ) ) ) (mapcar '(lambda (pr val) (vlax-put nw_obj pr val) ) (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation) (list 5 (getvar "TEXTSIZE") 5 pt "Romand-Field" "Id-Volumes" rtx) ) ) (prin1) ) -
ACAD MAP 2016 French 32 bits sous Win Seven Pro 32 bits ?
bonuscad a répondu à un(e) sujet de lecrabe dans Autodesk Map
Hello [mode humour on] Avec tous les patchs que tu donnes, soit tu as oublié de les appliquer, ou tu n'as pas le dernier patch en bon et du forme [mode humour off] Désolé, mais je suis en Map2014 sous Seven Pro (64bits) -
Bonjour, Pourtant il est dans le lien donné, il faut juste adapter dwg en dxf... Ce qui donne: ((lambda ( / prefix) (setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DXF TEMOIN" "" "dxf" 16)) "\\") ) (foreach dxf (vl-directory-files prefix "*.dxf" 1) (command "_.-insert" (strcat "\"" prefix dxf "\"") "_none" "0.0,0.0,0.0" "" "" "") ) (prin1) )) Tu copies-colles le code directement en ligne de commande, il va s'exécuter. Tu pointes un fichier DXF dans un dossier et il va insérer tous les DXF de ce dossier.
-
En même temps le lisp ne contient que des appels à "command",il doit pouvoir reproduire les actions manuellement en LT. Donc il peut essayer (ça coute rien) la commande _.-WBLOCK avec l'option * voir si ça lui réduit son dessin.
-
transformation projection et texte dxf
bonuscad a répondu à un(e) sujet de Demixav dans Autodesk Map
Bonjour, Une autre méthode en lisp que celle d'Olivier. Un exemple pour des points à adapter à ta structure, donc mettre les infos appropriées pour "MON_CALQUE" "MA_TABLE" "MA DONNEE_X_RGF93" "MA DONNEE_Y_RGF93" "MA DONNEE_Z_RGF93" Une fois fait tu copies-colles le code directement en ligne de commande et il est exécuté. (ça ne sert qu'une fois, pas besoin de faire de defun) ((lambda ( / js n ent dxf_ent pt) (setq js (ssget "_X" '((0 . "POINT") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "MON_CALQUE") (100 . "AcDbPoint")))) (cond (js (repeat (setq n (sslength js)) (setq ent (ssname js (setq n (1- n)))) (setq dxf_ent (entget ent)) (setq pt (cdr (assoc 10 dxf_ent))) (if pt (progn (ade_odsetfield ent "MA_TABLE" "MA DONNEE_X_RGF93" 0 (car pt)) (ade_odsetfield ent "MA_TABLE" "MA DONNEE_Y_RGF93" 0 (cadr pt)) (ade_odsetfield ent "MA_TABLE" "MA DONNEE_Z_RGF93" 0 (caddr pt)) ) ) ) ) ) )) L'avantage du lisp par rapport à l'export import et que tu gardes ta définition des tables (si tu en as plusieurs), elles ne sont pas fusionnées (cela ne te dérange peut être pas qu'elles le soient...) Bon cette méthode demande de mettre les mains dans le cambouis du lisp et si c'est pas ton truc... -
Bonjour, Met ta variable SDI (non documentée) à 0, elle doit être à 1 actuellement.
-
Bonjour, Effectivement la hachure pose problème. Il semble que l'on peut y arriver en subdivisant ton futur motif en 4: c'est dire en traçant 2 ligne (1 horizontale et 1 vertical) de façon à faire 4 zone de hachurages.(mais le coin bas droit à l'air aléatoirement de poser encore problème) Ton dessin montre bien les limites d'autocad en détection de contours. J'ai l'impression que c'est les intersections des arcs vert avec les arcs blanc qui lui pose problème.
-
transformation projection et texte dxf
bonuscad a répondu à un(e) sujet de Demixav dans Autodesk Map
Bonjour, Bien sur... il te faut paramétrer ton import comme il faut! Lorsque que tu te trouve dans le dialogue d'importation, tu dois avoir un tableau qui apparait. Je suppose que dans la colonne Données tu as <aucunes>. Il te faut cliquer sur la cellule <aucunes> et ... apparaissent, tu clique dessus. Tu auras alors une nouvelle boite de dialogue qui apparait nommée: "Données d'attributs". Dans cette boite tu actives "Créer des données d'objet", tu sélectionne alors la table de données qui t’intéresse, puis sur le bouton Sélectionner champs... et la tu coches tous les champs que tu veux importer. Comme cela tu devrais obtenir la même chose que ton collègue sous ArcGis -
Bonjour, Une question que je me pose, si on accepte de migrer vers Window 10, perds t'on la licence Window 7 définitivement? En quelque sorte si je me sers du "system recovery": (restorer le PC en sortie usine) Les updates risquent de me rebasculer en Windows 10, non? Merci de votre éclaircissement!
-
Comment demander deux choses à l'utilisateur ?
bonuscad a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour Je te suggère de faire une recherche sur le site avec entsel_getstring Tu trouveras des propositions de (gile) ou moi même (qui date, mais qui doivent encore être fonctionnelles) -
Je rejoint lili2006, vérifie ta table de tracé, voir si la couleur 7 ou dulcalque (256), n'a pas été affecté à une autre plume... Conseil: mets les entités constituantes de ton bloc en couleur dubloc (0), ainsi elles suivront la couleur du calque d'insertion: rouge si la couleur du calque est rouge et vert si dulcalque est vert etc... La couleur 0 est en somme la couleur flottante qui adopte celle du calque d'insertion, généralement beaucoup plus pratique ET conseillé.
-
Bonjour, On peux récupérer l'encombrement de la boite enveloppe d'un bloc (BoundingBox) sans rien dessiner par quelque ligne de code. Si ton contour enveloppe est existant de lui même dans le bloc, tu peux aussi (si expresstools installé) utiliser la commande "_NCOPY" qui te dupliquera ce contour dans ton dessin existant.
