bseb67 Posté(e) le 14 août 2008 Posté(e) le 14 août 2008 salut, Voulant approfondir mes connaissance, je me suis mis sur les réacteurs.Après les variables systèmes, j'ai voulu m'attaquer au clic droit, dans un dessin j'ai des blocs "etiquette", ceux-si sont liés en fait à des lignes, une ligne = une étiquette.l'étiquette ne sert qu'a afficher une partie des données xdata. Ces xdata contiennent aussiun élément qui dit si on affiche ou non l'étiquette (visible ou non). j'ai fait un réacteur sur le clic droit (petit coucou à patrick_35 pour son exemple), si je le faitsur une étiquette, je lance une dcl avec 2 radio boutons: visible ou invisible. Si je fait ok, je lanceune fonction qui modifie les xdata et doit donc faire un entmod pour mettre à jour la ligne.et bien le entmod me renvoi toujours nil.par contre, si je lance la dcl à la main, et je fait ok, le entmod passe et ma ligne est bien à jour. Alors est-ce normal que ca ne marche pas? j'ai même essayé au-lieu de changer les xdata, de modifierle point d'insertion de mon étiquette (code dxf 10), et là, pareil le entmod marche pas. Sinon, j'ai fait des recherches sur le site, mais je n'ai pas vraiment trouver ce que je cherchai et pas trop compris ce que j'ai trouvé. Car j'aimerai ajouter à mon clic droit dans la partie dessin, l'option visible et invisible en plus de dernière commande, couper, coller, options .... Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
bseb67 Posté(e) le 14 août 2008 Auteur Posté(e) le 14 août 2008 En fait c'est pas vraiment solutionné, mais ici http:// http://discussion.autodesk.com/thread.jspa?threadID=551477 il y a des fonctions qui permettent de modifier les xdata grâce au vla, et ca marche super bien.De même que la modif du code dxf 10 ne marche pas à cause du entmod, un vlax-put-property sur InsertionPoint fonctionne. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Patrick_35 Posté(e) le 14 août 2008 Posté(e) le 14 août 2008 Salut Et un petit entupd après un entmod ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bseb67 Posté(e) le 14 août 2008 Auteur Posté(e) le 14 août 2008 Salut patrick_35! Et un petit entupd après un entmod Et bien non, j'ai aussi essayé cela, mais nada. comme le entmod ne marche, le entupddisont fonctionne puisqu'il renvoie l'entité, mais les modif faites par l'entmod ne sont pasprésentes . :( Mais comme dit, je ruse avec l'utilisation des vla. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Patrick_35 Posté(e) le 14 août 2008 Posté(e) le 14 août 2008 Mais comme dit, je ruse avec l'utilisation des vla. Ah bon, moi avec les réacteurs, je ruse parfois avec les codes dxf :D @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Serge Posté(e) le 15 août 2008 Posté(e) le 15 août 2008 bseb67 Avec les réacteurs, il est impossible d'utiliser certaines fonctions, entre autres et sans se limiter à: entget, entmod, entupd, entmake. Il faut obligatoirement passer par les implémentations d'ActiveX (les fonctions vla). Tiré du fichier d'aide: A callback function is a regular AutoLISP function, which you define using defun. However, there are some restrictions on what you can do in a callback function. You cannot call AutoCAD commands using the command function. Also, to access drawing objects, you must use ActiveX® functions; entget and entmod are not allowed inside callback functions. See Reactor Use Guidelines for more information. Serge
bseb67 Posté(e) le 17 août 2008 Auteur Posté(e) le 17 août 2008 Salut serge, c'est bien ce que je pensais :cool: , et les fonctions vla que j'ai trouvé fonctionnent à merveille.Et pour la commande c'était pareil, je faisait un (command "zoom" "objet" ...) et là le lisp stoppai.Donc mystère résolu, mais d'où en vient la raison? Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Serge Posté(e) le 19 août 2008 Posté(e) le 19 août 2008 bseb67 La vraie raison vient de la façon dont les processus internes communiquent entre-eux. Il ne faut pas oublier qu'un dessin est d'abord une grosse base de données et que ce qe l'on voit à l'éran est une autre base de données distincte (écran virtuel) qui nous permet de sélectionner des objets, de la dragguer, etc. Il y a le noyau d'AutoCAD qui doit communiquer avec ses interfaces de programmation en différents langages ou avec des controles ActiveX qui doivent rouler dans des processus différents. Il y a aussi toutes la série d'événements qu'AutoCAD collecte et envoie à tous les réacteurs. Quand on commence à gratter, il est encore heureux de voir que tout soit toujours synchronisé. Lorsqu'on utilise les fonctions entxxxx, AutoCAD démarre un processus de gestion de base de données qui est incompatible aux autres méthodes, ce qui risquerait d'entrainer des objets mal fermés ou déjà ouvert par un autre processus asynchrone. On a aussi des limitations lorsqu'on ouvre des boites de dialogue en DCL. Si on pouvait mixer les méthodes, on augmenterait de façon signicatives les risques de récursions dans les processus. En C++, le code est plus près du noyau et on dispose généralement de plus de latitude. On dispose en autre d'une fonction SendStringToExecute qui permet de placer une commande de notre choix sur le dessus de la pile des processus en attente et cela permet ainsi de lancer une opération dès qu'AutoCAD est disposé à le faire. Serge
bseb67 Posté(e) le 19 août 2008 Auteur Posté(e) le 19 août 2008 Serge, couche tard ou lève tôt? (3:40). Merci pour les détails, je travail sous autocad que depuis février 2007. Donc je suis encore un débutant ;). Comme tu parles de C++, je voudrais savoir avec quel outils tu développes pour autocad, et si en c++tu as plus de possibilités que le lisp? Et dernièrement si on peut créer des threads (processus) en c++? car disposant de machines mutlicoeurs, autant les utiliser à fond. merci. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Serge Posté(e) le 19 août 2008 Posté(e) le 19 août 2008 bseb67 Je suis un "Couche normal". J'habite Québec donc 6 heures de décalage. Pour C++, un seul environnement: Visual Studio (Pro) Pour le multi-thread, je ne veux pas faire le rabat-joie mais AutoCAD n'utilise qu'un thread. Pire (ou mieux), pour gérer le multi-documents, Autodesk a inventé le concept de brins (séparation d'un fil) afin d'allouer un brin à chaque dessin. Serge
bseb67 Posté(e) le 19 août 2008 Auteur Posté(e) le 19 août 2008 Je suis un "Couche normal". J'habite Québec donc 6 heures de décalage. Normal alors, j'ai un ami (pas mai) qui était au québec au mois de mars pendant 15j pour fêter ses 40ans.Il y avait beaucoup de neige :o . Par contre, c'a ma attristé qu'une ancienne école militaireai brulée, car le bâtiment aviat l'air super beau (architecturalement parlant) Si j'ai l'argent, je pense y aller avec lui pour ses 45ans. en tout cas merci pour l'info. Pour le multi-thread, je ne veux pas faire le rabat-joie mais AutoCAD n'utilise qu'un thread C'est dommage, mais compréhensible, car faut éviter les surcouches à bug. [Edité le 20/8/2008 par bseb67] Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Serge Posté(e) le 19 août 2008 Posté(e) le 19 août 2008 bseb67 J'avais déduit que tu avait 41 ans à cause du 67 dans le nom. Oui, c'est dommage que le manège militaire ait brûlé. Le gouvernement fédéral a promi qu'il allait le faire reconstruire. On y retrouvait l'une des plus anciennes prisons de la ville de Québec (et non, je n'y ai pas résidé). Oui, on a reçu de la neige ... Un total de 558cm. Si je savais comment ajouter des photos, je montrerais le devant et l'arrière de notre maison. Pour bien s'imaginer ce que ça donne (car le vent fait empirer les choses), on a un panier de basket-ball dans la cour. Le panier est à 10 pieds et il y a environ 2 pieds de plus pour le dessus du panneau (soit disons 4 mètres). Le sommet de la butte de neige dépassait ce panneau d'environ 1 mètre. Je me suis réveillé un matin et il faisait complètement noir dans la maison. Il a fallut que j'aille dégager la neige qui bloquait les fenêtres. J'en connais un qui ne pouvait même plus sortir par la porte. Il a fallut qu'il se fasse un tunnel en transportant la neige jusqu'à dans sa baignore (et tout ceci avec photos à l'appui). Je lance l'invitation à tous. Si vous venez à Québec, me prévenir à l'avance pour que je me libère. Je vous ferai visiter ... (comme Tramber m'a promi de me faire visiter Colmar) Serge
bseb67 Posté(e) le 20 août 2008 Auteur Posté(e) le 20 août 2008 salut serge! Euh, non, je n'ai pas 41 ans, le 67 c'est par ce que j'habite dans le département 67 en france.Pour mettre des photos il faut tout d'abord déposer tes photos sur un site web ou des pages persos.Moi je suis chez free pour mon accès web, et j'ai donc un site à mon nom bseb67.free.fr.Et là j'ai déposé mes images, après lorsque tu tapes un message, il suffit de cliquer sur le petit icone qui représente un écran et un palette de dessin (à coté de l'icone représentant la terre), et entre les deux balises tu colles l'adresse web de l'image ex: http://bseb67.free.fr/.../mon_image.jpgVoilà. Pour la hauteur de neige j'avais vu les photos de mon ami, là où il était hébergé, il devait sortir par la terrasse au premier étage, puis ils ont dégagé la porte d'entrée. a+ Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Serge Posté(e) le 20 août 2008 Posté(e) le 20 août 2008 bseb67 Merci pour le tuyau. Il me semble cependant avoir vu des photos à même les messages et non en référence (bien que je ne trouve pas que ce soit une bonne idée puisqu'un jour le site ne seraplus utilisable). Serge
lili2006 Posté(e) le 20 août 2008 Posté(e) le 20 août 2008 Bonjour à toutes et tous, Serge, pour les images directement dans les messages, j'utilise souvent ce site et occasionnellement celui-ci ! Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant