Aller au contenu

sam-123

Membres
  • Compteur de contenus

    55
  • Inscription

  • Dernière visite

Tout ce qui a été posté par sam-123

  1. sam-123

    Excel

    Finalement j’ai finie par trouver :red: Il fallait mettre la variable « System.Globalization.CultureInfo » sur « en-US »
  2. sam-123

    Excel

    Désole, Avec ca je ne suis pas plus avancé ! :question:
  3. sam-123

    Excel

    Oh !, ca me conviendrais parfaitement si ca ne bloque pas !!! Je n’arrive pas à voir ce qui ne fonctionnent pas dans cette procédure, ca bloque sur la ligne n°4 (l’ouverture du fichier) MyXlClasseur = MyXlApp.Workbooks.Open("C:\Test.xls") [Edité le 12/4/2010 par sam-123]
  4. sam-123

    Excel

    Je ne comprends pas très bien, pourquoi on ne ferait pas simplement ceci Dim MyXlApp As New Excel.Application Dim MyXlClasseur As Excel.Workbook Dim MyXlFeuille As Excel.Worksheet MyXlClasseur = MyXlApp.Workbooks.Open("C:\Test.xls") MyXlFeuille = MyXlClasseur.ActiveSheet MyXlFeuille.Cells(1, 1) = "Test" . . . . . . Et naturellement on fermerait manuellement
  5. sam-123

    Excel

    Salut, Si je dois transmettre en ta classe en vbnet avant la fin de la journée j’aurais attrapé des cheveux gris. :o Je pensais à quelque chose de plus simple : ;) Dim MyXlApp = New Excel._ExcelApplication Dim MyXlClasseur = MyXlApp.Workbooks Dim MyXlFeuille = MyXlApp.Worksheets MyXlClasseur = MyXlApp.Workbooks.Open("C:\\Test.xls", Nothing, Nothing, Nothing, Nothing, Nothing, _ Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing) MyXlFeuille = MyXlApp.ActiveSheet
  6. Bonjour Je voudrais commencer l’exportation des blocks vers un fichier Excel J’ai rajouter la reference : « Microsoft Excel Object Library 1.6 » Donc j’ai commencé à écrire la procédure de base Quand je lance ma commande, Je reçois une erreur (Impossible de créer le composant ActiveX) En vba on devais jouer avec le Resume Next: On Error Resume Next Set Excelapp = GetObject(, "Excel.Application") If Err <> 0 Then Err.Clear Set Excelapp = CreateObject("Excel.Application") End If En Vb .Net doit-on faire de même ? Ma Procedure : _ Public Sub MyEXcel() Dim MyDWG As Autodesk.AutoCAD.ApplicationServices.Document MyDWG = Application.DocumentManager.MdiActiveDocument Dim MyDb As Database MyDb = MyDWG.Database Dim MyXlApp As Microsoft.Office.Interop.Excel.Application Dim MyXlFeuille As Microsoft.Office.Interop.Excel.Worksheet MyXlApp = GetObject(, "Excel.Application") MyXlFeuille = MyXlApp.ActiveSheet Using LockDoc As DocumentLock = MyDWG.LockDocument() Using MyTrans As Transaction = MyDb.TransactionManager.StartTransaction MyXlFeuille.Cells(1, 1) = "Ligne 1" MyXlFeuille.Cells(2, 1) = "Ligne 2" MyXlFeuille.Cells(3, 1) = "Ligne 3" MyTrans.Commit() End Using End Using End Sub
  7. Bonjour a tous, Voila je vais essayer d’être claire (ce n’est pas souvent le cas !). Voila quand j’attache les plans en references je mets tous le contenu en Layer « 0 » et le reste en « ByLayer » pour qu’il puisse prendre les propriétés de mon layer d’accueille (jusque la je ne vous apprends rien) Et pour me facilite la tache j’ai commencé une procédure qui (j’espérais) ferais le travail Pour les Entity pas de problèmes Pour les blocks simples non plus Mais une fois qu’il y a un Block dans un autre (un Block qui en contient un autre) la ca pose problème Je pensait y accédais par « GetSubentity » mais ca bloque pour la énième fois. Si quelqu’un peux m’aider Ci-dessous la procédure : _ Public Sub BlockEntity() Dim MyDWG As Autodesk.AutoCAD.ApplicationServices.Document MyDWG = Application.DocumentManager.MdiActiveDocument Dim MyDb As Autodesk.AutoCAD.DatabaseServices.Database MyDb = MyDWG.Database Dim MySel As Autodesk.AutoCAD.EditorInput.PromptSelectionResult Dim MySelObj As Autodesk.AutoCAD.EditorInput.SelectedObject Dim FirstEnt As Autodesk.AutoCAD.DatabaseServices.Entity Dim Cnt As Long MySel = MyDWG.Editor.GetSelection() If IsNothing(MySel.Value) = False Then Using LockDoc As DocumentLock = MyDWG.LockDocument() Using MyTrans As Transaction = MyDb.TransactionManager.StartTransaction For Cnt = 1 To MySel.Value.Count MySelObj = MySel.Value.Item(Cnt - 1) FirstEnt = MySelObj.ObjectId.GetObject(Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite) Ici je veux accédais aux entités du block If TypeOf FirstEnt Is BlockReference Then For Each Entity In MySelObj.GetSubentities FirstEnt.UpgradeOpen() FirstEnt.Layer = "0" FirstEnt.Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByAci, 256) FirstEnt.Linetype = "byLayer" Next mais ça ne fonctionne pas Else FirstEnt.UpgradeOpen() FirstEnt.Layer = "0" FirstEnt.Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByAci, 256) FirstEnt.Linetype = "byLayer" End If Next MyTrans.Commit() MyTrans.Dispose() End Using End Using End If End Sub
  8. Oups, j’ai répondu trop vite Merci, gile
  9. Donc si j’ai bien compris dans mon cas ca sera cela ? app.ActiveDocument.SendCommand("(load \"C:\Resources\Vba-Lisp-Dcl\Blindflange.lsp\") ") Parce que même écris comme cela il ne l’accepte pas ?
  10. Salut, gile Le problème c’est les guillemets dans ta procédure On ne peut pas avoir des guillemets dans des guillemets Ou c’es "etc." et "etc." Mais cela ça bloque a tous les coups "etc. "etc."" Ou alors c’est moi qui dis des bêtises encore une fois !
  11. Salut a tous, Je pensais que pour un loadé un programme lisp il fallait étulisé la méthode « SendScommand » Est-ce que je me trompe ? (parce que ca n’a pas l’air de fonctionné!) :mad:
  12. merci,gile ;)
  13. Bonjour, J’ai été quelques temps absent du forum (trop de boulot !t) Est-ce que quelqu’un aurais la gentillesse de m’explique le comment et pourquoi du « Start.scr » qui se trouve dans l’explorateur Visual studio. Merci d’avance
  14. Bonjour Quelqu’un pourrait-il me dire comment faire pour modifier le block d’un » Leader » En vba comme référence il y avait la propriété : Leader.ArrowheadBlock = NomduBlock En Vbnet je ne trouve pas cette propriété ? . . . Dim MyFleche As Leader = New Leader() MyFleche.SetDatabaseDefaults() MyFleche.AppendVertex(New Point3d(PtInst(0), PtInst(1), PtInst(2))) MyFleche.AppendVertex(New Point3d(PtEnd(0), PtEnd(1), PtEnd(2))) MyFleche.HasArrowHead = True RecTablEntity.AppendEntity(MyFleche) MyTrans.AddNewlyCreatedDBObject(MyFleche, True) . . .
  15. Merci, Grace a l’exemple j’ai pu règle mon problème :cool:
  16. Bonjour, Peux-tu me donner un petit mot d’explication (gile). Voila cela concerne les blocks (je croyais avoir pige mais non !) Exemple : Je crée un block qui s’appelle « block1 » Je l’enregistre dans « C :\Les Blocks » Maintenant je le fais venir comme cela : Dim MyDbSource As New Database MyDb = MyDWG.Database MyDbSource.ReadDwgFile("C:\Les Blocks.dwg", IO.FileShare.Read, True, "") MyDb.Insert("Block1.dwg",, MyDbSource, True) MyDbSource.Dispose()Dans la boite de dialogue « Insert Block » apparait deux blocks : 1. ("Block1" qui est le bon 2. ("Block1.dwg" qui n’existe pas Je pensais que si je supprimer le » .dwg » je n’aurais pas de problèmes comme cela : MyDb.Insert("Block1",, MyDbSource, True) Je n’aurais pas de problème, mais la il bloque, Maintenant pour éliminer le block « block1.dwg » En attendant que je trouve la solution (ou quelqu’un m’indique la solution) une fois crée J’envoie un « SenCommand » pour le purger
  17. merci beaucoup ;)
  18. Mais en faisant cela ca fonctionne super bien . . . Dim MyHatch As Hatch = New Hatch() RecTablEntity.AppendEntity(MyHatch) MyTrans.AddNewlyCreatedDBObject(MyHatch, True) MyHatch.SetDatabaseDefaults() MyHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31") MyHatch.Associative = True MyHatch.AppendLoop(HatchLoopTypes.Outermost, ColectionObjet) MyHatch.EvaluateHatch(True) MyHatch.PatternScale = 10.0 MyHatch.SetHatchPattern(MyHatch.PatternType, MyHatch.PatternName) MyHatch.EvaluateHatch(True) Fonctions.Curlayer(True) MyTrans.Commit() . . .
  19. Re-salut, On est bien d’accord c’est comme cela que ca viens dans le code . . . Dim MyHatch As Hatch = New Hatch() RecTablEntity.AppendEntity(MyHatch) MyTrans.AddNewlyCreatedDBObject(MyHatch, True) MyHatch.SetDatabaseDefaults() MyHatch.UpgradeOpen() MyHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANGLE") MyHatch.Associative = True MyHatch.AppendLoop(HatchLoopTypes.Outermost, ColectionObjet) MyHatch.PatternScale = 10.0 MyHatch.DowngradeOpen() MyHatch.EvaluateHatch(True) MyTrans.Commit() . . .Parce que cela ne change rien
  20. Bonjour Voila je dessine un objet avec hachure et un Scale de 10.0 Tout fonctionne bien (trop beau pour être vrais) :D En regardant le panneau de propriétés tous correspond impec. Mais le hic, c’est que visuellement il n’a pas applique le scale de 10.0 Il l’a gardé à 1.0, Pourquoi ! Pourquoi ne l’a t’il pas mi a jour :mad: Voila la partir concernant les archures : . . . . . . Dim MyHatch As Hatch = New Hatch() RecTablEntity.AppendEntity(MyHatch) MyTrans.AddNewlyCreatedDBObject(MyHatch, True) MyHatch.SetDatabaseDefaults() MyHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANGLE") MyHatch.Associative = True MyHatch.AppendLoop(HatchLoopTypes.Outermost, ColectionObjet) MyHatch.PatternScale = 10.0 MyHatch.EvaluateHatch(True) MyTrans.Commit() . . . . . . Quelqu’un sait il le pourquoi ?
  21. merci :D
  22. Merci i gile ton exemple sur les views ma résolue mon problème Mais pour le Layout ton indication est trop courte pour que je puisse par mon expérience (trop courte) pour pouvoir la résoudre seul. ;) Question : c’est passible de faire ces deux action en une seule procédure ?
  23. Me revoilà, J’ai passé une nuit agité :mad: Je pensais que ça allais bien ce passer mais comme d’habitude le trou noir ! Ma première ide étais de crée un Layout puis un View dan la même procédure L’ide était bonne mais ma manière n’étais pas la bonne. ;) Alors j’ai fait deux procédure, une pour le Layout l’autre pour la View. Procédure Layout : Elle fonction bien (je trouve) Procédure View : là ca cloche, elle crée effectivement une View mais elle ne l’insert pas dans le Layout crée précédemment. Pourtant je mets le Layout choisie sur Current ? Voila mes deux procédures Procédure Layout : Public Sub lesLayout() Dim MyDwg As Document = Application.DocumentManager.MdiActiveDocument Dim MyDb As Database = MyDwg.Database Using MyTrans As Transaction = MyDb.TransactionManager.StartTransaction() Dim LeBlockTable As BlockTable = MyTrans.GetObject(MyDb.BlockTableId, OpenMode.ForRead) Dim LeLayoutMan As LayoutManager = Autodesk.AutoCAD.DatabaseServices.LayoutManager.Current Dim LeLayout As Layout = Nothing Dim Trouve As Boolean = False Dim LesItems As SymbolTableEnumerator = LeBlockTable.GetEnumerator Do While LesItems.MoveNext Dim LeBlockTableRec As BlockTableRecord = LesItems.Current.GetObject(OpenMode.ForRead) If LeBlockTableRec.IsLayout Then LeLayout = MyTrans.GetObject(LeBlockTableRec.LayoutId, OpenMode.ForRead) If LeLayout.LayoutName = "Test1" Then Trouve = True Exit Do End If End If Loop If Trouve = False Then LeLayout = MyTrans.GetObject(LeLayoutMan.CreateLayout("Test1"), OpenMode.ForWrite) LeLayout.TabOrder = 0 End If MyDwg.Editor.Regen() MyTrans.Commit() End Using End Sub Procédure View : Public Sub LesView() Dim MyDwg As Document = Application.DocumentManager.MdiActiveDocument Dim MyDb As Database = MyDwg.Database Using MyTrans As Transaction = MyDb.TransactionManager.StartTransaction() Dim myLM As Autodesk.AutoCAD.DatabaseServices.LayoutManager myLM = Autodesk.AutoCAD.DatabaseServices.LayoutManager.Current Dim MyBlockTable As BlockTable = MyTrans.GetObject(MyDb.BlockTableId, OpenMode.ForRead) Dim MyBlockTableRec As BlockTableRecord = MyTrans.GetObject(MyBlockTable(BlockTableRecord.PaperSpace), OpenMode.ForWrite) myLM.CurrentLayout = "Test1" Dim MyView As Viewport = New Viewport() MyView.SetDatabaseDefaults() MyView.CenterPoint = New Point3d(0, 0, 0) MyView.Width = 200 MyView.Height = 100 MyBlockTableRec.AppendEntity(MyView) MyTrans.AddNewlyCreatedDBObject(MyView, True) MyDwg.Editor.Regen() MyTrans.Commit() End Using End Sub
  24. Oups, désole j’ai résolue ma bêtise moi-même. ;) Il fallait d’abord crée un Layout
  25. Bonjour a tous et a toutes Je voudrais définir le nom des Layouts crées en donnant un nom, mais . . . Voila : . . . . . . Dim view1 As Viewport = New Viewport() view1.SetDatabaseDefaults() view1.CenterPoint = New Point3d(0, 0, 0) view1.Width = 1189 view1.Height = 841 REM ici je pensé trouver “view1.name” pour indique le nom, mais manque de bol il n’y était pas. :casstet: . . . . . .
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité