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
-
Re, En changeant la longueur, le point d'origine bouge :o ! Ca m'a l'air bizarre, car tu mets 100 puis 140, mais la valeur en X ne bouge pas de 40, mais de 20, la moitié. Donc j'en déduis que les deux poignées bougent de chaque côté, et chacune de 20. ; IAcadDynamicBlockReferenceProperty: Interface Propriétés de blocs dynamiques d'AutoCAD ; Valeurs de propriétés: ; AllowedValues (RO) = nil ; Description (RO) = "" ; PropertyName (RO) = "Distance" ; ReadOnly (RO) = 0 ; Show (RO) = -1 ; UnitsType (RO) = 2 ; Value = 3.3 ; Aucune méthode Pour mon bloc, je n'ai aucune valeur définie dans allowedvalues. Quand j'édite le bloc que tu as utilisé, waouh :o ! Je ne piges pas grand chose.
-
Re, Ben c'est pratiquement ce que je fais: (while (< cpt lg) ; on test le nom de la propriété (setq propname (vlax-get (nth cpt dbp) 'PropertyName)) (cond ((= (strcase propname) "DISTANCE") (vlax-put-property (nth cpt dbp) 'Value (distance (setq PM (getpoint)) (setq impact (getpoint)))) ) ((and (= (strcase propname) "ORIGIN") (= cpt 1)) (vla-put-value (nth cpt dbp) (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 2)) (list 0.0 (* 1000.0 (distance impact PM)) 0.0)))) ) ((= (strcase propname) "POSITION X") (vlax-put-property (nth cpt dbp) 'Value 0.1) ) ((= (strcase propname) "POSITION Y") (vlax-put-property (nth cpt dbp) 'Value (distance impact PM)) ) ((= (strcase propname) "DISTANCE NGF") (vlax-put-property (nth cpt dbp) 'Value 0.0) ) ((and (= (strcase propname) "ORIGIN") (= cpt 5)) (vlax-put-property (nth cpt dbp) 'Value (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 2)) (list 300.0 0.0 0.0)))) ) ) ; cond ; on incrémente cpt (setq cpt (1+ cpt)) ) ; while Ce que je trouve bizarre aussi, c'est que les doubles sont en mètres, alors que les coordonnées des deux points sont apparemment en millimètres. :casstet: a+ Edit: J'ai oublié le test débile qui permet de vérifier: (vla-put-value (nth cpt dbp) (vla-get-value (nth cpt dbp))) Et bien autocad me jette aussi avec le même message :mad: :o [Edité le 10/1/2008 par bseb67]
-
Re, moi ce qui m'énerve le plus c'est qu'en le faisant à la souris ca marche, et si cela ne fonctionne avec du code lisp ou vlisp, c'est vraiment pourri! :mad: Lundi j'ai fait mon lisp pour calculer le point d'insertion du bloc , c'est plus facile de développer des méthodes mathématiques que de modifier les données. Depuis hier je visite toutes les pages possibles sur google pour trouver quelqu'un qui a trouvé l'astuce. Merci encore pour l'aide.
-
Salut Patrick_35 et merci d'avance pour l'aide. J'ai fait des copies d'écran pour montrer ce que je cherche à faire. Au départ lorsque j'insère mon bloc cotation j'ai ceci: http:// http://bseb67.free.fr/cadxp/bloc_dyn_cotation/bloc_depart.PNG Ce que je cherche à faire c'est un fait coter les hauteurs des réseaux, donc de faire cela: http:// http://bseb67.free.fr/cadxp/bloc_dyn_cotation/modification.PNG Afin d'obtenir à l'arrivée ceci: http:// http://bseb67.free.fr/cadxp/bloc_dyn_cotation/bloc_final.PNG Sauf que, comme je n'arrive pas à modifier les points ORI1 et ORI2, le résultat n'est pas celui voulu: http:// http://bseb67.free.fr/cadxp/bloc_dyn_cotation/demi_resultat.PNG Voilà, j'espère être plus clair ainsi. ;)
-
Projet de lisp pour liste de calques imposés
bseb67 a répondu à un(e) sujet de Morgul dans Pour aller plus loin en LISP
Salut morgul! Pour un fichier texte, voici un exemple simple: (setq VAR_LISTE_CALQUES '(("POPO" couleur geler activer ep_ligne ....) ("PAPA" couleur ....) ) ) Après tu fait simplement un load du fichier txt. Puis dans la suite de ton lisp tu fait une boucle sur la liste des calques du dessin. si (assoc nom_du_calque VAR_LISTE_CALQUES) te renvoie quelque chose tu traite le calque avec les paramètres, sinon, tu renommes le calque. Et voilà. a+ -
Petit supplément, Les propriétés sont bien en readonly false et si je bouge avec ma jolie souris le bloc, les valeurs de ces propriétés changent bien.
-
salut! Ben voilà, je coince sur un truc depuis hier, j'ai des recherches pour savoir comment construire mes nouvelles données, mais autocad me renvoie: erreur: Erreur Automation Entrée incorrecte J'ai un bloc dynamique, j'arrive à le poser où je veux, mais il faut que j'adapte sa forme. Il comporte 6 propriétés: 4 doubles et 2 safearry de double, qui sont en fait des coordonnées 3D. ; on choisit le bloc (setq ename (car (entsel))) (setq e (vlax-ename->vla-object ename)) ;; récupérer les propriétés du bloc dynamique dans une liste (setq dbp (vla-getdynamicblockproperties e)) (setq dbp (vlax-variant-value dbp)) (setq dbp (vlax-safearray->list dbp)) Puis avec un while je boucle sur les propriétés. J'arrive à modifier les doubles avec: (vlax-put-property (nth cpt dbp) 'Value k) Mais pour les 2 points, niet :(. Pourtant je créer bien des données au même format que celles contenues dans le bloc: (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 2)) (list 0.0 (* 1000.0 (distance impact PM)) 0.0))) Qui me renvoie bien un variant contenant un safearray de 3 doubles. Merci d'avance pour l'aide.
-
Salut magnes59. Pour ce qui est de la qualité de la ram, je ne suis pas branché la dessus. Je sais juste que corsair, ocz et kingston sont a peu près de même qualité. C'est vrai qu'elle n'est pas trop chère. j'ai acheté il y a 1 an 2*512Mo de sd-ram en so-dimm pour mon ancien portable (petite surchauffe qui m'avait cramé le disque dur, le lecteur cd et une partie de la ram), et bien j'ai du lacher 120€! La DDR en 2*512 ne coutait que 65 :mad: ! Par contre, il faut voir si ton portable gère la fréquence de la ram. Il faut voir dans la doc. t'inquiètes pas, la ram fonctionnera de toute façon, mais elle ne tournera peut-être pas à fond. a+
-
Oulala!! Ce détail que tu abordes est différent. Une version 32Bits gère 4Go maxi, par contre, tu n'aura pas 4Go de Ram, car le system te bouffe une partie => J'ai eu cette surprise lorsque l'on est passé au 4Go il y a quelques mois. Après plusieurs recherches sur différents forums et avec éclaircissement d'un technicien DELL (et oui on est chez eux, et satisfait des PC et du sav). Certaines fonctions de windows utilise de la ram en cas de "surchage", de plus windows y alloue une place pour ta carte graphique (même s'il elle n'est pas en turbocache). Au bureau on a deux type de config: E6700 avec quadro 1400 et E6700 avec quadro 3500. Sur les premiers je me retrouve avec 3.5Go de ram accessible, pour les second 3.25Go :o :casstet: !! => en fait les 3500 ont plus de ram donc windows leur réserve plus de place. Pour revenir à ce que ton mari t'a dis et ce que lecrabe t'annonce, c'est la mémoire accessible pour un processus. Lorsque tu lance un autocad, dans le gestionnaire de tâches (ctrl+alt+supp) tu verra un processus se nommant AutoCAD. Cet AutoCAD à la droit de demander 2Go de ram pour fonctionner, car windows est configurer ainsi par défaut. Mais la modif donnée par lecrabe te permet de monter ce palier à 3. Dans la pratique, je ne vois pas trop l'intérêt, avec autocad 2007 et 2008, il se plante avant même d'avoir atteint les 2Go, j'ai pu monter 1.8. Je me suis servi de cette astuce des 3Go lors mon stage de fin d'études l'an dernier pour faire des essais de perf sur mon projet => Peu concluant, j'avais l'impression que windows devanit plus moboule encore :P. En espèrant t'avoir un peu éclairé ;) , a+!
-
Salut magnes59! Si t'as les moyens, passe aux 4Go. Car déjà pour vista c'est mieux d'avoir 2Go, alors avec autocad. Dans notre bureau d'études, tous les PC sont passés aux 4Go, avant ce passage, j'avais lancé un petit audit sur l'utilisation en ram, résultat: lorsque les dessinateurs s'y mettent à fond, ils arrivaient à monter à 2.25Go d'utilisation (donc le disque swappait pas mal et cela les ralentissaient). Sur ces 2.25Go j'ai eu un pic pour autocad à 1.65! Bon faut dire, le gars abusait un peu: 15 plans d'ouvert sur le même autocad. Petite question, sais-tu à quoi correspond le turbocache (ou mémoire partagée)? Si le vendeur ne te l'as pas expliqué, avec le giga seulement, c'est vraiment limite :mad: . Les cartes graphiques utilisant le turbocache te bouffe de la ram. Donc dans ton cas 270Mo peuvent utilisés. Mais au niveau perf, une carte 399Mo dédiés sera meilleure qu'une 128Mo avec 399Mo en TC.
-
Re, J'ai fait une petit erreur sur le terme obtus, :cool: La géométrie c'est un petit peu loin (bts en 2002). Obtus c'est entre 90° et 180°, donc correction: supérieur à 180°.Il faut juste savoir le mesurer et le mesurer correctement. [Edité le 2/1/2008 par bseb67]
-
Salut! Bon tout d'abord bonne année à tous!Et surtout bonne santé. Pour moi ce n'est pas trop le cas, j'ai fini l'année 2007 et débuté la 2008 avec la grippe :(, que j'ai refillé à ma femme :cool:. Retour sur le challenge. J'ai du faire un truc de ce genre lors de mes cours à la fac. COmme le dit GIle, on peut chercher le croisé en premier. Faire de bonnes boucles et un petit booléen pour stopper dès le premier croisement trouvé (ou non si l'on veut compter le nombre de croisements). Par contre, si mes souvenir sont bons, la proposition de bred sur les angles est la meilleure approche pour concave-convexe. Un concave comporte au moins un angle obtu, tandis que les convexes n'ont que des angles aigus. Comme je suis encore en vacances, je n'attequerai le challenge que la semaine prochaine. a+! [Edité le 2/1/2008 par bseb67]
-
Re, Ben merci Gile :) . Comme quoi, je ne pense jamais à bien lire la doc sur les fonctions que j'utilise. Matt666 => il arrive que l'on ai des fichiers de 5Mo n'ayant plus grand chose de dessiné dedans. Pour l'instant on faisait un wbloc pour nettoyer, mais le hic, c'est qu'il supprime des choses que l'on souhaite garder.
-
Salut à tous!! Me servant souvent du entnext (pour les attributs), du entlast pour vérifier si mes appels ont bien créer des éléments. Je suis un peu déçu de ne pas avoir un entfirst :( :( :( . Alors, est-il possible de faire cette fonction? Ce serai pas mal :D , enfin je pense, car cela me tenterai bien de l'avoir afin de scanner un peu les dessins, pour faire du nettoyage par exemple. Ceci pourrai même faire un challenge ! La seule méthode bourrin qui me vient à l'esprit est de chercher grace à l'oid en vlisp. Mais je ne sais pas si cet id est vraiment par ordre croissant de création. :casstet:
-
Salut à tous! Matt666 => il manque juste un test afin de vérifier que l'utilisateur n'a pas fait "annuler". Car getfiled renvoi nil dans ce cas là. ;) La fonction quidonc ne fait simplement que lire les données contenue dans le dwl. Donc si l'on veut connaitre l'utilisateur (bien-sur cela n'est intéressant que pour des fichiers en réseau :cool: , puisque ceux en local chez toi seront forcément ouvert que par toi *) il suffit d'ouvrir le dwl. Donc autre astuce, s'il existe un fichier dwl => le fichier est ouvert par quelqu'un. Patrick_35 => Autocad 2008 génère un fichier dwl2 en + du dwl. C'est un peu nul, mais cela me fait marrer :P voici un exemple de contenu et je dirai pourquoi: QUOI :o ! Du xml pourri (accents) pour juste remettre la même chose :P! *: malheureusement autocad ne fait pas toujours disparaitre correctement les dwl. Car même sans planter autocad, j'ai des dwl et dwl2 qui trainent.
-
Re, Patrick_35=> Mon précédent post signifiait qu'en regardant les infos que le boite donne, devrai donner des indices pour ceux qui vont chercher. Par contre, je peux te dire que sur la version 2008, il y a une petite différence :casstet:. Si tu ne l'utilise pas, je la donnerai à la fin de ce challenge ;)
-
Salut! Il existe la commande quidonc, mais elle n'est pas très pratique. Par contre elle peut servir si on regarde son résultat. :cool:
-
Salut tiboulen! Pour MSN, je ne sais pas trop, moi je m'en sers pour écrire à ma femme (moins cher que le sms) Mais j'ai jamais eu de différence avec msn en route ou non. Si dans ton BE, chaque utilisateur garde son poste, et qu'ils veulent communiquer entre eux (donc pas pour l'extérieur), tu peux essayer AtNotes. Nous on s'en sert, et c'est pas mal. Si c'était (et ca l'est peut-être) faisable, les développeurs participant à ce site devrai voir pour créer un chat via autocad ;). a+ [Edité le 11/12/2007 par bseb67]
-
Salut! Bon, ben voilà mes trois versions faites hier à midi. J'ai voulu cherché une avec un apply, mais là (comme le mapcar) c'est moins point faible :( . (defun lst-bseb67-v1( lst) (if lst (progn (if (= (Type lst) 'LIST) (progn (if (= (caar lst) 10) (append (list (cdar lst)) (lst-bseb67-v1 (cdr lst))) (lst-bseb67-v1 (cdr lst)) ) ; if ) ; progn (alert "lst n'est pas une liste") ) ; if ) ; progn ) ; if ) ; lst-bseb67-v1 (defun lst-bseb67-v2( lst / res) (setq res '()) (foreach elem lst (if (= (car elem) 10) (setq res (append res (list (cdr elem)))) ) ; if ) ; foreach res ) ; lst-bseb67-v2 (defun lst-bseb67-v3( lst / res) (setq res '() cpt 0 lg (length lst)) (while (< cpt lg) (if (= (car (nth cpt lst)) 10) (setq res (append res (list (cdr (nth cpt lst))))) ) ; if (setq cpt (1+ cpt)) ) ; foreach res ) ; lst-bseb67-v3 Je sais que l'append est plus lent que le cons, mais je ne suis pas trop con(s) :cool: :D a+!
-
Salut Matt666! Et bien ca lance en challenge :D ! Pour le 14 et 15, je n'ai pas eu trop de temps, mais pour celui-là, j'ai déjà une solution. JE vais tenter une version différente et voir la meilleure. a+.
-
Si tu peux donner ta région ou département, ce serai mieux pour te renseigner ;).
-
Salut Patrick_35! Ton challenge fait référence à un arbre binaire de données. Ton idée est intéressante. On peut la pousser en faisant la fonction de création de la liste, je sais qu'il existe vl-sort et AutoCAD-strl-sort, mais en se basant sur ce principe on peut faire la fonction qui ajoute un élément dans une liste en le plaçant au bon endroit.
-
Ouvrir un gabarit en lisp
bseb67 a répondu à un(e) sujet de bseb67 dans Pour aller plus loin en LISP
:D :D :D Merci Matt666! C'est bien la commande layout, avec l'option gabarit tout simplement :cool: ! -
Ouvrir un gabarit en lisp
bseb67 a répondu à un(e) sujet de bseb67 dans Pour aller plus loin en LISP
Re, J'ai des gabarits qui contiennent chacun une présentation. J'ai plusieurs batiments (6), et plusieurs niveaux (1 à 10), et chaque niveau et découpé en zones (1 à 6). Je chercher à créer un dessin pour un batiment et un niveau donné qui regroupe les présentations contenues dans les gabarits. ex: Bat C, niveau 0 contient 5 zones => insérer gabarit C-0-1, C-0-2, ... C-0-5 (ou C-0-1 est le chemin+nom du fichier gabarit) Voilà. Je sais pas si c'est plus clair. Lorsque j'ai des manip à faire et qui se répète, je cherche toujours à automatiser avec du code ;) Merci. -
Ouvrir un gabarit en lisp
bseb67 a répondu à un(e) sujet de bseb67 dans Pour aller plus loin en LISP
Salut Bred! Réponse acceptée ;) , mais le problème réside dans le fait que j'ai plusieurs fichier à créer avec des gabarit situés dans plusieurs répertoire réseau différents :( . Merci quand même :)
