Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Heureusement ;) @+
  2. Joyeux anniversaire Patrick Et une bougie de plus, doit-on commencer à compter les cheveux blancs ;) [marquee]69x62http://smileys.smileycentral.com/cat/36/36_22_9.gif[/img][/marquee] @+
  3. Patrick_35

    Symbôle pente de toit

    Salut Je ne comprends pas ce que tu souhaites faire exactement. Tu as les variables measureinit et mesurement par exemple ps : dans ce que tu ajoutes dans le dcl, pas besoin du 1er row au vu de ta boite de dialogue @+
  4. Une sage est parmis nous ;) @+
  5. Patrick_35

    style de tracé

    Bravo pour ta solution, et pour continuer sur les histoires de blondes ;) - Histoire 1 - Histoire 2 - Histoire 3 - Histoire 4 - Histoire 5 - Histoire 6 - Histoire 7 - Histoire 8 - Histoire 9 @+
  6. Ou plus poliment, se faire "avoir" @+
  7. Patrick_35

    style de tracé

    Une blonde ??? @+
  8. Salut La réponse en lisp (if (eq (getvar "pstylemode") 0)(command "_.convertpstyles" "_yes")) @+
  9. Je pense que je n'ai pas été assez concis dans ma réponse. Regarde ce sujet @+
  10. Je suis bien d’accord et c’est ce que j’ai dit vu que la commande Y reprend le dernier Yn Sur ce point, on est d’accord et il existe aussi le désigne center ainsi qu’un lisp disponible sur ce site et sans nommer ce que j’ai pu aussi trouver ailleurs. Perso, pour la gestion des blocs, je préfère largement le programme bibles qui ne s’arrête pas qu’à de l’implantation, qui est complètement paramétrables, qui n’a pas besoin d’une vue pour rechercher ses blocs et qui évite d’alourdir le dessin par quelques chose comme 1000 blocs (ce dont on se sert actuellement) Je crois que sur ce sujet, on se rejoint, et pas besoin d’avoir nécessairement Autospeed pour ça. Un bon BE est un BE structuré Je maintien ce que j’ai dit, mais comme tu pousses dans ce sens, un bon prog ne sort pas sur une erreur /quitter /abandon, il indique où se trouve l’erreur ou la fausse manip, ce qui permet à l’utilisateur de bien comprendre l’outil et la manière de s’en servir Que vous ne le vouliez pas, c’est votre choix, mais vous vendez un produit et c’est à vous de vous adapter à l’utilisateur si vous souhaitez le vendre le plus largement possible. De plus, les menus partiels, j’en ai fait un qui a passé toutes les versions sans aucune adaptation. S’il y a des incompatibilités de version, c’est du à une mauvaise programmation On change difficilement les habitudes d’un utilisateur. Une personne qui se sert des raccourcis appréciera votre démarche. Celle qui se sert des icônes trouvera votre produit pas terrible ou fera ses propres icônes si elle doit se servir d’Autospeed @+
  11. Je t'en prie Didier, pas entre nous, j'ai l'impression d'être le grand méchant loup ;) Non, j'ai peut-être moi aussi mal compris. J'ai l'impression à te lire, que c’est plus un sujet métier qu'autre chose, mais Oli35 à l'air d'être satisfait, donc... @+
  12. Bonjour à vous tous D’après ce que j’ai pu lire, la 2000 et la 2005 font des avancés majeurs. Quand à 2002 et 2004, j’ai plus l’impression que c’était plus pour débuguer les versions précédentes et pour faire vivre les développeurs qu’autre chose, mais je suis peut-être un peu mauvaise langue @+
  13. Salut Je suis un peu embêté pour te répondre car je sens que c'est un produit que tu as développé pour tes besoins et auquel tu y as mis tout ton coeur. Et comme tu en ais satisfait et que tu penses que c’est un excellent produit, pourquoi ne pas le vendre. Je vais être honnête et quand même te donner mon sentiment. Il y a des choses utiles comme la commande Y, les métrés et le décompte des blocs. Le reste, on le retrouve plus ou moins dans Autocad ou dans des lisps sur la toile. C’est sûrement plus facile d’accès pour un néophyte que pour un utilisateur confirmé. Par contre, ce que je déplore, c’est la gestion des erreurs par rapport à l’utilisateur qui ne suit pas forcement la logique du programmeur. Si j’oublie de renseigner un champ, c’est au programme de me dire ce qui ne va pas ou d’affecter une valeur par défaut. Bon, je n’ai pas été vicieux de pousser avec les calques verrouillés, mais ... Ce qui serait aussi bien, ce serait de voir pour utiliser les menus partiels et les icônes comme j’ai développé dans un post précédent Oui, mais si la démo est bien faite, pas besoin du mode d'emploi :cool: Quand il s'agit d'additionner des angles, ce n'est par très sorcier, mais le relatif est plus facile à comprendre que l'absolue @+
  14. Je ne suis pas du même avis, le bloc initial est celui qui contient les éléments de base, et à la limite, il suffit de remettre dans l'ordre souhaité pour faire la copie @+ [Edité le 6/7/2005 par Patrick_35]
  15. ah oui, c'est le facteur d'échelle que je ne remplissais pas, je pensais que je retournais dans la boite de dialogue après la sélection. C'est bon maintenant Mais je ne vois rien de révolutionnaire par rapport à la commande _properties sauf un accès un peu plus simple peut-être @+
  16. Salut Didier Le souci pour copier des attributs n'est pas la copie en elle-même, mais de savoir quel attribut vais-je copier et à quel endroit. Pour faire au plus simple et passe-partout, le lisp que je propose recopie le premier attribut du bloc de référence vers le premier attribut du bloc de destination, le second avec le second, etc.... Si le premier bloc à plus d’attributs que celui de destination, ça ne prendra en compte que nombre maximal des attributs de destination (et inversement). Maintenant, s’il faut faire une copie du second attribut du bloc de référence vers le premier attribut du bloc de destination, là c’est vraiment du spécifique et Didier a raison de demander un peu plus de précisions. Kenavo @+
  17. L’option multiple existe dans la commande copier, ou encore avec la commande multiple puis copier Exact Non, je sélectionne bien un bloc. Tan pis, je ne dois pas être doué :( @+ [Edité le 5/7/2005 par Patrick_35]
  18. Salut, Exact, ça ne le fait que pour des blocs identiques. C'était volontaire à l'époque, et le revoici sans ce "blocage" Pour ta sélection, mets la variable pickadd à 1 @+ ;;;================================================================= ;;; ;;; CAT.LSP V1.20 ;;; ;;; Copier des attributs ;;; ;;; Copyright (C) Patrick DEWEVRE ;;; ;;;================================================================= (defun c:cat(/ chemin cmd fichier nom_bloc s p) ;;;--------------------------------------------------------------- ;;; ;;; Gestion des erreurs ;;; ;;;--------------------------------------------------------------- (defun *errcat* (msg) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (princ) (princ (strcat "\nErreur : " msg)) ) (princ) ) (setq *error* s) (setvar "pickadd" p) (setvar "cmdecho" cmd) (princ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine principale ;;; ;;;--------------------------------------------------------------- (defun changer_texte_attributs(/ a b c n r s ttt u v) ;;;------------------------------------------------------------- ;;; ;;; Changement de texte de l'entité ;;; ;;;------------------------------------------------------------- (princ "\nSélectionner le Bloc de Référence.") (setvar "pickadd" 0) (setq s (ssget '((0 . "INSERT")))) (setvar "pickadd" 1) (if s (progn (setq r (entget (ssname s 0))) (if (= (cdr (assoc 66 r)) 1) (progn (princ "\nSélection des Blocs à Mofifier.") (if (setq s (ssget '((0 . "INSERT")))) (progn (setq n 0 u 0) (while (/= (ssname s n) nil) (setq a r v 0 b (entget (ssname s n))) (if (= (cdr (assoc 0 b)) "INSERT") (setq ttt 1) ) (while (and (/= (cdr (assoc 0 a)) "SEQEND") (/= (cdr (assoc 0 b)) "SEQEND")) (setq c (subst (assoc 1 a) (assoc 1 b) b)) (entmod c) (setq a (entget (entnext (cdr (assoc -1 a)))) b (entget (entnext (cdr (assoc -1 b)))) v 1) ) (if (/= v 0) (progn (entupd (cdr (assoc -1 (entget (ssname s n))))) (setq u (1+ u)) ) ) (setq n (1+ n)) ) (if (and (= ttt 1) (= u 0)) (alert "Pas de blocs correspondant au bloc de référence.") ) (if (= ttt nil) (alert "Pas de blocs sélectionnés.") ) (if (/= u 0) (princ (strcat "\n" (itoa u) " blocs modifiés...")) ) ) ) ) (alert "Bloc sans Attributs") ) ) (princ "\nAucune Sélection...") ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine de lancement ;;; ;;;--------------------------------------------------------------- (setq s *error*) (setq *error* *errcat*) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_.undo" "_group") (setq p (getvar "pickadd")) (changer_texte_attributs) (setvar "pickadd" p) (command "_.undo" "_end") (setq *error* s) (setvar "cmdecho" cmd) (princ) ) (setq nom_lisp "CAT") (if (/= app nil) (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp) (princ (strcat "..." nom_lisp " chargé.")) (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter."))) (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter."))) (setq nom_lisp nil) (princ)
  19. Salut Avec la fonction autoload, c’est quand tu appelles ta fonction qu’elle se charge si ce n’est déjà fait et pas avant @+
  20. Un de mes "vieux" lisp @+ ;;;================================================================= ;;; ;;; CAT.LSP V1.10 ;;; ;;; Copier des attributs ;;; ;;; Copyright (C) Patrick_35 ;;; ;;;================================================================= (defun c:cat(/ chemin cmd fichier nom_bloc s) ;;;--------------------------------------------------------------- ;;; ;;; Gestion des erreurs ;;; ;;;--------------------------------------------------------------- (defun *errcat* (msg) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (princ) (princ (strcat "\nErreur : " msg)) ) (princ) ) (setq *error* s) (setvar "cmdecho" cmd) (princ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine principale ;;; ;;;--------------------------------------------------------------- (defun changer_texte_attributs(/ a b c n p r s ttt u v) ;;;------------------------------------------------------------- ;;; ;;; Changement de texte de l'entité ;;; ;;;------------------------------------------------------------- (setq p (getvar "pickadd")) (setvar "pickadd" 0) (princ "\nSélectionner le Bloc de Référence.") (setq s (ssget)) (setvar "pickadd" 1) (if (/= s nil) (progn (setq r (entget (ssname s 0))) (if (= (cdr (assoc 0 r)) "INSERT") (progn (if (= (cdr (assoc 66 r)) 1) (progn (princ "\nSélection des Blocs à Mofifier.") (setq s (ssget)) (setvar "pickadd" p) (if (/= s nil) (progn (setq n 0) (setq u 0) (while (/= (ssname s n) nil) (setq a r) (setq v 0) (setq b (entget (ssname s n))) (if (= (cdr (assoc 0 b)) "INSERT") (setq ttt 1) ) (if (and (/= (cdr (assoc -1 a)) (cdr (assoc -1 b))) (= (cdr (assoc 2 a)) (cdr (assoc 2 b)))) (progn (while (and (/= (cdr (assoc 0 a)) "SEQEND") (/= (cdr (assoc 0 b)) "SEQEND")) (setq c (subst (assoc 1 a) (assoc 1 b) b)) (entmod c) (setq a (entget (entnext (cdr (assoc -1 a))))) (setq b (entget (entnext (cdr (assoc -1 b))))) (setq v 1) ) (if (/= v 0) (progn (entupd (cdr (assoc -1 (entget (ssname s n))))) (setq u (1+ u)) ) ) ) ) (setq n (1+ n)) ) (if (and (= ttt 1) (= u 0)) (alert "Pas de blocs correspondant au bloc de référence.") ) (if (= ttt nil) (alert "Pas de blocs sélectionnés.") ) (if (/= u 0) (princ (strcat "\n" (itoa u) " blocs modifiés...")) ) ) ) ) (alert "Bloc sans Attributs") ) ) (alert "Pas de Bloc Sélectionné...") ) ) (princ "\nAucune Sélection...") ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine de lancement ;;; ;;;--------------------------------------------------------------- (setq s *error*) (setq *error* *errcat*) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_.undo" "_group") (changer_texte_attributs) (command "_.undo" "_end") (setq *error* s) (setvar "cmdecho" cmd) (princ) ) (setq nom_lisp "CAT") (if (/= app nil) (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp) (princ (strcat "..." nom_lisp " chargé.")) (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter."))) (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter."))) (setq nom_lisp nil) (princ)
  21. Après avoir fait des tests, voici mes constatations 1) Amélioration possible pour le choix de la langue par le biais de la variable "DCTMAIN" 2) Amélioration possible en numérotant le dessin afin de suivre facilement la démo 3) Pour la commande Y, amélioration possible pour intégrer les splines. Sinon très bien le fait de balancer d'une vue à une autre et juste de cliquer sur le type de ligne pour continuer le dessin. C'est un plus, mais quand on récupère des plans archi, qu'on n’a pas de chartre graphique, on reste sur la méthode habituelle avec la gestion par calque. Encore une remarque concernant cette commande, on ne revient pas sur le type de lignes, le calque, etc… qu’on avait avant de lancer cette commande 4) Pour la commande C1 à C9, je retrouve juste la commande copier d’autocad et si c’est pour gérer les blocs, il existe bibles (en téléchargement membres) ou encore le designcenter d’autocad 5) Commande VY, rien à dire dessus vu que c’est pour définir les vues qui correspondent aux commandes Y1 à Y9 et C1 à C9 6) Commande ZTR, avec les paramètres par défaut, je n’ai pas compris ; et quand j’ai défini les miens (10 en trame verticale et c en horizontale) ça plante 7) Commande EB, commande pour remplacer un bloc par un autre. Il existe plein de lisp à ce sujet sur le net, et j’en avais fait un aussi il y à un moment déjà. La seule nouveauté est qu’il y a un filtre intégré qu i ne sélectionne qu’un seul nom de bloc. Bien au pas bien, c’est en fonction de chacun 8) Commande AB. Une insertion sur des blocs existants en reprenant leurs points d’insertion… why not. Cela peut-être utile, ça reste à voir avec l’utilisation. Une amélioration possible, quand je choisis que dans une colonne (la droite ou la gauche), ça plante 8) Commande SB. Impossible de l’essayer, ça plante (je suis sur une version 2000) et au vu de la description de la commande, ça me rappelle le commande _properties d’autocad. 9) Commande RB, idem à SB, ça plante et dito _properties 10) Commande MPC. Très pratique malgré tous les utilitaires que l’on peut trouver. Juste une ou deux choses, c’est très orienté sur un métier. Si on veut ajouter des coef de pertes, des hauteurs, que nenni. Encore un détail sur cette commande, quand je souhaite exporter dans un fichier Excel puis parcourir et ensuite annuler, ça plante 11) Commande MLC, idem à MPC 12) Commande MBC. Une amélioration serait de faire voir que la commande fonctionne car le traitement sur mon ordi est relativement long. Sinon, rien de plus que ce que l’on peut trouver sur le net ou un lisp sur la légende dans ce site @+
  22. Je ne suis pas de cet avis. Un menu partiel permet justement de passer d'une version à une autre. J'en ai fait l'expérience, mais avant de pousser plus loin la critique (bonne ou mauvaise), je testerai d’abord ton produit :cool: @+
  23. Patrick_35

    écoeurant

    Oui, enfin.... à part muscler le pouce :cool: @+
  24. Hello, La sélection par fenêtre peut être réalisable. Le problème est dans la sélection. Dans quel ordre doivent se retrouver les attributs ? Il faut faire un trie avec les coordonnées de chaque attribut et dans le sens voulue par l’utilisateur (par exemple de gauche à droite, ou de bas en haut, etc...). Le plus simple est la sélection actuelle J'ai bien un truc dans ce style, mais il faut l'adapter et pour l'instant, je n'ai pas spécialement le temps... @+
  25. Tu es sur une version LT, c’est à dire light. A part la commande attextr, je ne vois rien d’autre @+
×
×
  • 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é