Aller au contenu

bonuscad

Membres
  • Compteur de contenus

    5 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    56

Tout ce qui a été posté par bonuscad

  1. Bonjour, Un "truc" dans ce genre? Peut s'affiner encore si cela ne va pas. ((lambda ( ) (while (not (setq ent (entsel "\nChoix d'un objet du calque-source: ")))) (setq nam_lay (cdr (assoc 8 (entget (car ent))))) (if (not (tblsearch "LAYER" (strcat nam_lay "-proj"))) (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 2 (strcat nam_lay "-proj")) '(70 . 0) '(62 . 1) '(370 . -3) '(6 . "Continuous") ) ) ) (setq js (ssget "_X" (list (cons 8 nam_lay)))) (cond (js (command "_.copy" js "" "_none" "*0.0,0.0,0.0" "_none" "*0.0,0.0,0.0") (command "_.change" "_previous" "" "_properties" "_layer" (strcat nam_lay "-proj") "") ) ) (prin1) ))
  2. Je rajouterais, au cas ou tu n'ai pas pris garde, que la carte HPGL/2 est en option. Un renvoi dans la doc te dit aussi que pour l'ajout d'une carte réseau, la carte HPGL/2 est obligatoire . En plus pour le vectoriel (comme Autocad) le language HPGL est nettement préférable. En standard le language est le Post-Script (PS), mieux adapté à l'imagerie. D'ailleurs ça à l'air d'être la vocation de ce modèle de traceur.
  3. Dans ce Document PDF , il y a les cartes réseaux pouvant être utilisé.
  4. Regarde ce SUJET , voir si cela peut t'apporter une solution. [Edité le 6/12/2005 par bonuscad]
  5. La manipulation des nombres entier est forcée dans une fourchette allant de -32 768 à +32767 ceci pour une version 2000-2002 Il me semble que sous 2005 cette limite soit doublée, et tourne autour de 64000 ? (voir l'aide LISP sur (getint) pour avoir les valeur entière limites suivant la version) Si c'est pour affecter à une variable pour du calcul, cela n'est pas utile. Si c'est pour afficher une info,utilise (rtos comme dit ci dessus. (atof (rtos 1234567.0987654321 2 16)) 1.23457e+006 (rtos (atof (rtos 1234567.0987654321 2 16)) 2 16) "1234567.098765432" Les écarts de conversions et de calcul existent, cela exige de faire des (equal R1 R2 Fuzz) pour des test d'égalité de réel.
  6. bonuscad

    Cotation:Position du texte

    A tu essayé de mettre la variable DIMUPT à "Actif", voir si celle-ci ne correspond pas à ton désir.
  7. bonuscad

    Cotation:Position du texte

    Bonjour, Une première approche, je l'ai fait avec la cotation aligné (cela peut se faire avec d'autres) Est ce l'effet escompté? (c'est un enchainement de 2 commandes de cotation) ((lambda ( / ) (command "_.dimaligned" (while (not (zerop (getvar "cmdactive"))) (command pause) ) ) (command "_.aidimtextmove" "_2" (entlast) "") ))
  8. oui, ou encore (setvar "filletrad" 5.0) (setq e1 (entsel "\n1er segment: ") e2 (entsel "\n2eme segment: ")) (command "_.fillet" e1 e2) evidemment :P très pratique quand on a la doc LT2000 ou 2002 :casstet:
  9. bonuscad

    bugs à répétition

    Essayes de jouer avec les variables suivantes: d'abords XLOADCTL et XLOADPATH (celle ci rejoint la réponse d'autospeed) puis tu peux essayer aussi: XEDIT XREFNOTIFY XREFTYPE Faire des essais et voir si le comportemment s'améliore. Pour ma part je travaille avec Xloadctl à 2. Essaye de voir l'état de ces variables sur les postes qui fonctionnent bien, ca pourras peut être aider.
  10. Aurait tu une référence STP, je ne me rapelle pas être tombé sur cette info. J'voudrais me documenter ;)
  11. Christian, Pour info, sur une version complète 2000 (pas 2000i ), je peux te dire que _TEXT fonctionne de manière classique dans un script (fichier SCR) et dans un lisp. Par contre en ligne de commande, ou bouton en mode macro (avec ou sans diesel), elle se comporte comme la commande _DTEXT :mad: En tout cas dans un bouton, je n'y suis pas arrivé. (en fait après l'option rotation validée, impossible de lui faire évaluer quoique ce soit). :casstet: Pas très homogène comme comportement cette commande TEXTE :exclam:
  12. Salut J'espère répondre à ta question! -FHACH ou _-BHATCH en ligne de commande classique. en lisp soit (initdia 0) (command "_.bhatch") ou simplement (command "_.-bhatch") ou directement la fonction (setvar "HPNAME" "ANGLE"); et suivantes .... (bhatch (getpoint "\nSpécifiez le point interne: ")) Il y a aussi la fonction (bherrs) malheuresement il n'y a plus d'info comme dans le passé sur ces fonctions. (j'ai cherché en aveugle le format et les arguments d'appel de la fonction bhatch) je ne connais pas le format pour avoir la fonction avec (ssget) [Edité le 30/11/2005 par bonuscad]
  13. 3 Possibilités: 1 - tu n'as pas tenu compte du Nota Bene concernant le caractère "espace" en trop. 2 - tu confonds peut être Texte et Attribut (défini par Attdef) 3 - Il n'y a rééllement pas de bloc avec attributs dans ton dessin. Mon code est juste un essai pour voir si cela peut convenir à ton souhait. Il faudra l'améliorer si cela convient. En l'état, il concerne TOUS les blocs (avec attributs) du dessin (espace papier et objet). Il pourra être affiné pour ne cibler qu'un seul nom de bloc
  14. bonuscad

    Problème avec un lisp

    Il te faut placer le lisp dans un dossier de recherche déclaré (au choix) TXT2MTEXT nécessite l'installation des express tools. Et même installé le lisp devrait ressemblé à ça pour fonctionner de façon plus certaine: ((lambda ( / js n ent) (if (not (member "leaderex.arx" (arx))) (arxload "leaderex.arx")) (setq js (ssget '((0 . "TEXT"))) n 0) (cond (js (command "_.undo" "_group") (repeat (sslength js) (setq ent (ssname js n) n (1+ n)) (command "_txt2mtxt" ent "") ) (command "_.undo" "_end") ) ) (princ (strcat "\n" (itoa n) " Textes convertis en MultiTextes.")) (prin1) ))
  15. Si tes blocs ont des attributs (excepté ceux qui sont alignés ou fixés). Les quelque lignes suivantes devrait remettre l'orientation de tes attributs à 0.0 quelque soit l'angle d'insertion du bloc. Ceci n'est qu'une première ébauche ((lambda ( / js_blk ent_name n) (defun block_update (block_record / s_e dxf_e) (if (/= (getvar "ATTMODE") 1) (setvar "ATTMODE" 1)) (setq s_e block_record) (while (/= (cdr (assoc 0 (entget (setq s_e (entnext s_e))))) "SEQEND") (setq dxf_e (entget s_e)) (if (eq (cdr (assoc 0 dxf_e)) "ATTRIB") (entmod (subst '(50 . 0.0) (assoc 50 dxf_e) dxf_e)) ) ) (entupd block_record) ) (setq js_blk (ssget "X" '( (-4 . "< AND") (0 . "INSERT") (66 . 1) (-4 . "AND>") ) ) ) (cond (js_blk (princ "\nMise à jour de l'orientation des attribut du Bloc.") (if (eq (getvar "attmode") 2) (setvar "attmode" 1)) (if (zerop (getvar "pickstyle")) (setvar "pickstyle" 1)) (setq n 0) (while (setq ent_name_blk (ssname js_blk n)) (block_update ent_name_blk) (setq n (1+ n)) ) ) (T (princ "\nAucune insertion de bloc trouvé!")) ) (princ) )) NB Changer (-4 . "< AND") en virant l'espace aprés le signe inférieur. Pour des bloc contenant du texte, je te conseille de les convertir en attribut. Ce sera plus simple! [Edité le 25/11/2005 par bonuscad]
  16. Bingo Cela doit être cela! car CMDDIA mis à 0 reproduit les symptômes énoncés. Bon à savoir, étonnant que cela influence _Qleader et pas _Mtext ou _Mtedit :exclam:
  17. Bonjour (entget (car (nentsel "\nChoix d'un objet imbriqué dans Xref: "))) Ceci te donneras les infos DXF de l'objet imbriqué. Si tu veux balayer ta table des blocs (un xref est considéré un peu comme un bloc) Voici quelque lignes qui te montrent comment différencier un bloc d'un xref (defun c:id_xref ( / a liste_xref) (setq a (tblnext "block" t)) (setq liste_xref nil) (while a (if (= (logand (cdr (assoc 70 a)) 4) 4) (progn (setq liste_xref (append liste_xref (list (cdr (assoc 1 a))))) (princ (strcat "\n\t\tXref trouvé ---> " (cdr (assoc 1 a)))) ) ) (setq a (tblnext "block")) ) (princ) )
  18. Essaye comme le suggère Christian de modifier, pour essayer d'isoler le problème, la variable MTEXTED en la passant de interne à :lisped pour voir le comportement après cette modif (tu devrais avoir comme une boite de dialogue classique en DCL)
  19. Sans reacteurs, il y a peut être un dévut de piste. Par exemple tu rajoute les lignes suivantes dans acad200Xdoc.lsp (X variant suivant version) ((lambda ( / fic) (setq fic (open (strcat (getvar "dwgprefix") "Last-Hatch.def") "r")) (cond (fic (mapcar 'setvar '("HPNAME" "HPBOUND" "HPANG" "HPDOUBLE" "HPSCALE" "HPSPACE") (read (read-line fic))) (close fic) )) )) Ceci fera que si le fichier existe, les variables de hachures seront fixés aux derniers paramètres. Après il te faudra utiliser la commande "NONDEF" et "REDEF" pour redéfinir tes commandes de fin de session. La commande "SAUVERAP" (_QSAVE) sera la principale, mais il faudra peut être songer aux autres: _save _quit _close Dans tes redéfinitions de commandes il te faudra inclure la séquence: ((lambda ( / fic) (setq fic (open (strcat (getvar "dwgprefix") "Last-Hatch.def") "w")) (prin1 (mapcar 'getvar '("HPNAME" "HPBOUND" "HPANG" "HPDOUBLE" "HPSCALE" "HPSPACE")) fic) (close fic) )) avant de faire appel à ta commande originelle avec "_.QSAVE" par exemple. Ceci pour sauvegarder l'état des variables de hachures dans le fichier, avant de fermer le dessin. Il faudra bien mettre au point les redéfintions avant de les placer aussi dans le fichier acad200Xdoc.lsp pour que tout ça soit executé automatiquement en transparence. Voilà si cette solution t'interresse et que tu veux la mettre en forme....
  20. Bonjour, Pour avoir ton ossature de base (vu que tout cela tourne), je partirais des demi-coupes et j'appliquerais la commande 3D "REVOLUTION" (_revolve) sur 360°. La commande "EXTRUSION" (_extrude) devrait aussi pas mal dégrossir ta 3D. Et puis après c'est suivant le niveau de détail....
  21. Tout à fait :D Le géomètre travaille en grade, dans le sens horaire et l'origine au Nord. C'est sur que quand je vois des lisps qui travaille en degré pour fournir l'angle à une commande Autocad, généralement sous la forme: (/ (* angle_radian 180) pi) , je sais d'avance que ce lisp poseras un problème pour les angles suivant dans le dessin dans lequel il sera employé. Personnellement, je travaille en radians dans mes lisp (valeur par défaut employé dans la base DXF de n'importe quel dessin) Quand il faut fournir un angle à une commande, au lieu de me casser la tête pour fournir la valeur de l'angle dans l'unité utilisée, j'utilise la définition de l'angle en montrant deux point calculé avec la fonction (polar point angle distance) qui elle travaille toujours en radians. De cette manière je suis sur de l'angle fourni de cette manière à la commande sera bon quelque soit le système angulaire utilisé. En plus c'est plus précis que de passer par le formatage fait par (angtos) Je trouve insolite que les angles soient accepté sous forme de réel, mais aussi sous forme de chaine de texte tel que retourné par (angtos) alors que l'interprétation n'est pas différente (l'angle sousmis est considéré dans les système angulair actif, réél ou texte) L'interprétation ne devrait pas être identique, cela serait plus simple. une valeur réelle devrait être considéré en radians et converti pour le système angulaire actif. Une valeur chaine interprété tel quel dans le système angulaire actif.
  22. Ben :( , c'est sûr que c'est plus court. Je m'obstinais à chercher dans l'autre sens (SCG -> SCU) Maintenant que je le vois écrit, cela saute aux yeux ;) Merci de ta lumière!
  23. Merci de vos commentaires, et à Newton pour son équation. ;) J'avais fait choux-blanc dans mes précédentes réflexions, cette équation était le maillon manquant. Avec la longueur d'arc je suppose ? car avec le rayon c'est simple: (defun c:cerclepl ( / pt_center pt_d ray) (setvar "cmdecho" 0) (initget 1) (setq pt_center (getpoint "\nCentre du cercle: ")) (initget 7) (setq ray (getdist pt_center "\nRayon: ")) (setq pt_d (polar pt_center 0.0 ray)) (command "_.pline" pt_d "_arc" "_angle" (angtos pi) "_ce" pt_center "_close") (setvar "cmdecho" 1) (prin1) )
  24. Comme dit Kallain, fait une recherche avec "marchés publics" ou "dossier consultation entreprises" Tu trouveras certainement quelque chose. L'ennui, dans la majorité des cas, est qu'il faut être inscrit pour pouvoir télécharger les pièces du dossier. http://www.marches-publics.gouv.fr/ http://www.journal-officiel.gouv.fr/jahia/Jahia/pid/1 Cela pour les sites officiel, il en existe plein d'autre non-officiel. Un lien trouvé par harsard et consultable sans inscription http://www.cnrs.fr/aquitaine-limousin/article.php3?id_article=503
  25. Salut Christian, Je ne pourrais pas répondre à ta question car je n'ai pas 2006. J'en profite cependant pour te poser une question sur la cotation. Dans les versions précédentes la cotation de longueur d'arc n'est possible qu'en magouillant, généralement cette cotation n'est pas associative. Cet possibilité de cotation existe-t-elle en 2006? Si non, crois tu qu'il est possible de mettre un champs dynamique dans le texte de cotation? Mon idée serait de me mettre le mode angulaire en radian pour la cotation, sachant que pour un arc de rayon unitaire la valeur de l'angle en radian est égale à la longueur de l'arc. Il suffirait de mettre dans le champ dynamyque (si cela existe) la valeur retournée par la cotation angulaire (en radian) et de multiplier par la valeur du rayon de l'arc pour obtenir la longueur. On aurait ainsi dans ce cas une cotation de longueur d'arc qui serait associative. Merci de ta réponse s'il y en a une. ;)
×
×
  • 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é