bazoul
Membres-
Compteur de contenus
116 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bazoul
-
Je n'ai pas testé mais il semblerait que la fonction AddAllowedClass utilise une liste, donc en ajoutant appelant la fonction autant de fois que de type d'objet souhaité cela devrait fonctionner ... je vais vérifier mais sur le fond ... PromptEntityOptions peo = new PromptEntityOptions("\nSelectionner une fenêtre: "); peo.SetRejectMessage("\nSelection invalide..."); peo.AddAllowedClass(typeof(Viewport), true); peo.AddAllowedClass(typeof(Polyline), true); peo.AddAllowedClass(typeof(Polyline2d), true); PromptEntityResult per = Application.DocumentManager.MdiActiveDocument.Editor.GetEntity(peo); Après test cela fonctionne ...
-
Aucune Source Disponible
bazoul a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
J'ai rencontré le meme problème mais uniquement avec un windows 64bits et incapable de le solutionner ... j'ai testé différentes manip dont celle exposé sur Through the interface mais rien de rien ... -
Argument pour un dll
bazoul a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Tu peux éventuellement te saisir d'un lisp pour demander les paramètres nécessaire a ta fonction ... <Autodesk.AutoCAD.Runtime.LispFunction("Toto")> _ Public Function Toto(ByVal rb As Autodesk.AutoCAD.DatabaseServices.ResultBuffer) As String Dim args() As TypedValue 'Traitement args = rb.AsArray return "Test" End Function et dans le lisp tu appel la fonction de ta dll avec les paramètres : (setq Result (Toto Param1 Param2)) -
En meme temps si les segments sont continu peut on dire qu'il y a intersection? Dans ce cas rajouter comme indiqué un test sur le point de départ et d'arrivée ou alors se faire un algo maison :D
-
Finir une commande avec une sélection (vb.net)
bazoul a répondu à un(e) sujet de Lommig dans ObjectARX/DBX, C++, .NET, RealDWG
En effet mais avoueons que c'est quand même une bonne habitude a prendre surtout quand tu as plusieurs boucles imbriquées ... -
modifications des dwg depuis répertoire
bazoul a répondu à un(e) sujet de pat06 dans ObjectARX/DBX, C++, .NET, RealDWG
Si j'ai compris ce que tu veux faire essaie de faire ça : ( testé sur Acad2013 ) Dim dir As String = "C:\plans" For Each fichier As String In System.IO.Directory.GetFiles(dir, "*.dwg", SearchOption.AllDirectories) Using db As Database = New Database(False, True) Try db.ReadDwgFile(fichier, FileShare.ReadWrite, True, vbNullString) Using tr As Transaction = db.TransactionManager.StartTransaction db.Insunits = UnitsValue.Centimeters tr.Commit() End Using db.SaveAs(fichier, DwgVersion.Current) Catch ex As Exception End Try End Using Next MsgBox("Traitement terminé") -
Detection de Polylignes 2D croisees/touchees (Papillons)
bazoul a répondu à un(e) sujet de lecrabe dans Suggestions de développements
Messieurs, Ya de ça quelque temps je m'étais amusé a refaire la fonction d'intersection de polyligne autocad et concernant la demande si dessous c'est le temps de traitement qui peche .... pour deux polylignes closes identiques composées de 11.000 arcs qui s'intersectent mon algo mettait 11minute là ou la fonction intersectwith d'autocad en mettait un peu plus de 33minutes .... Concernant une polyligne composée de 1.000arcs l'algo était 62fois plus rapide ... Les temps annoncés tenant compte du temps de conversion des objets autocad en objet ... le tout fait en VB.net. Mon but était de trouver tous les points d'intersections réel entre deux polylignes sélectionnés.. Au final dans mon exercice tous se résumait en calcul mathématique... en revanche j'ai laché le morceau quand j'ai voulu m'attaquer au arcs elliptique ^^ -
Supprimer tous les points d'arrêts
bazoul a répondu à un sujet dans ObjectARX/DBX, C++, .NET, RealDWG
J'arrive bien après la bataille mais .... normalement ya un fichier *.pdb dans le dossier de génération,c'est ce qui gère les points d'arrets si je ne dis pas de bétise,le supprimer devrait régler le pb ... -
Fermeture Dessin en VB net
bazoul a répondu à un(e) sujet de PhilBat dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, Déja si tu es en mode SDI peut etre bien que sa peux poser problème ^^ Sinon pour fermer en enregistrant c'est : Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.CloseAndSave(CurrentFilePath) et pour fermer sans enregistrer c'est : Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.CloseAndDiscard() Cordialement, -
Tutoriel boite de dialogue
bazoul a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
A mon sens le plus difficile dans le .Net,ormis la syntaxe,c'est la compréhension de la POO. Du moment où on a compris le principe,on s'en sort sans trop de difficulté a coup de recherche dans l'explorateur d'objet,de recherche sur le net et de recherche personnelle ... Au passage,a mon sens les API les plus pourris avec lesquel j'ai été amené de travailler reste encore les API microsoft,et notament celle de microsoft Visio ... Quoi qu'il en soit,comme dit précédemment,le temps est l'élément le plus important,comme dans toutes choses. -
Penses à indiquer le sujet comme résolu. Bonne continuation B)
-
Remplace Application.ShowModalDialog(dlg) par dlg.ShowDialog(Autodesk.AutoCAD.ApplicationServices.Application.MainWindow) Tu devrais obtenir le même comportement mais sans l'erreur de contexte. PS: je pensais que tu avais fait un affichage non-modal(.show) au lieu d'un affichage modal(.showdialog) .. je n'avais pas pensé que tu avais utilisé la fonction ShowModalDialog PPS: ton document serai ouvert mais ne sera pas celui actif ...
-
L'utilisation de Path.Combine n'influt en rien le fonctionnement,cela te permet de ne pas te soucier du séparateur entre les deux chemins ^^ A priori en testant tu aurais fais un affichage non modale de ta boite de dialogue ... si tu as un frmdwg.Show(),remplace par frmdwg.showDialog() A toi de me confirmer Cordialement,
-
Bonjour pat06, Si tu me permet,je te conseillerai d'utiliser IO.Path.Combine(DirListBox1.Path, FileListBox1.Text) au lieu de DirListBox1.Path & "\" & FileListBox1.Text Ensuite,il est très certainement plus "propre" d'effectuer le traitement dans une classe et non directement dans le formulaire. Enfin,tu dis que ya un message d'erreur mais tu ne donnes pas d'information ... code erreur,ligne qui provoque l'erreur ... Mieux vaut trop de détails que pas assez ^^ Cordialement,
-
Tutoriel boite de dialogue
bazoul a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
En effet,démarche étrange,mais comme précisé,hier soir j'avais pas la motivation de créer un compte sur le site exmateria ... je suis tombé sur ce post avant de quitter mon travail,et j'ai préféré posté de suite avant d'oublier ^^ -
Tutoriel boite de dialogue
bazoul a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour (Gile), Je me permettrais d'intervenir ici car pas de compte sur le site "Exmateria" et j'avoue volontiers que ce soir je n'ai pas la motivation pour en créer un! A la question de patrick de savoir si je cite : Ce que je peux dire c'est qu'en VB.Net il y a la possibilité de le faire en faisant : - Propriétés du projet - Onglet Référence - Sous le label "Espaces de noms importés" tapper dans la textbox : AcadAp = Autodesk.AutoCAD.ApplicationServices.Application - Cliquer sur le bouton "Ajouter une importation utilisateur Je n'ai pas fais le test en C# [EDIT]( je viens de regarder mais je n'ai pas trouvé...)[/EDIT] mais en VB.Net cela fonctionne et cette alias est utilisable partout dans le projet. Maintenant,bien que cela soit utilisable j'ai envie de dire "ATTENTION" ! Cette méthode peut être dangereuse,notament car cette instruction n'est pas visible dans les fichiers de classes ... Cordialement, -
Bonjour, Je viens de tester sur autocad 2009 SP3 32bits avec en cas de figure: Dans le modelspace : -Une ligne DUCALQUE -Un cercle Acad_ISO -Une polyligne CACHE2 -Une polyligne DUCALQUE Dans le paperspace : -Une ligne Continious Le retour de la fonction est 3entités soit les deux éléments dans le modelspace + 1 élément du paperspace. Tu travailles avec quelle version d'autocad?Language?Service pack? 32 ou 64bits Cordialement,
-
Bonjour, Je suis reparti de ce que tu avais posté,a toi de voir si cela te convient: Dim intGpCode(2) As Integer Dim varDataValue(2) As Variant Dim ObjSelect As AcadSelectionSet Dim i As Integer Dim CurrentObj As AcadEntity 'Création d'une sélection dans le dessin : Set ObjSelect = ThisDrawing.SelectionSets.Add("SelectLineType") 'Code DXF -4 pour les filtre de sélection (<>, >, <, =) intGpCode(0) = -4 varDataValue(0) = "<NOT" 'Code DXF 6 pour le type de ligne. intGpCode(1) = 6 varDataValue(1) = "ByLayer" intGpCode(2) = -4 varDataValue(2) = "NOT>" 'Réalisation de la sélection ObjSelect.Select acSelectionSetAll, , , intGpCode, varDataValue 'Partie vérification MsgBox (ObjSelect.Count) '0 For i = 0 To ObjSelect.Count - 1 Set CurrentObj = Nothing Set CurrentObj = ObjSelect.Item(i) Next i ObjSelect.Delete Cordialement,
-
Bonjour,je me fais détéreur de topic ... Ton problème est toujours d'actualité? Si oui,ton autocad est lancé? Interop? Managé? Tu parles de vba,en conclusion je suppose que ton autocad est lancé,et fichier non ouvert. Je te propose donc le code suivant en managé(non testé mais normalement sa ne devrait pas trop mal marché^^) : Dim db As Autodesk.AutoCAD.DatabaseServices.Database Dim lFile As String = "" Dim lPassword As String = "" Dim lThmb As System.Drawing.Bitmap 'Création d'une nouvelle DataBase db = New Database(False, True) 'Lecture du fichier Dwg db.ReadDwgFile(lFile, FileOpenMode.OpenForReadAndReadShare, False, lPassword) 'Récupération de l'aperçu enregistré lThmb = db.ThumbnailBitmap 'Libération de la DataBase db.Dispose() : db = Nothing
-
Bonjour, Tu souhaite juste afficher un boite de dialogue ou il ne se passe rien ou alors tu souhaites mettre a jour cette boite de dialogue en dynamique avec diverses informations? Cordialement,
-
Bonjour, En soit si je ne dis pas de bêtise récupérer les présentations sa donne ceci: Dim CurrentLayout As AcadLayout Dim i As Integer For i = 0 To ThisDrawing.Layouts.Count - 1 Set CurrentLayout = ThisDrawing.Layouts.Item(i) If CurrentLayout.Name <> "Model" Then 'Traitement a insérer ici End If Next i Set CurrentLayout = Nothing Maintenant à toi de voir pourquoi une liste modifiable .... Cordialement, PS: Ah entre temps tu as trouvé ... ^^
-
Bonjour a vous, Voila alors je me suis lancé dans l'écriture d'une dll C++ pour autocad. Cette Dll ne fait que du calcul,et utilise que des class que j'implémente en plus bien sur des fonctions de base. Grosso,j'ai créé une classe Mabase,puis une classe de Maligne qui hérite de la class de Mabase. La Class MaBase possède une fonction GetDist qui est public La class MaLigne possède une fonction IntersectWith qui prends en paramètre un objet de type MaLigne et deux double. Tous pourrais aller dans le meilleur sauf que bizarrement les choses ne se passent pas comme je le souhaite. Certaine variable déclarée localement dans la fonction InterSetcWith sont indiqué comme "Dist2 erreur : l'identificateur 'Dist2' est hors de portée". J'aurais bien besoin d'un coup de patte sur le sujet mais avant d'en exposer plus esque quelqu'un serait calé sur le sujet C++ ? Si je ne dis pas de bétise je fais du C++ managé compilé en ancienne syntaxe et le tout sous IDE : Visual Studio 2010 et autocad 2012. Cordialement,
-
Je peux te répondre pour autoCad Architecture 2009 ... il te faut faire: -Format/Gestionnaire des styles ( ou commande : _AecStyleManager) Dans l'onglet Objet de documentation/Styles de tables de nomenclature : Définir le style des tableaux que tu souhaites ajouter a ton dessin Puis -Document/Nomenclature/Ajouter une table de nomenclature( ou commande : _AecScheduleAdd) Tu sélectionnes les éléments que tu souhaites ajouter (ou tu t'embêtes pas et tu sélectionne tout!) et tu valides en dessinant ta table de nomenclature et voila. [Edité le 8/8/2011 par bazoul]
-
Contour hachures retrouvé ! (Ecrit en VBA)
bazoul a répondu à un(e) sujet de laurent_a8 dans VBA et VB
Je regarde dans ma machine ce week end et te jetterai le code ^^ -
Contour hachures retrouvé ! (Ecrit en VBA)
bazoul a répondu à un(e) sujet de laurent_a8 dans VBA et VB
Pour ma part j'ai un code similaire en VB.NETqui traine quelque par sur ma machine si ça t'intéresse ....
