Aller au contenu

(gile)

Moderateurs
  • Compteur de contenus

    12 247
  • Inscription

  • Dernière visite

  • Jours gagnés

    209

Tout ce qui a été posté par (gile)

  1. (gile)

    coordonnées Z

    Salut, Tu peux aller voir ici.
  2. Salut et bienvenue, Personnellement, je n'ai essayé qu'Intellidesk (2005 et 2006). Je pense que c'est un bon logiciel 2D, stable, avec des fonctions et des options qui n'existent pas dans AutoCAD LT et surtout qui supporte le LISP, tout comme les autres cités. Tu peux charger des versions d'évaluation pour te faire une idée : Intellidesk Briscad Intelliplus
  3. Salut, As-tu essayé par le menu contextuel de la fenêtre (selection de la fenêtre, clic droit), et Tracé de l'ombrage.
  4. (gile)

    demo acad 2007

    Les revendeurs commencent à avoir les versions démo françaises.
  5. (gile)

    Raccord ligne avec proprietes!

    J'ai amelioré le LISP ci-dessus. Dans les cas où il y a deux possibilités, la position du pointeur au moment de la sélection de la ligne détermine le côté qui sera raccordé http://img335.imageshack.us/img335/4679/join10eq.png http://img306.imageshack.us/img306/7706/join31hj.png
  6. (gile)

    Types de lignes en cadeau

    :calim: Au temps pour moi, il m'arrive effectivement d'être "dyslexique des chiffres", mais à ma décharge, j'avais bon juste en dessous :
  7. (gile)

    M2S version 2007

    Pour la même surface gauche, avec le même ombrage (filaire 2D) et la même projection (parallèle), M2S met environ 5 fois plus de temps à aboutir dans l'espace de travail "Modelisation 3D" que dans l'espace "AutoCAD classique" :casstet:
  8. Salut, La variable système UCSORG stocke les coordonnées (dans le SCG) de l'origine du SCU courant. Les variables système UCSXDIR et UCSYDIR stockent les directions X et Y du SCU courant pour la fenêtre active de l'espace courant. Les paramètres de ces variables système sont spécifiques à une fenêtre. Pour récupérer le SCU courant dans la fenêtre active : (setq org (getvar "ucsorg") xdir (getvar "ucsxdir") ydir (getvar "ucsydir") ) Pour le restaurer dans une autre fenêtre (il faut désactiver l'accochage aux objets) : (setvar "osmode" (+ (getvar "osmode") 16384)) (command "_.ucs" "_new" "_3" (trans org 0 1) (trans (mapcar '+ org xdir) 0 1) (trans (mapcar '+ org ydir) 0 1) ) (setvar "osmode" (- (getvar "osmode") 16384)) ou (command "_.ucs" "_new" "_3" "_non" (trans org 0 1) "_non" (trans (mapcar '+ org xdir) 0 1) "_non" (trans (mapcar '+ org ydir) 0 1) ) Il est aussi possible de récupérer la direction d'extrusion (ucszdir) : (setq org (getvar "ucsorg") ucszdir (trans '(0 0 1) 1 0 T) ) et de restaurer le SCU avec l'option _ZAxis : (command "_.ucs" "_new" "_zaxis" "_non" (trans org 0 1) "_non" (trans (mapcar '+ org ucszdir) 0 1) ) En espérant que çà réponde à ta question. [Edité le 1/5/2006 par (gile)]
  9. Effectivement. Mais le problème semble ne concerner que les polylignes2d (non optimisées),il suffit de convertir cette polyligne2d en lwpolyligne pour que tout rentre dans l'ordre. On pourrait, soit filtrer les polylignes 2D (119 au lieu de 118) soit les convertir en lwpolylignes. (if (and (= (cdr (assoc 0 (entget (car ent)))) "POLYLINE") (= (logand 1 (cdr (assoc 70 (entget (car ent))))) 1) ) (command "_.convert" "_p" "_s" (car ent) "") )
  10. (gile)

    M2S version 2007

    Merci, Bonuscad, pour le lien. C'est Bill Gilliss, l'auteur du LISP, qui y donne une version de M2S compatible avec toutes les versions. J'étais justement en train d'essayer une idée similaire (avec ACADVER), je modifie le code ci-dessus en conséquence. Par ailleurs, Bill ne semble pas avoir vu le problème avec SOLIDHIST, je le préviens.
  11. (gile)

    Tableau de bord

    Est il possible de changer le contenu (ajouter/supprimer des commandes) des "Panneaux de configuration" (Dessin 2D Création 3D) du "Tableau de bord" de l'espace de travail modelisation 3D ? Si oui, comment ?... Merci d'avance.
  12. (gile)

    Tout sur la géométrie....

    C'est super, j'avais déjà été sur ce site depuis ce sujet mais je ne me souvenais plus du lien.
  13. (gile)

    le Top pour un portable ?

    Ouais ... core-duo + 7200 tr/mn + processeur graphique 150W Gaffe à la surchauffe :cool: Sinon, tous ceux que j'ai cité sont configurables et acceptent de DD 7200 tr/mn.
  14. (gile)

    M2S version 2007

    Presque Tous les LISP utilisant (command "_.extrude" objet "" ValeurHauteur ValeurAngle) doivent être changer : - soit en (command "_.extrude" objet "" ValeurHauteur) si ValeurAngle était 0.0 ou "" - soit en (command "_.extrude" objet "" "_taper" ValeurAngle ValeurHauteur) si ValeurAngle est un réél non nul. Les LISP utilisant (command "_.extrude" objet "" "_path" chemin) devraient continuer à fonctionner. [Edité le 30/4/2006 par (gile)]
  15. (gile)

    Raccord ligne avec proprietes!

    Je ne suis pas sûr d'avoir compris non plus. Mais voici un petit LISP qui raccorde, à la première ligne sélectionnée, les lignes sélectionnées ensuite en leur faisant hériter des proprités (calque, couleur, type de ligne) de la première. ;;; Join_line Raccorde successivement les lignes sélectionnées à la première ;;; Les lignes héritent des propriétés de la première. (defun c:join_line (/ extmod l1 e1 l2 e2 pick1 pick2 p_int) (defun extmod (e_lst pick / start end) (setq start (cdr (assoc 10 e_lst)) end (cdr (assoc 11 e_lst)) ) (if (and ( ( ) (if ( (subst (cons 11 p_int) (assoc 11 e_lst) e_lst) (subst (cons 10 p_int) (assoc 10 e_lst) e_lst) ) (if ( (subst (cons 10 p_int) (assoc 10 e_lst) e_lst) (subst (cons 11 p_int) (assoc 11 e_lst) e_lst) ) ) ) (vl-load-com) (while (not (and (setq l1 (entsel "\nSélectionnez la première ligne: ")) (= (cdr (assoc 0 (setq e1 (entget (car l1))))) "LINE") ) ) ) (setq pick1 (trans (osnap (cadr l1) "_nea") 1 0)) (while (and (setq l2 (entsel "\nSélectionnez la ligne à joindre à la précédente: " ) ) (= (cdr (assoc 0 (setq e2 (entget (car l2))))) "LINE") ) (if (setq p_int (inters (cdr (assoc 10 e1)) (cdr (assoc 11 e1)) (cdr (assoc 10 e2)) (cdr (assoc 11 e2)) nil ) ) (progn (vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-Object)) ) (setq pick2 (trans (osnap (cadr l2) "_nea") 1 0) l2 (car l2) ) (entmod (extmod e1 pick1)) (setq e2 (extmod e2 pick2)) (setq e2 (subst (assoc 8 e1) (assoc 8 e2) e2)) (if (assoc 62 e1) (if (assoc 62 e2) (setq e2 (subst (assoc 62 e1) (assoc 62 e2) e2)) (setq e2 (append e2 (list (assoc 62 e1)))) ) (if (assoc 62 e2) (setq e2 (subst (cons 62 256) (assoc 62 e2) e2)) ) ) (if (assoc 6 e1) (if (assoc 6 e2) (setq e2 (subst (assoc 6 e1) (assoc 6 e2) e2)) (setq e2 (append e2 (list (assoc 6 e1)))) ) (if (assoc 6 e2) (setq e2 (subst (cons 6 "BYLAYER") (assoc 6 e2) e2)) ) ) (entmod e2) (setq l1 l2 e1 e2 ) (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-Object)) ) ) (prompt "\nErreur: pas d'intersection entre les lignes.") ) (princ) ) (princ "\nTaper JOIN_LINE pour lancer la commande.") (princ) [Edité le 29/4/2006 par (gile)] [Edité le 2/5/2006 par (gile)]
  16. (gile)

    Slash mais pas antislash

    Et bien non, On peut continuer à écrire "c:\\toto.dwg" en LISP :)
  17. (gile)

    M2S version 2007

    J'ai trouvé, il semble bien qu'en mettant la variable système SOLIDHIST à 0 çà fonctionne. Je modifie le code ci-dessus.
  18. (gile)

    M2S version 2007

    Si dans les nouveautés il est possible de couper (_slice) un solide avec une surface, cela reste impossible avec les surfaces gauches, réglées,extrudées ou de révolution, extrait de l'aide : M2S n'a donc pas fini sa carrière ! Comme les options de la commande EXTRUSION (_extrude) ont changé (l'angle d'extrusion est une option à spécifier avant la hauteur), j'ai modifié le LISP pour qu'il fonctionne avec la nouvelle version. Çà marche, sauf que avec une surface gauche créée avec SURFTAB1 et SURFTAB2 à 20 çà plante avant l'union des rangées : Le code compatible TOUTES VERSIONS ;; M2S (Mesh-to-Solid) ;; Creates an ACIS solid from an open 3d polygon mesh. ;; ;; Take 3 - Updated 4/28/2006 ;; - Works with AutoCAD 2007 as well as all previous releases. ;; - Works with REVSURF'd meshes that touch or cross axis of revolution. ;; - Works even if solid being constructed is not fully visible on screen. ;; - Works with all open meshes created with REVSURF, RULESURF, ;; EDGESURF, TABSURF, AI_MESH, and 3DMESH. Most of the stock 3D ;; surfaces will work if you use DDMODIFY to open them in the M ;; and N directions. ;; - Does not work with polyface entities. ;; - _. prefix added to commands for compatibility with CSG editor and ;; international users ;; ;; (c) Copyright 1998,2006 by Bill Gilliss. ;; All rights reserved... such as they are. ;; ;; bill.gilliss@aya.yale.edu gilliss@iglou.com ;; ;; I wrote this to create sculptable ACIS terrain models ;; for architectural site renderings. It can also be used ;; to create thin shells from meshes, by subtracting a moved ;; copy of the solid from the original solid, but AutoCAD's native ;; Solids Editing > Shell now does a much better job of this. ;; ;; The solid is created by projecting each mesh facet "down" ;; the *current* z-axis to a plane a user-specified distance below ;; the lowest vertex. To assure that all parts of the mesh are ;; generated as solids, this distance can not be zero, but the ;; solid can be SLICEd later if need be. ;; ;; The solid will match the displayed mesh: if the mesh has ;; been smoothed and SPLFRAME is set to 0, the solid will be ;; smoothed. Otherwise, it will not be. The mesh itself is not ;; changed at all. ;; ;; Modifié le 01/05/06 - Gilles Chanteau - ;; Ajout des fonctions std_err / save&set_var ;; Contrôle de la variable système SOLIDHIST ;; Traduction des invites (defun c:m2s (/ SavedSysVarLst R17 ent ename entlst M N MN SN SM ST smooth vtx d1 low vtxcnt vtxmax bot bottom p1 p2 p3 p4 c1 c2 c3 c4 b1 b2 b3 b4 soldepth ssall ssrow ) (setq m:err *error* *error* STD_ERR ) (command "_.undo" "_begin") (SAVE&SET_VAR "cmdecho" 0) (SAVE&SET_VAR "osmode" 0) (SAVE&SET_VAR "blipmode" 0) (cond ((< 16 (atoi (substr (getvar "acadver") 1 2))) (setq R17 T) (SAVE&SET_VAR "solidhist" 0) ) ) (princ "\nM2S") ;;select the mesh (setq ent (entsel "\nSélectionnez une maille polygonale à solidifier: ")) (setq ename (car ent)) (setq entlst (entget ename)) (if (not (= (cdr (assoc 0 entlst)) "POLYLINE")) (progn (alert "Ce n'est pas une maille polygonale.") (exit) (princ) ) ;_ progn ) ;_ endif (if (not (or (= (cdr (assoc 70 entlst)) 16) ;_ open 3d polygon mesh (= (cdr (assoc 70 entlst)) 20) ;_ open mesh w/ spline-fit vertices ) ;_ or ) ;_ not (progn (alert "Ce n'est pas une maille polygonale \"ouverte\".") (exit) (princ) ) ;_ progn ) ;_ endif ;; decide whether to use smoothed or unsmoothed vertices (setq M (cdr (assoc 71 entlst))) ;_ M vertices (setq N (cdr (assoc 72 entlst))) ;_ N vertices (setq SM (cdr (assoc 73 entlst))) ;_ smoothed M vertices (setq SN (cdr (assoc 74 entlst))) ;_ smoothed N vertices (setq ST (cdr (assoc 75 entlst))) ;_ surface type (if (or (= (getvar "splframe") 1) ;_ use MxN vertices when splframe = 1 (= ST 0) ;_ or mesh has not been smoothed ) (setq smooth 0 MN (* M N) ) (setq smooth 1 ;_ use SMxSN vertices when mesh is smoothed MN (* SM SN) ;_ and SPLFRAME = 0 M SM N SN ) ) ;_ if ;; determine lowest vertex (grtext -2 "Contrôle de la maille...") (setq vtx ename) (setq vtx (entnext vtx)) (setq d1 (entget vtx)) (setq bottom (caddr (trans (cdr (assoc 10 d1)) 0 1))) (repeat (1- MN) ;_ compare with each vertex's z coord (setq vtx (entnext vtx)) (setq d1 (entget vtx)) (setq low (caddr (trans (cdr (assoc 10 d1)) 0 1))) (setq bottom (min bottom low)) ) ;_ repeat ;; get desired thickness of solid (setq soldepth 0) (while (zerop soldepth) (progn (setq soldepth (getdist "\nEntrez l'épaisseur du solide sous le point le plus bas <1>: " ) ) (if (not soldepth) (setq soldepth 1.0) ) (if (zerop soldepth) (princ "\nL'épaisseur peut être faible, mais pas égale à zéro.\n(Couper ensuite, si nécessaire.)" ) ) ) ;_ progn ) ;_ while (setq bot (- bottom (abs soldepth))) (setq p1 ename) (if (= smooth 1) (setq p1 (entnext p1)) ) ;_ skip 1st vtx of smoothed mesh - not true vtx (setq ssrow (ssadd)) ;_ initialize set of extruded segments to be unioned as a row (setq ssall (ssadd)) ;_ initialize set of rows to be unioned into the whole (grtext -2 "Création de la rangée...") (setq vtxmax (- MN N)) (setq vtxcnt 1) ;;create row of solid segments (while (< vtxcnt vtxmax) (if (= 0 (rem vtxcnt N)) ;_ at end of each row... (progn (setq rowmsg (strcat "Union de la rangée... " (itoa (/ vtxcnt N)) " de " (itoa (1- M)) "... " ) ) (grtext -2 rowmsg) (command "_.union" ssrow "") (setq row (entlast)) (ssadd row ssall) (setq ssrow (ssadd)) (setq p1 (entnext p1) ;_ skip to the next vertex vtxcnt (1+ vtxcnt) ) ) ;_ progn ) ;_ if (grtext -2 "Création de la rangée...") (setq p1 (entnext p1) ;_ first vertex of mesh square p2 (entnext p1) ;_ second vertex p3 p2 ) (repeat (1- n) (setq p3 (entnext p3))) ;_ walk along to 3rd (p1 + N) vertex (setq p4 (entnext p3)) ;_ 4th vertex of mesh square (setq c1 (trans (cdr (assoc 10 (entget p1))) 0 1) ;_ top coordinates c2 (trans (cdr (assoc 10 (entget p2))) 0 1) c3 (trans (cdr (assoc 10 (entget p3))) 0 1) c4 (trans (cdr (assoc 10 (entget p4))) 0 1) b1 (list (car c1) (cadr c1) bot) ;_ bottom coordinates b2 (list (car c2) (cadr c2) bot) b3 (list (car c3) (cadr c3) bot) b4 (list (car c4) (cadr c4) bot) ) (LOFT c1 c2 c3 b1 b2 b3) (LOFT c2 c3 c4 b2 b3 b4) (setq vtxcnt (1+ vtxcnt)) ) ;_ while (grtext -2 "Union de la denière rangée...") (command "_.union" ssrow "") (setq row (entlast)) (ssadd row ssall) (if (> M 2) ;_ bypass final union for N x 1 meshes (i.e., RULESURF) (progn (grtext -2 "Union de toutes les rangées...") (command "_.union" ssall "") ) ;_ progn ) ;_ if ;;cleanup (command "_.undo" "_end") (mapcar 'eval SavedSysVarLst) (setq ssall nil ssrow nil ) (princ) ) ;_ defun ;;============== SUBROUTINES ==================== (defun LOFT (r1 r2 r3 s1 s2 s3 / e1 extr highest) (command "_.area" s1 s2 s3 "") (if (not (equal (getvar "area") 0.0 0.00000001)) (progn (command "_.pline" s1 s2 s3 "_close") (setq highest (max (caddr r1) (caddr r2) (caddr r3))) (setq extr (- highest bot)) (if R17 (command "_.extrude" (entlast) "" extr) ;_ 2007 and higher (command "_.extrude" (entlast) "" extr 0.0) ;_ 2006 and below ) ;_ endif (command "_.slice" (entlast) "" "_3points" r1 r2 r3 s1) (setq e1 (entlast)) (ssadd e1 ssrow) ) ;_ progn ) ;_ if ) ;_ defun ;;; Redéfinition de *error* (defun STD_ERR (msg) (if (or (= msg "Fonction annulée") (= msg "quitter / sortir abandon") ) (princ) (princ (strcat "\nErreur: " msg)) ) (command) (command "_.undo" "_end") (mapcar 'eval SavedSysVarLst) (setq *error* m:err m:err nil ) (princ) ) ;;; SAVE&SET_VAR ;;; Enregistre la valeur initiale de la variable système dans une liste ;;; et lui attribue sa nouvelle valeur (si val est non nil) ;;; ;;; ex: (SAVE&SET_VAR "autosnap" nil) (SAVE&SET_VAR "orthomode" 1) ;;; -> SavedSysVarLst : (("orthomode" . 0) ("autosnap" . 63)) ;;; -> (getvar "orthomode") : 1 ;;; -> (getvar "autosnap") : 55 (63 - 8 : le repérage polaire est désactivé) ;;; Pour restaurer les variables : (mapcar 'eval SavedSysVarLst) (defun SAVE&SET_VAR (var val) (cond ((not (getvar var)) (princ (strcat "\nErreur: variable AutoCAD rejetée: " var)) (princ) ) (T (setq SavedSysVarLst (cons (list 'setvar var (getvar var)) SavedSysVarLst) ) (if val (setvar var val) ) ) ) ) (princ "M2S chargé. Taper M2S pour lancer le programme." ) (princ) [Edité le 29/4/2006 par (gile)] [Edité le 2/5/2006 par (gile)]
  19. (gile)

    Vérouiller un dessin

    Le DWF, non ?
  20. Laquelle ? Vue non-orthogonale ou "Génération du type de ligne" ou les deux ?
  21. Re, Il se peut que les polylignes qui ne se remplissent pas aient été créées avec la variable FILLMODE à 0. Dans ce cas, après avoir mis FILLMODE à 1, il faut sélectionner les polylignes en question et dans la fenêtre de propriétés, inverser la propriété "Génération du type de ligne" (Actif/Inactif). Voir ce sujet.
  22. En jouant avec la variable système CMDECHO : ((lambda (/ echo) (setq echo (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_box" "0,0,0" "1e8,1e8,1e8") (entdel (entlast)) (setvar "cmdecho" echo) (princ) ) )
  23. Salut, Une suggestion : les polylignes qui ne sont pas remplies, sont elles dans un plan paralèlleà le vue ?
  24. (gile)

    Diviser un cercle

    Salut et bienvenue, La commande DIVISER (ou _divide) Menu Dessin -> Point -> Diviser place des points (ou blocs) suivant le nombre de divisions spécifiées sur l'objet sélectionné.
  25. (gile)

    le Top pour un portable ?

    Salut, Je viens de répondre à une question similaire ici.
×
×
  • 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é