bseb67
Membres-
Compteur de contenus
833 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bseb67
-
salut touvenant! Lorsque j'insère des éléments en donnant la possibilité d'une liste de choix, je passe par une dcl et une popup_list. Pour les dcl j'ai lu les trucs sur ce site: www.jefferypsanders.com Le truc c'est donc de te faire un lisp qui insère ton bloc voiture et affiche une boite de dialogue ou tu choisis la marque dans une liste de marque, puis tu ajouter une liste pour les modèles. Voilà, si tu veux plus d'infos sur comment faire, fait le savoir.
-
Salut capde06! C'est la variable OSNAPZ: 0 ou 1 a +!
-
3DConfig - pb Quadro FX 3400 normalement certifiée, mais pas reconnue
bseb67 a répondu à un(e) sujet de Pieroka dans AutoCAD 2007
Les 4Go sont bien là, mais une partie est réservé comme swap pour la ram de la carte graphique. C'est windows qui est fait comme cela, tiens il faudrai essayé sous linux pour voir ce que lui donne. Mais de toute façon, sur un XP32 bits t'es limité à 2Go pour une application. Au-delà autocad plante ou il faut le lancer une seconde fois pour avoir 2*2Go ainsi de suite, mais après ca swap et c'est plus gérable au niveau accès disque -
3DConfig - pb Quadro FX 3400 normalement certifiée, mais pas reconnue
bseb67 a répondu à un(e) sujet de Pieroka dans AutoCAD 2007
Windows XP gère 4Go - ram de la carte graphique. => ca paraît bizarre, mais c'est comme ca.Tous les postes de la boites sont passés à 4Go, reconnus 3.25 pour les pc avec les quadros de 512Mo et 3.5 pour celle à 256Mo. Les processeurs 64 bits, sont limités pour l'instant sous XP 32 à 4Go, XP 64 8 ou 16Go et Vista 16To, de quoi chargé ton disque dur complet en ram ;) -
Salut fanion! Ce n'est pas ca le problème, on utilise des profils itinérants, j'ai essayé autocad avec un autre profil que le dessinateur qui a le problème, autocad tourne bien. On alors pseudo-résolu le problème: remise à zéro du profil itinérant. Il reste juste à re-paramétrer ses options.
-
Salut gile! J'ai essayé, mais cela n'a rien changé. :mad: !!! Sinon au pire, je fait comme d'hab, réinstallation. J'ai déjà fait une restauration, qui n'a pas marché, une réparation aussi sans succès. merci encore
-
Salut! sur un des pc de la boite, autocad à beaucoup de mal :mad: Il est plus lent à démarrer, mais le pire c'est lorsque l'on change d'espace ou de présentation, il lui faut 5 à 10 min pour reprendre la main :casstet: Le dessinateur à peut être (sans faire attention) changer une variable, mais je ne sais quelle ou quoi faire!? Merci pour l'aide.
-
salut morgul! Les blocs dynamiques sont un peu embêtant de ce point de vue, car son nom devient A$.... Donc si tu donne le nom cela ne marche pas. Mais tu as de la chance, car j'ai justement fait un lisp pour cela il y a quelques mois: ;---------------------------------------; ; nom: nom_bloc_ori ; ; role: recherche les blocs dynamiques ; ; ayant pour nom d'origine le nom ; ; nom_rec ; ; param: nom_rec => chaine de caractères; ; retour: la liste des blocs concernés ; ; de: BLAES Sébastien ; ; date: 12/03/2007 ; ;---------------------------------------; (defun nom_bloc_ori ( nom_rec / res s e l lp lp1 lp2 lp3) ; on sélectionne tous les blocs (setq s (ssget "X" '((0 . "INSERT"))) res nil notfind 1) ; on test si la sélection est non nulle (if s ; on boucle tant que l'on a pas traité tous les insert ou ; trouvé le bloc recherché (while (setq e (ssname s 0)) (setq l (entget e)) (if (assoc 360 l) ; on fouille pour trouver le nom du bloc (if (/= (setq lp (entget (cdr(assoc 360 l)))) nil) (if (and (assoc 360 lp) (/= (setq lp1 (entget (cdr(assoc 360 lp)))) nil)) (if (and (assoc 360 lp1) (/= (setq lp2 (entget (cdr(assoc 360 lp1)))) nil)) (if (and (assoc 340 lp2) (/= (setq lp3 (entget (cdr(assoc 340 lp2)))) nil)) (if (= (cdr (assoc 2 lp3)) nom_rec) ; on stocke e (setq res (append res (list e))) ) ; if ) ; if ) ; if ) ; if ) ; if ) ; if ; on retire e de la sélection (ssdel e s) ) ; while ) ; if ; on renvoie res res ) ; nom_bloc_ori [Edité le 28/6/2007 par bseb67]
-
nombre de paramètres variable
bseb67 a répondu à un(e) sujet de bseb67 dans Pour aller plus loin en LISP
Salut didier! Oui, c'est une bonne astuce :P ! Le seul petit souci est que si quelqu'un reprend mes fonctions, il devra capter le truc :casstet: Après les mystères du C avec la pile, voici ceux du lisp. -
nombre de paramètres variable
bseb67 a répondu à un(e) sujet de bseb67 dans Pour aller plus loin en LISP
Salut! Je cherchais juste à savoir comment éviter d'appeler la fonction avec des nil pour les arguments. Je sais qu'il faut tester après si on avait nil ou non. Ma fonction efface tous les blocs ayant pour nom nom_du_bloc ou ceux dont le point d'insertion est point_d'insertion. Comme je l'ai écris, il existe des fonctions lisp qui le font (rtos citée ou strcat par exemple) Merci quand même. je passerai donc nil lors de l'appel -
Salut! Il existe des fonctions lisp (comme rtos) qui prennent un ou plusieurs paramètres. Ce que je cherche c'est faire la même chose avec une fonction appelée efface_bloc: (efface_bloc nom_du_bloc) ou (efface_bloc nom_du_bloc point_d'insertion) Si quelqu'un sait comment faire merci ;) En langage C c'est possible car on peut donner des valeurs par défaut: (efface_bloc nom_du_bloc point_d'insertion=nil) Merci!
-
rechercher/Remplacer texte dans plusieurs folios avec lisp
bseb67 a répondu à un(e) sujet de garfield60 dans Routines LISP
Salut garfield! Lance l'aide aux développeurs sous autocad pour la fonction vl-string-subst. J'ai débuté le lisp il y a 5 mois, et ce fut l'une des premières choses que j'ai faites. Je ne sais pas si t'as eu une formation ou des cours sur les données autocad? Un texte ou texte multiple peut s'attraper dans une sélection par: (setq s (ssget (list '(0 . "TEXT,MTEXT")))) s contiendra la liste des textes, après il suffit de la parcourir afin de tester chaque texte s'il contient la chaine que tu veux remplacer. Tu peux faire une sélection plus restrictive en précisant dans le ssget la chaine que tu cherches: (setq s (ssget (list '(0 . "TEXT,MTEXT")(cons 1 (strcat "*" machaine "*"))))) -
AutoCAD 2008 : Hardware certifié par Autodesk
bseb67 a répondu à un(e) sujet de lecrabe dans AutoCAD 2008
Re-salut! Elle fonctionnera, pour cela y a pas de pb :) Mais les modèles spécifiques sont optimisés pour le dessin. J'ai fait tourné autocad 2005 et 2007 sur un portable Amd qui a 5 ans: Amd XP 1.2Ghz, 1024Mo Ram et carte graphique de 32Mo. Pour 2005 ca passait si fichier pas trop lourd. mais pour de la vrai 3d en 2007, ma carte graphique ne suivait pas. mais pour de la 2D ca allait. Pour résumer, les modèles familiaux (geforce) ont des optimisations pour les jeux qui sont différentes des celui des pros. Je pense que tu sera 10 à 30 % en-dessous du modèle quadro. Ayant fait de la 3D au ponts et chaussées, je disposait d'une geforce7900GTX, je n'ai jamais atteint ses limites, le cpu et le disque dur ne suivaient pas pour les données :( -
AutoCAD 2008 : Hardware certifié par Autodesk
bseb67 a répondu à un(e) sujet de lecrabe dans AutoCAD 2008
Salut esbe! Les séries Geforce8 sont assez performantes pour des applis 3D, mais les modèles quadro (plus chers) sont mieux adpatés. Par contre, si tu souhaites joué aussi avec ton portable, la Geforce c'est le mieux. Car les modèles spécifiques pour le dessin, n'implémente pas toujours les options que les jeux utilisent. A toi de de choisir en fonction de l'utilisation, et toujours le prix! -
Merci Gile ;) ! Ton code marche nickel. Le but du calcul d'angle et que je dois tester si l'angle formé entre deux lignes est bien règlementaire. En tout cas, en visitant un peu plus ce forum, j'ai pu constater que t'es l'équivalent du yoda du lisp :cool: . pour ma part, je suis encore qu'un jeune padawan (cela fait 4 mois que j'ai commencé) Merci encore. bseb
-
Arrghhhhhh :mad: Ca marche pas si deux points ont juste le Z différent. il me dit points 2D confondus, et la cotation angulaire me renvoie ligne de longueur nulle: c toi la nulle!! Donc je vais quand même faire un truc à ma sauce.
-
Ok, merci. C'est justement ce que je cherchais: angle entre 3 points. C'est mieux et plus court que mon truc.
-
Salut! dans mon lisp, je cherches à calculer l'angle entre 3 points, j'utilise le produit scalaire, AB.AC = ||AB||*||AC||*cos(AB,AC). Il existe la focntion cos en LISP, mais son inverse acos non :( Quelqu'un connaitrait le nom de la fonction, ou mieux, une biblio mathématiques arx? Merci d'avance.
-
ajouter des filtres de calques
bseb67 a répondu à un(e) sujet de bseb67 dans Pour aller plus loin en LISP
Salut gegematic! J'ai trouvé comment faire pour les filtres directs, il faut que je fasse un entmakex avec les données du filtre, puis un dictadd sur le dico des filtres (lfent) avec le nom du filtre et l'entité créé. mais c'est vrai pour ce que tu m'a précisé pour les groupes de filtres. J'ai fait un essai, eh bien je ne les ai pas. Merci. -
Salut! J'ai un code qui permet de sauver la liste des filtres de calques: (setq doc (vla-get-activedocument(vlax-get-acad-object)) dict (vlax-vla-object->ename (vla-GetExtensionDictionary(vla-get-layers doc ))) lfent (cdar(dictsearch dict "ACAD_LAYERFILTERS")) l (entget lfent) ) => Dans l, pour les codes 350 (ou 360) on accède aux données de chaque filtre. Et donc je cherche comment faire pour ajouter (ou charger) des filtres. Merci. bseb
-
Merci gile pour l'info, je ne connaissais pas (initdia), mais ca marche. Cela ouvre bien la boite dialogue "insérer". Bonuscad, j'ai essayé ton (getfiled...), cette astuce serai mieux si la définition du bloc serai mis à jour. Son avantage par rapport à insérer, c'est que lisp fonctionne à 100%: Pour (command "inserer"), si on coche une des saisie à l'écran (position d'insertion, échelle ou rotation), la console autocad attend les saisies, pour l'instant ca va, mais le souci c'est que le lisp continue directement est balance alors la suite du code dans la console :( . Le (getfiled..) permet d'insérer par défaut à un point donné (au pire un dcl de saisie de coordonnées peut être fait), il suffit d'activer la boite de dialogue des attributs et le tour est joué. Maintenant il faudrai juste qu'autocad sache que je charge un fichier avec une nouvelle version du bloc.
-
Je viens de résoudre mon premier problème, il faut bien que je passe par un script, sauf que j'ai du coupée en deux ma fonction principale main en main et main1 et mettre dans le script ceci: (vla-sendcommand vlades "inserer (main1) ") :exclam: Oui, on a bien sp2 d'installé. Depuis 1 mois, chaque semaine il y a un autre bug chez quelqu'un dans la boite. Fermeture à cause d'un problème de licence, celle citée avant, problème de police qui font planté autocad,... A ce demandé si un truc pourri circule est flingue les autocad pour que l'on passe à la 2008 :casstet: Merci encore. Et je sais que par écris c'est pas tjs facile de se faire comprendre. bseb
-
La boite de dialogue c'est pour chercher le fichier contenant le bloc. Comme mon lisp doit être exécutable sur n'importe quel dessin, avec n'importe quelle mise à jour de bloc. Je te remercie pour le temps d'aide. Sinon, j'ai une autre question, ca t'es déjà arrivé qu'autocad se ferme "tout seul", càd je lance autocad (2007) quelque soit la touche que je frappe ou le raccourci dans le menu que je clic avec la souris, autocad se ferme. Deux collègues ont déjà eu se problème, à part une réinstallation, j'ai rien trouvé. Le pire c'est que l'on ne sait pas d'où cela vient. car on a rien fait entre le moment où ca marchait et celui où ca marchai plus (a part dessiner)
-
Pu... de truc, ca ma bouffé le texte. Je veux en lisp ouvrir la boite de dialogue de "inserer", mon lisp se résume à cela: ; sauvegarde des attributs (save_attrib) ;insertion de la nouvelle version du bloc ; c'est là que je cherche: (command "inserer") n'ouvre pas la boite de dialogue ; et si je lance le script qui le fait, mon lisp exécute le attsync et load_attrib avant ;même que j'insère le nouvelle version du bloc ;synchro des attributs (command "attsync" "" (entlast) "oui" ) ;rechargement des attributs (load_attrib)
-
Je dois mal me faire comprendre :casstet: Je veux que la boite de dialogue s'affiche en étant dans le lisp. Pour le script ce n'est pas bon. Car mon lisp continu à s'exécuter lorsque je l'appelle. le code principal est celui-ci: ; sauvegarde des attributs (save_attrib) ; on insère la nouvelle version du bloc ; et c'est là mon problème: (command "inserer") ne lance pas la boite de dialogue ; et si je lance le script ici, il fait le attsync et load_attrib avant que j'insère le bloc ; et ce n'est pas ce que je veux :( :( :( :( ; on synchronise les attibuts (command "attsync" "" (entlast) "oui" ) ; on lance la chargement des attributs (load_attrib)
