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 d\'un block

    Salut, Le point d'insertion d'une référence de bloc retourné dans le code DXF 10 est donné en coordonnées dans le SCO (le sytème de coordonnées de l'objet). On peut traduire ces coordonnées dans un autre système de coordonnées avec la fonction trans. Exemple : (setq bl (car (entsel "\nSélectionnez un bloc))) (setq ins_pt (cdr (assoc 10 (entget bl)))) Pour traduire ces coordonnées dans le SCU courant : (trans ins_pt bl 1) Pour traduire ces coordonnées dans le SCGénéral : (trans ins_pt bl 0) Tu peux voir la fonction trans dans l'aide aux développeurs >> AutoLISP Refernce >> AutoLISP Functions et ce sujet [Edité le 23/9/2006 par (gile)]
  2. (gile)

    Différences entre...

    Si tu pouvais donner un lien... merci d'avance.
  3. (gile)

    Récursivité

    Salut Phil, Je dois avouer ne pas tout comprendre à ta réponse. Toujours est-il que l'exemple de la factorielle pour expliquer la récursivité doit être mauvais même si c'est le plus souvent utilisé. Quand on s'attache plus à l'exemple qu'a ce qu'il est sensé illustrer, c'est que l'exemple est mal choisi. Mon propos était plus d'essayer d'expliquer la forme récursive en LISP que la fonction factorielle dont je ne me sers jamais non plus (ça sert en calcul de probabilités si mes souvenirs sont bons). [Edité le 23/9/2006 par (gile)]
  4. (gile)

    Différences entre...

    Salut, Un bouquin assez récent en français qui traite d'AutoLISP, et en anglais, une Bible du développeur VisualLISP. L'aide d'AutoCAD, bien qu'en anglais, est plutôt bien faite, c'est avec elle que j'ai appris. Je pense qu'il est préférable de commencer avec AutoLISP pour bien maitriser la syntaxe LISP, puis passer à VisualLISP qui correspond à un supplément de fonctions.
  5. Salut, Il n'est pas nécessaire de spécifier tous les groupes pour créer une entité avec entmake. Et suivant les entités certains groupes sont nécessaire ou pas (par exemple les groupes 100 sont nécessaires pour une polyligne, pas pour un ligne ou un cercle). Des essais permettent de savoir lesquels sont indipensables ou pas, mais je pense que les groupes 342 et343 ne sont pas à spécifier. [Edité le 22/9/2006 par (gile)]
  6. (gile)

    escaliers helicoidaux

    Salut, Tu peux voir ce sujet
  7. (gile)

    Différences entre...

    Salut, LISP, acronyme de LISt Processing, est un langage de programation inventé par John McCarthy en 1958. C'est le deuxième plus vieux langage de programmation, il classé parmis les langages fonctionnels. Voir ici. AutoLISP est dialecte du LISP dédié à AutoCAD (et ses clones). VisualLISP est une extension d'AutoLISP permettant l'accès aux fonctions ActiveX et VBA, et donc le rapproche des langages "orientés objet". [Edité le 22/9/2006 par (gile)]
  8. Je ne connais pas le VBA, mais on utilise les mêmes fonctions en VisualLISP. La fonction AddExtrudedSolidAlongPath nécessite 3 arguments : 1°) l'objet (espace objet, espace papier ou bloc) 2°) la region à extruder 3°) le chemin (ligne, polyligne, cercle, ellipse, spline ou arc) peu importe si cet objet a été acquis avec un GetEntity, ou crée par le programme avec un AddLine, AddLightWeightPolyline ou autre. Revois l'exemple, si je comprends bien, le chemin (une spline) est créé par la routine puis passé comme argument à AddExtrudedSolidAlongPath.
  9. Salut et bienvenue, Oui c'est possible, tu trouveras un exemple dans l'Aide aux dévellopeurs >> ActiveX and VBA Reference >> Code Examples >> AddExtrudedSolidAlongPath Example
  10. (gile)

    Help commande 3dclip

    Vois ce sujet
  11. (gile)

    recréer mnt

    Salut, Voici un petit LISP. Pour éviter les imprécisions évoquées par Didier, il est nécessaire de sélectionner successivement un point et le texte qui lui est associé. Le bloc (point + attribut) est inséré à l'endroit du point. Au premier appel de la fonction si le bloc n'existe pas dans le dessin, il est créé. La hauteur de texte de l'attribut est fonction de la valeur des variables système TEXTSIZE et DIMSCALE. ;;; MakePointBlock Crée le bloc "PointAltBlock" (defun makepointblock (/ AcDoc Block) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Block (vla-add (vla-get-blocks AcDoc) (vlax-3d-point '(0 0 0)) "PointAltBlock" ) ) (vla-addPoint Block (vlax-3d-point '(0 0 0))) (vla-addAttribute Block (getvar "TEXTSIZE") acAttributeModePreset "" (vlax-3d-point (list (/ (getvar "TEXTSIZE") 2) 0 0)) "Altitude" "0.0" ) ) ;;; TxtPt2Block Change le point et le texte associé en bloc avec attribut (defun c:TxtPt2Block (/ AcDoc Space pt text ref) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (if (not (tblsearch "BLOCK" "PointAltBlock")) (MakePointBlock) ) (while (and (setq pt (car (entsel "\nSélectionnez un point: "))) (= (vla-get-objectName (setq pt (vlax-ename->vla-object pt))) "AcDbPoint" ) (setq text (car (entsel "\nSélectionnez le texte associé: ")) ) (wcmatch (vla-get-objectName (setq text (vlax-ename->vla-object text)) ) "*Text" ) ) (vla-StartUndoMark AcDoc) (setq ref (vla-InsertBlock Space (vla-get-Coordinates pt) "PointAltBlock" 1.0 1.0 1.0 0.0 ) ) (vla-put-TextString (car (vlax-invoke ref 'GetAttributes)) (vla-get-TextString text) ) (vla-ScaleEntity (car (vlax-invoke ref 'getAttributes)) (vla-get-Coordinates pt) (getvar "DIMSCALE") ) (vla-delete text) (vla-delete pt) (vla-EndUndoMark AcDoc) ) (princ) ) PS : Je ne suis pas géomètre et ne connais rien au MNT, il y a certainement des choses à modifier, moi et/ou d'autres pourront sûrement t'aider à le faire. [Edité le 21/9/2006 par (gile)]
  12. (gile)

    Inserer une image

    Salut, Après avoir chargé l'image (Parcourir >> Ouvrir >> host it !) tu copies le dernier lien (encadré en rouge sur l'image ci dessous) : http://img222.imageshack.us/img222/2388/sanstitreer1.png Puis tu colles le lien entre les balises "Image" http://img233.imageshack.us/img233/5605/sanstitre2tz8.png
  13. La personnalisation de l'interface utilisateur est enregistrée dans le fichier .CUI courant.
  14. (gile)

    LATT lisp de Patrick_35

    Salut, Tu ne dois pas utiliser d'options nécessitant cette boite de dialogue.
  15. Salut, Tu tapes saisie à la ligne de commande. (defun c:saisie ...)
  16. Tu dois utilser des textes simples, sinon tu n'aurais pas ce soucis de point d'insertion, j'ai répondu un peu vite, ci dessus. Dz toutes façons voilà un petit LISP qui fonctionne avec les deux types de texte, le point tient compte de la justification et est retourné en coordonnées du SCU courant pour la fonction (command ...) (defun c:test (/ ent e_lst ins_pt) (while (not (and (setq ent (car (entsel))) (wcmatch (cdr (assoc 0 (setq e_lst (entget ent)))) "*TEXT") ) ) ) (if (= (cdr (assoc 0 e_lst)) "TEXT") (if (and (zerop (cdr (assoc 72 e_lst))) (zerop (cdr (assoc 73 e_lst))) ) (setq ins_pt (trans (cdr (assoc 10 e_lst)) ent 1)) (setq ins_pt (trans (cdr (assoc 11 e_lst)) ent 1)) ) (setq ins_pt (trans (cdr (assoc 10 e_lst)) 0 1)) ) (command "_line" "_non" ins_pt pause "") (princ) ) [Edité le 20/9/2006 par (gile)]
  17. Salut, les entités texte et mtexte ayant des différences marquées à ce niveau, pourrait tu me dire si c'est avec les uns, les autres ou les deux que tu veux travailler.
  18. (gile)

    Texture Verre

    Salut, As tu essayé de prendre, dans la palette d'outils "Matériaux", dans l'onglet "Portes et fenêtres" le matériau "Verres.Vitre.Clair" ? Chez moi ça marche, dans la fenêtre : http://img172.imageshack.us/img172/1926/verre1yn3.png et dans le rendu : http://img114.imageshack.us/img114/6613/verre2vb4.png
  19. (gile)

    Filtrer suivant le Handle

    Salut, Une routine LISP pour faire un jeu de sélection en filtrant les blocs du dessin suivant la valeur d'un attribut éditable. On peut utiliser directement la sous routine att_filter en renseignant directement les arguments nom du bloc, nom de l'étiquette et valeur de l'attribut : (att_filter "tranchee" "longueur" "12.0") ou utiliser la commande att_fltr_sel et répondre aux invites à la ligne de commande. Si la valeur de l'attribut et le filtre pour cette valeur sont des nombres (sous forme de chaine de caractère) il sont comparés comme des nombres : 12 = 12.0 = 12.00. ;; Retourne un jeu de sélection en filtrant le nom du bloc, et la valeur d'un attribut (defun att_filter (bloc etiq val / ss n ref att att_lst) (if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 bloc)))) (repeat (setq n (sslength ss)) (setq ref (ssname ss (setq n (1- n)))) (setq att (entnext ref)) (while (/= (cdr (assoc 0 (setq att_lst (entget att)))) "SEQEND") (if (= (cdr (assoc 2 att_lst)) (strcase etiq)) (if (and (numberp (read (cdr (assoc 1 att_lst)))) (numberp (read val)) ) (if (/= (atof (cdr (assoc 1 att_lst))) (atof val)) (ssdel ref ss) ) (if (/= (cdr (assoc 1 att_lst)) val) (ssdel ref ss) ) ) ) (setq att (entnext att)) ) ) ) ss ) ;; Sélectionne tous les blocs du nom spécifié ayant la valeur spécifiée pour l'attribut spécifié (defun c:att_fltr_sel (/ bloc etiq val) (setq bloc (getstring "\nEntrez le nom du bloc: ")) (setq etiq (getstring "\nEntrez l'étiquette de l'attribut: ")) (setq val (getstring "\nEntrez la valeur de l'attribut: ")) (sssetfirst nil (att_filter bloc etiq val)) (princ) ) [Edité le 19/9/2006 par (gile)]
  20. (gile)

    Volume d\'un objet 3D

    Salut, Tout dépend du type d'objet, seuls les solides 3D ont un volume les objets surfaciques ou linéaire n'en on pas (normal, non ?...). J'oubliais le volume apparaît dans les propriétés mécaniques de la région (commande PROPMECA ou _MASSPROP) [Edité le 19/9/2006 par (gile)]
  21. (gile)

    LATT lisp de Patrick_35

    Si tu veux, mais pas forcément. Mais il est impératif que le dossier dans lequel est enregistré latt.dcl soit dans le chemin de recherche d'AutoCAD (Menu Outils >> Options... onglet Fichiers)
  22. Une autre idée : Tu crées un style de cote en supprimant les lignes d'attache et les lignes de cote. Tu fais une cote dans ton bloc qui correspond à ton paramètre d'étirement et tu inclus cette cote aux objets subissant l'action d'étirement. La cote devrait suivre dynamiquement l'étirement du bloc.
  23. Salut, Tu peux retrouver la valeur de la distance dans la fenêtre de propriété, dans la liste retournée par la commande LISTE (_list) ou en faisant une extraction d'attributs avec la commande EXTATTBE (_eattext) même si le bloc ne contient pas d'attributs.
  24. Tu ne devrais avoir à re-spécifier que les dossier que tu as ajoutés au chemin de recherche. Les différents chemins sont stockés dans la variable système ACADPREFIX
  25. (gile)

    LATT lisp de Patrick_35

    Salut, Le fichier latt.dcl est la description de la boite de dialogue appelée par latt.lsp pendant son exécution. Il doit être enregistré sous latt.dcl dans un dossier du chemin de recherche des fichiers de support. Si le fichier latt.dcl n'est pas trouvé, la routine avorte et renvoie ce message : "Le fichier LATT.DCL n'a pas été trouvé."
×
×
  • 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é