(gile) Posté(e) le 24 mars 2011 Posté(e) le 24 mars 2011 Salut, TEST INTERROMPU, merci. Encore une fois, j'aurais besoin de quelque bonne âme qui voudrait bien se livrer à un petit test. Il s'agit de tester si un programme .NET écrit en F# fonctionne sur un poste qui n'a pas de module F# installé. Il faut donc que le .NET Framework 4.0 (qui contient ce module) ne soit pas installé sur le poste, donc pas AutoCAD 2012 (qui l'installe automatiquement). Procédure : - Télécharger FsharpTest.zip - Placer les fichiers Fsharp.Core.dll (le module F#) et FsharpTest.dll (le programme) dans deux dossier différents - Netloader FsharpTest.dll dans AutoCAD - Insérer quelques blocs dans un fichier vierge - Lancer la commande SSBN et entrer le nom d'un bloc inséré : toutes les références de ce bloc devraient être sélectionnées (même les référence de blocs dynamiques anonymes). Si ça ne fonctionne pas (ce qui est probable), un message d'erreur sera affiché en ligne de commande. Dans ce cas, mettre le fichier Fsharp.Core.dll dans le même dossier que le fichier FsharpTest.dll et refaire le test. Si ça ne marche toujours pas, essayer en mettant Fsharp.Core.dll dans un répertoire des chemins de recherche et refaire le test. Si ça ne marche toujours pas, c'est qu'il faut installer F# ou le .NET Framework 4.0 ou AutoCAD 2012 pour pouvoir utiliser les programmes utilisant F#... Le code pour ceux que ça intéresse : module Module1 open System open Autodesk.AutoCAD.DatabaseServices open Autodesk.AutoCAD.EditorInput open Autodesk.AutoCAD.Runtime type AcAp = Autodesk.AutoCAD.ApplicationServices.Application let GetBlockReferences (db : Database) (bName : string) = use tr = db.TransactionManager.StartTransaction() let bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) :?> BlockTable if bt.Has(bName) then let btr = tr.GetObject(bt.[bName], OpenMode.ForRead) :?> BlockTableRecord btr.GetAnonymousBlockIds() |> Seq.cast<_> |> Seq.map (fun id -> tr.GetObject(id, OpenMode.ForRead) :?> BlockTableRecord) |> Seq.append (Seq.singleton btr) |> Seq.collect (fun b -> b.GetBlockReferenceIds(true, false) |> Seq.cast<_> |> Seq.filter (fun id -> let br = tr.GetObject(id, OpenMode.ForRead) let owner = tr.GetObject(br.OwnerId, OpenMode.ForRead) :?> BlockTableRecord owner.IsLayout)) |> Seq.toArray else Array.empty [<CommandMethod("ssbn")>] let test() = let doc = AcAp.DocumentManager.MdiActiveDocument let ed = doc.Editor let pr = ed.GetString("\nNom du bloc:") if pr.Status = PromptStatus.OK then try ed.SetImpliedSelection(GetBlockReferences doc.Database pr.StringResult) with |ex -> ed.WriteMessage("\n{0}", ex.Message) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 24 mars 2011 Posté(e) le 24 mars 2011 hello gile tester effectuer il a bien fallu declarer un dossier a autocad pour qu'il trouve le fsharptest.dllquand meme dossier séparésmeme dossier et dossier connu depuis longtemps par autocad 2011 Commande: ssbn Commande inconnue "SSBN". Appuyez sur F1 pour obtenir de l'aide.et ca avec les trois methodes a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
rebcao Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 Bonjour, Gilles, j'étais sur le point de commencer, mais en vérifiant le module FRAMEWORK est installé sur mon poste ! Je n'ai pas AutoCAD 2012 et pourtant il est là ?!... Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Fraid Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 Bonjour, Pareil que Rebcao, je n'ai pas de poste sans le Framework https://github.com/Fraiddd
(gile) Posté(e) le 25 mars 2011 Auteur Posté(e) le 25 mars 2011 Merci à vous d'avoir essayé. Je n'ai pas été clair, voici quelques précisions : Le Framework .NET est automatiquement installé avec AutoCAD depuis la version 2006, mais suivant les versions d'AutoCAD (ou de Windows), c'est une version différente du framework qui est installée : AutoCAD :2006 / 2007 /2008 / 2009 Framework 2.02010 / 2011 Framework 3.52012 Framework 4.0 Windows Vista et 7 -> Framework 3.5 La version 4.0 du NET est la dernière version, elle n'est installée automatiquement qu'avec AutoCAD 2012 (ou Visual Studio 2010) et c'est la seule à contenir le module F#. Pour vérifier, regarder dans C:\Windows\Microsoft.NET\Framework qui contient un répertoire par version du Framework installé sur le poste. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 Coucou Effectivement Visual Studio 2010a installé la version 4 du FrameWork j'aurais bien aimé t'être utile à quelque chose. Gréviste Éternel débutant... Mon site perso : Programmer dans AutoCAD
Fraid Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 j'ai aussi visual studio d'installé :P https://github.com/Fraiddd
Aviglémy Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 bonjour,j'ai aussi version 4 du Framework, mais ca ne fonctionne pas !Les 3 test commande inconnue à chaque fois. Vous aussi ?
Fraid Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 juste pour info C:\WINDOWS\Microsoft.NET\Framework permet de voir tout les framework installés https://github.com/Fraiddd
(gile) Posté(e) le 25 mars 2011 Auteur Posté(e) le 25 mars 2011 Au temps pour moi, je viens de voir qu'il faut installer le runtime F# pour faire fonctionner les application F# (même si le Framework 4 est installé). Merci pour les test et désolé pour le dérangement, il faut que je revoie ma copie. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Fraid Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 Tu nous a pas du tout dérangé au contraire, je pense que nous sommes contants et fiers de participer a tes expériences elles sont toujours instructives et intéressantes. Je te souhaite bon courage avec le F sharpcela m'a l'air génial mais super compliqué :o https://github.com/Fraiddd
(gile) Posté(e) le 25 mars 2011 Auteur Posté(e) le 25 mars 2011 Bon, Pour pouvoir exécuter des programmes F# sur un poste où n'est pas installé Visual F#, il faut installer le 'runtime F#'. Le fichier fsharp_redist.exe qui installe ce runtime est téléchargeable ici. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Aviglémy Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 Cette fois avec le runtime installé :1- test avec les fichiers dans deux dossiers différents.Après l'entrée du nom du bloc il retourne : eWasErased 2- test avec les fichiers dans le meme dossier.il retourne : eWasErased 3- avec Fsharp.Core.dll dans dossier support :-> : eWasErased Si ca peut faire avancer le schmilblick... :)
(gile) Posté(e) le 25 mars 2011 Auteur Posté(e) le 25 mars 2011 Merci, Si le runtime est installé, il n'y a plus à se préoccuper du fichier Fsharp.Core.dll.En fait, ce que je voulais essayer c'est d'éviter l'installation du runtime uniquement en fournissant ce fichier, il s'avère que ce n'est pas suffisant. Maintenant, concernant l'erreur que tu as, je ne sais pas quoi dire. eWasErased signifie que le programme esssaye d'accéder à un objet qui a été effacé.Je n'arrive pas à reproduire cette erreur. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 25 mars 2011 Posté(e) le 25 mars 2011 Bon, Avec MAP2009 sur Windows XP SP2 Choux blanc avec les différentes étapes du tuto du post d'original ssbn Commande inconnue "SSBN". Pour fsharp_redist.exe je n'ai pas les droits d'admin pour l'installer et en plus j'ai vue que le SP3 était requis, donc... Avec cette config, ma contribution s'arrête ici. Peut être chez moi, si j'ai un petit moment. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 25 mars 2011 Auteur Posté(e) le 25 mars 2011 Merci à tous, On va arrêter là les tests, j'ai vu ce que je voulais pour l'instant. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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