belam
Membres-
Compteur de contenus
31 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par belam
-
Salut à tous Chez moi, avec AUTOCAD 2010 cette commande a l'air de marcher. Et voilà ce qu'il me répond : Command: aectoacad Loading AEC Base... Loading AEC Base Extended... Loading AEC Base UI... -EXPORTTOAUTOCAD File format: 2010 Bind xrefs: Yes Bind type: Insert Filename prefix: ACAD- Filename suffix: Export options [Format/Bind/bind Type/Maintain/Prefix/Suffix/?] filename>: Je n'ai pas testé plus loin. A+
-
Mettre des textes qui se mettent à jour tout seuls dans un dessin
belam a répondu à un(e) sujet de Bob_lee_swagger dans Catia
Salut à tous Utiliser la commande RTEXT des Express Tools A la ligne de commande lancer RTEXT Répondre par l'option DIESEL Dans la fenêtre de saisie qui apparait écrire par exemple Imprimé le $(edtime, 0,DD MON YYYY "à" H:MM) Clicquer sur OK A+ Ceci pour avoir la date et l'heure d'ouverture du dessin. L'heure est réactualisée à chaque regénération du dessin ou lorsque l'on lance la commande _REGEN. Manque de pot, je pensais qu'on était dans le forum AUTOCAD. Sous CATIA je ne sais pas comment ça pourrait se faire. [Edité le 7/4/2010 par belam] [Edité le 7/4/2010 par belam] -
Salut à tous Sinon avec la commande _QSELECT On répond au moins à : ------> Object type : Block reference -------> Operator : Select All Valider Autocad répond par le nombre d'entités sélectionnées.
-
Salut à tous Sinon - tu sélectionnes tous les points que tu veux déplacer (ave _QSELECT par exemple) - tu lances la commande _MOVE - à la demande spécifier le premier point de base tu réponds en cliquant un point sur le dessin - enfin à la demande spécifier le second point tu réponds : @0,0,-50 @ signifie que l'on va déplacer les points en coordonnées relatives par rapport au premier point que tu a piqué. A+ [Edité le 26/2/2010 par belam]
-
Salut à tous Ecrire un petit programme qui lit les données ligne par ligne et reécrit cette ligne dans un second fichier en ayant modifié l'altitude. Sinon la proposition de Didier est parfaitement valable. Belam A+
-
Salut à tous A la ligne de commande d'AUTOCAD écrire start Répondre par le nom programme que l'on veut exécuter (avec le chemein complet). Si c'est un programme que l'on utilise souvent, créer un raccourci dans acad.pgp A+
-
Salut à tous Le clavier pour les commandes les plus courantes Les menus déroulants pour les autres Aucune barre d'icones en affichage Belam A+
-
Salut à tous Voir si attacher des Xdata ne ferait pas l'affaire. On peut les attacher avec Express ------> Tools -------> Attach Xdata et les lire avec Express ------> Tools -------> List Object Xdata A+
-
Salut est tous Dans la commande Imprimer -----> Propriétés ------> Custom Proporties, vérifier que la qualié d'impression n'est pas réglée sur Brouillon. A+
-
Salut Mer2022 Tu peux changer la couleur du segment bleu. Sinon il faut utiliser les accochages aux objets. Dans ton cas copier selectionner l'objet après avoir sélectionné Point de base : Shift + clic droit --------> sélectionner extémité cliquer sur l'extrémité du segment rouge second point : Shift + clic droit --------> sélectionner extémité cliquer sur l'extrémité du segment bleu A+ belam
-
Salut à tous C'est re moi J'ai remis au goût du jour la commande bati2 ou b2, c'est la plus simple et la plus courte. Elle dessine un rectangle dont on connait deux points représentant les extrémités d'un coté et la hauteur. Ce peut être les deux point levés d'une construction rectangulaire et de l'autre dimension du rectangle. Par convention le rectangle est dessiné à gauche du coté levé [pt1, pt2] en regardant de pt1 vers pt2. La commande marche correctement. En voici le code. void bati2(){ h = 0.0; struct resbuf *result; ads_initget(1, NULL); resget = ads_getpoint(NULL, _T("\n1° point ? "), pt1); #include "rtcan.h" if(resget != RTNORM) { acutPrintf(_T("\nLa saisie du premier point a échoué.")); _flushall(); _fcloseall(); return; } x1 = pt1[0]; y11 = pt1[1]; ads_initget(1, NULL); resget = ads_getpoint(pt1, _T("\n2° point ? "), pt2); #include "Rtcan.h" if(resget != RTNORM) { acutPrintf(_T("\nLa saisie du second point a échoué.")); _flushall(); _fcloseall(); return; } x2 = pt2[0]; y2 = pt2[1]; acedGetVar(_T("userr2"), &rb); rb.restype = RTREAL; h = rb.resval.rreal; if(h != 0.0) acutPrintf(_T("\nHauteur <%.2lfm> ? "), h); else acutPrintf(_T("\nHauteur ? ")); ads_initget(2, NULL); resget = ads_getdist(NULL, NULL, &h); #include "rtcan.h" if(resget != RTNORM) { acutPrintf(_T("\nLa saisie de la hauteur a échoué.")); _flushall(); _fcloseall(); return; } rb.resval.rreal = h; ads_setvar(_T("userr2"), &rb); dx = x2 - x1; dy = y2 - y11; d = sqrt(dx * dx + dy * dy); gis = gisement(dx, dy) - 1.570796327; x3 = x2 + h * sin(gis); y3 = y2 + h * cos(gis); pt3[0] = x3; pt3[1] = y3; x4 = x1 + h * sin(gis); y4 = y11 + h * cos(gis); pt4[0] = x4; pt4[1] = y4; acedCommand(RTSTR, _T("_pline"), RTPOINT, pt1, RTPOINT, pt2, RTPOINT, pt3, RTPOINT, pt4, RTSTR, _T("_close"), 0); _flushall(); _fcloseall(); return; } C'est programmé plutôt en C et ADS au lieu de C++ et ObjectARX. Si ça peut servir voici aussi le code du programme principal ObjectArx. #include "stdafx.h" #include "tchar.h" #include #include "adscodes.h" #include "acedads.h" #include #include #include #include #include #include #include #include ads_real xor, yor, x1, x2, x3, x4, y11, y2, y3, y4, xprov, yprov; ads_real dx, dy, gis, d, h; ads_point pt0, pt1, pt2, pt3, pt4; char layname[80], buffer[160]; int resget; struct resbuf rb, cecol, osm; void initApp(); void unloadApp(); void helloWorld(); void bati2(); void bati3(); void initApp() { acedRegCmds->addCommand(_T("TOPO1_COMMANDS"), _T("Hello"), _T("Bonjour"), ACRX_CMD_TRANSPARENT, helloWorld); acedRegCmds->addCommand(_T("TOPO1_COMMANDS"), _T("b2"), _T("bati2"), ACRX_CMD_MODAL, bati2); acedRegCmds->addCommand(_T("TOPO1_COMMANDS"), _T("b3"), _T("bati3"), ACRX_CMD_MODAL, bati3); } void unloadApp() { acedRegCmds->removeGroup(_T("TOPO1_COMMANDS")); } void helloWorld() { acutPrintf(_T("\nHello World!")); } #include "gisement.h" #include "bati2.h" #include "bati3.h" extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) { switch (msg) { case AcRx::kInitAppMsg: acrxDynamicLinker->unlockApplication(pkt); acrxRegisterAppMDIAware(pkt); initApp(); break; case AcRx::kUnloadAppMsg: unloadApp(); break; default: break; } return AcRx::kRetOK; } J'ai fais la même chose avec la commande bati3 (b3) qui dessine un rectangle à partir de trois points levés, en positionnant au mieux les coins du rectangle par rapport aux points levés. La commande suivante, plus complxe, fait appel à une boite de dialogue implémentée en DCL que je me propose de remplacer par une boite MFC. A+ belam ------------------------------------------------------------------------------- De toute façon c'est moins grave que si c'était pire. (Frédéric Dard - San Antonio ?) Si c'est pas sûr, c'est quand même peut-être. (Jacque Brel)
-
Dossier Labs de ObjectARX
belam a répondu à un(e) sujet de belam dans ObjectARX/DBX, C++, .NET, RealDWG
Salut à tous C'est re moi J'ai remis au goût du jour la commande bati2 ou b2, c'est la plus simple et la plus courte. Elle dessine un rectangle dont on connait deux points représentant les extrémités d'un coté et la hauteur. Ce peut être les deux point levés d'une construction rectangulaire et de l'autre dimension du rectangle. Par convention le rectangle est dessiné à gauche du coté levé [pt1, pt2] en regardant de pt1 vers pt2. La commande marche correctement. En voici le code. void bati2(){ h = 0.0; struct resbuf *result; ads_initget(1, NULL); resget = ads_getpoint(NULL, _T("\n1° point ? "), pt1); #include "rtcan.h" if(resget != RTNORM) { acutPrintf(_T("\nLa saisie du premier point a échoué.")); _flushall(); _fcloseall(); return; } x1 = pt1[0]; y11 = pt1[1]; ads_initget(1, NULL); resget = ads_getpoint(pt1, _T("\n2° point ? "), pt2); #include "Rtcan.h" if(resget != RTNORM) { acutPrintf(_T("\nLa saisie du second point a échoué.")); _flushall(); _fcloseall(); return; } x2 = pt2[0]; y2 = pt2[1]; acedGetVar(_T("userr2"), &rb); rb.restype = RTREAL; h = rb.resval.rreal; if(h != 0.0) acutPrintf(_T("\nHauteur <%.2lfm> ? "), h); else acutPrintf(_T("\nHauteur ? ")); ads_initget(2, NULL); resget = ads_getdist(NULL, NULL, &h); #include "rtcan.h" if(resget != RTNORM) { acutPrintf(_T("\nLa saisie de la hauteur a échoué.")); _flushall(); _fcloseall(); return; } rb.resval.rreal = h; ads_setvar(_T("userr2"), &rb); dx = x2 - x1; dy = y2 - y11; d = sqrt(dx * dx + dy * dy); gis = gisement(dx, dy) - 1.570796327; x3 = x2 + h * sin(gis); y3 = y2 + h * cos(gis); pt3[0] = x3; pt3[1] = y3; x4 = x1 + h * sin(gis); y4 = y11 + h * cos(gis); pt4[0] = x4; pt4[1] = y4; acedCommand(RTSTR, _T("_pline"), RTPOINT, pt1, RTPOINT, pt2, RTPOINT, pt3, RTPOINT, pt4, RTSTR, _T("_close"), 0); _flushall(); _fcloseall(); return; } Si ça peut servir voici aussi le code du programme principal ObjectArx. #include "stdafx.h" #include "tchar.h" #include #include "adscodes.h" #include "acedads.h" #include #include #include #include #include #include #include #include ads_real xor, yor, x1, x2, x3, x4, y11, y2, y3, y4, xprov, yprov; ads_real dx, dy, gis, d, h; ads_point pt0, pt1, pt2, pt3, pt4; char layname[80], buffer[160]; int resget; struct resbuf rb, cecol, osm; void initApp(); void unloadApp(); void helloWorld(); void bati2(); void bati3(); void initApp() { acedRegCmds->addCommand(_T("TOPO1_COMMANDS"), _T("Hello"), _T("Bonjour"), ACRX_CMD_TRANSPARENT, helloWorld); acedRegCmds->addCommand(_T("TOPO1_COMMANDS"), _T("b2"), _T("bati2"), ACRX_CMD_MODAL, bati2); acedRegCmds->addCommand(_T("TOPO1_COMMANDS"), _T("b3"), _T("bati3"), ACRX_CMD_MODAL, bati3); } void unloadApp() { acedRegCmds->removeGroup(_T("TOPO1_COMMANDS")); } void helloWorld() { acutPrintf(_T("\nHello World!")); } #include "gisement.h" #include "bati2.h" #include "bati3.h" extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) { switch (msg) { case AcRx::kInitAppMsg: acrxDynamicLinker->unlockApplication(pkt); acrxRegisterAppMDIAware(pkt); initApp(); break; case AcRx::kUnloadAppMsg: unloadApp(); break; default: break; } return AcRx::kRetOK; } J'ai fait la même chose avec la commande bati3 (b3) qui dessine un rectangle à partir de trois points levés, en positionnant au mieux les coins du rectangle par rapport aux points levés. La commande suivante, plus complexe, fait appel à une boite de dialogue implémentée en DCL que je me propose de remplacer par une boite MFC. A+ belam ------------------------------------------------------------------------------- De toute façon c'est moins grave que si c'était pire. (Frédéric Dard - San Antonio ?) Si c'est pas sûr, c'est quand même peut-être. (Jacque Brel) [Edité le 20/10/2009 par belam] -
Salut à tous ! La nature mathématique du diamètre du cercle c'est deux fois la nature mathématique du rayon du cercle. :D :D C'est simple - non ? A+ belam
-
Dossier Labs de ObjectARX
belam a répondu à un(e) sujet de belam dans ObjectARX/DBX, C++, .NET, RealDWG
Salut à tous Salut (gile) A partir de l'adresse que tu m'a communiquée à travers ton (Ici) j'ai téléchargé l'ObjectArx2009 et de là, en suivant pas à pas le premier exemple de ArxLabs2009 et àprès maints bidouillages je viens de créer la bien connue commande HELLO qui inscrit "Hello World" sur la ligne de Commande d'Autocad. De prime abord c'est une bonne étape de franchie. A + belam -
Dossier Labs de ObjectARX
belam a répondu à un(e) sujet de belam dans ObjectARX/DBX, C++, .NET, RealDWG
Salut à tous Re à (gile) Merci (gile). J'ai bien téléchargé le fichier en question mais je n'arrive pas à l'ouvrir correctement. Même en essayant de l'ouvrir avec HTML Microsoft ça ne marche pas. Je n'ai que la table des matières sur la gauche de l'écran et au centre j'ai le message " Navigation sur la page WEB annulées ". Est-ce que tu pourrait me l'envoyer non compilé ? Normalement c'est ce qui me manque pour commencer. A+ belam -
Dossier Labs de ObjectARX
belam a répondu à un(e) sujet de belam dans ObjectARX/DBX, C++, .NET, RealDWG
Salut à tous ! Salut (gile) Je ne me lance pas dans le C++, je m'y replonge. J'avais écrit un logiciel en C++ (plutôt en C) qui produisait des ARX qui tournaient sur A2000. Pour différentes causes je ne l'ai ni maintenu ni développé depuis A2000 et je me propose de le faire migrer vers A2010. Tout ce qui peut m'aider à le faire est le bienvenu et je suis preneur de l'ARXLABS 2007. Je pense que ça pourra faire l'affaire. Merci (gile). En fait le plus difficile en ARX c'est de mettre en place une solide plateforme de développement. le reste n'est qu'une question de programmation. C'est un logiciel que j'avais commencé à écrire en langage C sous le système ADS (Advenced Development System) pour Autocad R12. Les boites de dialogue étaient configurées en DCL (elles le sont encore). On avait la possibilité de choisir son éditeur de langage C (Microsoft, Borland, Watcom, ....). j'utilisais ces 2 derniers. Sous R13 et R14 ADS est devenu ADSRX, un système intermédiaire entre ADS et ARX. Microsoft. En A2000, c'est l'ARX et le seul langage à utiliser est le C++ 4.00 de MSDEV (Microsoft). Mon travail en est resté là. Quand je devais absolument écrire quelque chose pour AUTOCAD je le faisait en VB (non en VBA), ainsi j'ai un EXE que je peux, sans souci, transporter d'un micro à l'autre. Depuis, toutes les 2 ou 3 versions d'AUTOCAD, Autodesk change carrément de plateforme de développement (nouvelles librairies ARX, nouvelle version C++ de Visual Studio imposée). Autodesk aurait voulu emm..... le monde qu'il n'aurait pas mieux fait. Je comprends que les plateforme de développement évoluent. mais le plus gênant c'est qu'une ARX produite pour une version donnée ne fonctionne plus sur les versions suivantes (pas de compatibilité). C'est ainsi que des acquéreurs d'ARX, en monnaie sonnante et trébuchante, se retrouvent condamnés à travailler sur d'anciennes versions d'Autocad. Pour mon cas, c'est des ARX qui marchent bien et qu'on utilise toujours. et c'est pour éviter les les aller-retour entre A2000 et A2010 que je me propose de les faire sur la dernière version. Bonne nuit A+ belam -
Salut à tous J'ai téléchargé à partir d'un site AUTODESK ObjectARX_2010_Win_64_and_32Bit.exe. Je l'ai exécuté. Dans l'arbre des dossiers il n'y a pas le dossier LABS :( alors que tous les autres dossiers y sont, CLASSMAP, DOCS, INC, UTILS .... S'il existe et si quelqu'un pouvait me le procurer je pense que ça m'aiderait beaucoup :D . A défaut celui de ObjectARX2008 pourrait trés bien faire l'affaire A + belam
-
Salut à tous Il y a un appareil qui s'appelle profilomètre - On l'a beaucoup utilisé pour lever des voutes de tunnels ferroviaires de souvent plusieurs centaines de mètres, voire plus. C'est un espèce de théodolite auquel est adjoint un appareil de mesure de distance laser (sans réflecteur). On le mettait en station au dessus d'un rail et on enregistrait angle et distance tous les 10 grades en partant du sol le plus proche du rail jusqu'au sol le plus éloigné. Bien entendu seul l'angle vertical variait et l'on faisait une station par profil. On avait developpé une commande Autocad qui permettait de dessiner le profil de la voute ainsi levé et sur ces profils on insérait le gabarit des trains exceptionnels pour voir où il pourrait y avoir problème. Il y a peu de chance que mon iatus te serve à quelque chose mais c'est un travail assez routinier. Si quelqu'un y est confronté ça se fait assez facilement à condition d'avoir le matériel qu'il faut. A + belam
-
Salut à tous Bonsoir (gile) Merci pour tes suggestions trés pertinentes, que malheureusement je ne pourrai pas tester (contrainte de temps) mais je les garde sous le coude au cas où .... Effectivement j'aurais peut être du poser ma question sur ce forum plutôt que sur celui de A2010. En réponse à la question de lili2006 Une DLL ou un ARX sont des fichiers compilés qui peuvent contenir une ou plusieurs commandes directement utilisables (comme "PolylineEdit2.dll qui contient les 2 commandes AVX et DVX) ou des fonctions qui peuvent être appelées par d'autres programmes (passé un moment j'avais écrit une DLL en Fortran Power Station qui contenait 2 fonctions que j'appelais à partir d'un programme en Visual Basic). Bonne nuit A+ belam
-
Salut à tous à lili2006 - ta suggestion a marché. Super Quelqu'un pourrait-il expliquer pourquoi la même expression Lisp ne marche pas sur la ligne de commande ? A + belam
-
Salut à tous Bonsoir lili2006 La DLL est bien dans un dossier référencé dans Tools -------> Options ---> Files ------> Support file Search Path J'ai essayé ce que tu proposes sur la ligne de commande et ça ne marche pas. J'avais même bricolé quelque chose en lisp et ça ne marchait pas. La doc Autodesk a l'air vachement avare sur la question. J'avais un virus qui s'appelait AutoCAD.lsp et depuis je suis allergique à ce fichier mais je vais quand même tester ta suggestion. Je te (et le forum) tiendrai au courant. A + belam
-
Salut à tous Je sais charger automatiquement des LISP, des ARX ou des EXE (obtenues avec Visual Basic) au démarrage d'Autocad. Mais comment faire lorsqu'il s'agit d'une DLL ? Pour le coup, je voudrais charger automatiquement la DLL PolylineEdit2.dll de (gile) qui avec ça, montre qu'il jongle aussi bien en LISP qu'en C++ (et certainement avec d'autres choses) et chapeau bas pour son activité dans le forum. Salut (gile) A + belam
-
Salut à tous J'avais un virus qui s'appelait AutoCAD.lsp. Il se recopiait à chaque ouverture de dessin. apparamment il ne faisait rien de bien grave sauf qu'il désactivait (UNDEFINE) la commande EXPLODE et de là si je voulais utiliser cette commande je devais faire un REDEFINE. J' en suis venu à bout avec l'anti-virus AVAST A + belam
-
Salut à tous Ce problème est récurrent lorsqu'on imprime des images avec la qualité brouillon. Vérifies que tu que tu as bien coché la case qualité normale. A + belam.
-
Salut à tous Une remarque sur A2010. La commande MATCHPROP ne transfère pas certaines propriétés des objets TEXT ou MTEXT vers l'objet RTEXT, notamment le Style et la Hauteur des écritures. Est-ce général ou est-ce une anomalie de ma configuration ? Si ça devait venir d'AUTODESK, je pense qu'il serait interressant, tant que faire se peut, qu'ils y remédient. Qu'en pensez vous ? belam
