GEGEMATIC
Membres-
Compteur de contenus
1 416 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par GEGEMATIC
-
Liaison LISP/.NET
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
Salut à tous, et surtout à Krunch, car je m'aperçois que je n'avais jamais posté la version définitive : A la fin, j'ai mis des fonctions exemples qui te montrent comment évaluer directement une fonction lisp avec des arguments : EvalCustomLispWithArg elle permet d'évaluer des trucs du genre : (macommandelisp '(avec une liste) "etunechaine") exemple d'utilisation directement à la ligne de commande : Commande: EVALLISPEXPRESSION Expression lisp à évaluer (avec les parenthèses) ?: (alert "coucou") nil Retour expression évaluée : Type: 5019 Value: Le code : dans LispToNetExtension.vb 'Classe pour évaluation lisp dans .net 'ajoutée le 20/09/2012 'http://www.theswamp.org/index.php?topic=35714.0 'LispDataType 'None 5000 'Double 5001 'Point2d 5002 'Int16 5003 'Angle 5004 'Text 5005 'ObjectId 5006 'SelectionSet 5007 'Orientation 5008 'Point3d 5009 'Int32 5010 'Void 5014 'ListBegin 5016 'ListEnd 5017 'DottedPair 5018 'Nil 5019 'T_atom (T) 5021 'PromptStatus 'None 5000 'Modeless 5027 'Other 5028 'OK 5100 'Keyword -5005 'Cancel -5002 'Error -5001 Imports System.Runtime.InteropServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.EditorInput Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Namespace AcadExtensions ' Credits to Gile chanteau, Tony Tanzillo, Alexander Rivilis, Kerry Brown... ''' <summary> ''' Provides methods to comunicate with AutoLISP. ''' </summary> Public Class LispExtensions Dim ed ''' <summary> ''' Invoke a LISP function using managed invoke() method. ''' The LISP function must be defined as an external subroutine using the c: prefix or invoking vl-acad-defun. ''' Obsolète : ''' Lui préférer ManagedEvalStrLispExpression, qui est plus commed, car elle permet d'évaluer des fonctions qui ''' ne sont pas vl-acad-defun ou c: ''' </summary> ''' <param name="args">The function name (string) following by the function arguments.</param> ''' <returns>The LISP function return value or null if failed.</returns> Public Shared Function InvokeLispManaged(ByVal args As ResultBuffer) As ResultBuffer Return Autodesk.AutoCAD.ApplicationServices.Application.Invoke(args) End Function 'accompagner cette commande la commande lisp suivante: '(defun ManagedEvalStrLispExpression ( strLspExp ) (eval (read strLspExp)))(vl-acad-defun 'ManagedEvalStrLispExpression) 'par commodité, on peut la créer automatiquemen au chargement Public Shared Function ManagedEvalStrLispExpression(ByVal exp As String) As ResultBuffer Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.Text), "ManagedEvalStrLispExpression"), New TypedValue(CInt(LispDataType.Text), exp)) 'à ce stade, input ressemble à ça: ' "ManagedEvalStrLispExpression" "(myLispExpression arg1 arg2 ... argn)" Return AcadExtensions.LispExtensions.InvokeLispManaged(input) End Function 'read a lisp symbol 'accompagner cette commande la commande lisp suivante: '(defun ManagedGetLispSym ( strSym ) (eval (read strSym)))(vl-acad-defun 'ManagedGetLispSym) 'par commodité, on peut la créer automatiquemen au chargement Public Shared Function ManagedGetLispSym(ByVal name As String) As ResultBuffer Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.Text), "ManagedGetLispSym"), New TypedValue(CInt(LispDataType.Text), name)) 'à ce stade, input ressemble à ça: ' "ManagedGetLispSym" "name" Return AcadExtensions.LispExtensions.InvokeLispManaged(input) End Function 'put value to a lisp symbol 'accompagner cette commande la commande lisp suivante: '(defun ManagedPutLispSym ( strSym RsbValue) (set (read strSym) RsbValue))(vl-acad-defun 'ManagedPutLispSym) ''' <summary> ''' Set a LISP variable value using managed invoke(). ''' </summary> ''' <param name="name">The variable name.</param> ''' <param name="rb">The variable value</param> Public Shared Function ManagedPutLispSym(ByVal name As String, ByVal rb As ResultBuffer) GetEditor.WriteMessage(vbLf & "Entrée ManagedPutLispSym:") Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.Text), "ManagedPutLispSym"), New TypedValue(CInt(LispDataType.Text), name) ) 'GetEditor.WriteMessage(vbLf & "Input") 'For Each tv As TypedValue In input 'GetEditor.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) 'Next 'GetEditor.WriteMessage(vbLf & "Input + rb") 'rb.UnmanagedObject For Each val As TypedValue In rb input.Add(val) Next 'à ce stade, input ressemble à ça: ' "ManagedPutLispSym" "name" rbvalue 'For Each tv As TypedValue In input 'GetEditor.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) 'Next Return AcadExtensions.LispExtensions.InvokeLispManaged(input) ' print the value to the commande line End Function 'Ajoute les parenthèses à un resultBuffer représentant une liste 'utile si on veut réutiliser un retour de fonction lisp comme arguments d'une autre fonction lisp Public Shared Function AddParenthesisToresultBuffer(ByVal rb As ResultBuffer) As ResultBuffer Dim tv() As TypedValue = rb.AsArray If (1 < UBound(tv, 1)) Then If Not (tv(0).TypeCode = 5016) Then GetEditor.WriteMessage(vbLf & "Liste sans parenthèses") Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.ListBegin)) ) 'Ajoute les valeurs For Each val As TypedValue In rb input.Add(val) Next input.Add(New TypedValue(CInt(LispDataType.ListEnd))) Return input Else Return rb End If Else Return rb End If End Function End Class End Namespace dans myPlugin.vb Imports System Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Geometry Imports Autodesk.AutoCAD.EditorInput ' This line is not mandatory, but improves loading performances <Assembly: ExtensionApplication(GetType(AutoCAD_VB_plug_in___lisp1.MyPlugin))> Namespace AutoCAD_VB_plug_in___lisp1 ' This class is instantiated by AutoCAD once and kept alive for the ' duration of the session. If you don't do any one time initialization ' then you should remove this class. Public Class MyPlugin Implements IExtensionApplication Public Sub AddDocColEventCreated() AddHandler Application.DocumentManager.DocumentCreated, _ AddressOf InitialiseLispExtension GetEditor().WriteMessage(vbNewLine & "Initialisation des exemples lisp par evenement") End Sub Private Sub InitialiseLispExtension() 'Si plusieurs dll chargées contiennent la classe AcadExtension, chacune recréera ces fonctions lisp: 'Car pour l'instant, il n'est pas possible de tester l'existance de ces commandes tant qu'elles n'existent pas ! 'sauf en utilisant la comamnde non managée GetLispSym, mais ce n'est pas le but. GetEditor().WriteMessage(vbNewLine & "Création des routines lisp utiles à AcadExtension par evenement sur la création de document ") Dim doc As Autodesk.AutoCAD.ApplicationServices.Document doc = Application.DocumentManager.MdiActiveDocument 'fonction lisp pour évaluer un symbole lisp, passé sous forme de chaine de carractère, ex : "myvar" 'est utilisée par la Shared Function ManagedGetLispSym doc.SendStringToExecute("(defun ManagedGetLispSym ( strSym ) (eval (read strSym)))(vl-acad-defun 'ManagedGetLispSym) ", False, False, False) 'fonction lisp pour évaluer une expression lisp, passé sous forme de chaine de carractère,avec les parenthèses ex : "(ManagedGetLispSym \"myvar\")" 'en réalité, est complètement identique à ManagedGetLispSym, mais permet d'éviter la confusion entre l'évalusatio nd'un symbole et d'une expression 'est utilisée par la Shared Function ManagedEvalStrLispExpression doc.SendStringToExecute("(defun ManagedEvalStrLispExpression ( strLspExp ) (eval (read strLspExp)))(vl-acad-defun 'ManagedEvalStrLispExpression) ", False, False, False) 'fonction lisp pour affecter une valeur à un symbole lisp passé sous forme de chaine de carractère et d'un resultbuffer, ex : ManagedPutLispSym "myvar" MyRsbvalue 'est utilisée par la Shared Function ManagedPutLispSym doc.SendStringToExecute("(defun ManagedPutLispSym ( strSym RsbValue) (set (read strSym) RsbValue))(vl-acad-defun 'ManagedPutLispSym) ", False, False, False) GetEditor().WriteMessage(vbNewLine & "Routines lisp ManagedEvalStrLispExpression, ManagedGetLispSym, ManagedPutLispSym créées ") End Sub Public Sub Initialize() Implements IExtensionApplication.Initialize ' Add one time initialization here ' One common scenario is to setup a callback function here that ' unmanaged code can call. ' To do this: ' 1. Export a function from unmanaged code that takes a function ' pointer and stores the passed in value in a global variable. ' 2. Call this exported function in this function passing delegate. ' 3. When unmanaged code needs the services of this managed module ' you simply call acrxLoadApp() and by the time acrxLoadApp ' returns global function pointer is initialized to point to ' the C# delegate. ' For more info see: ' http:'msdn2.microsoft.com/en-US/library/5zwkzwf4(VS.80).aspx ' http:'msdn2.microsoft.com/en-us/library/44ey4b32(VS.80).aspx ' http:'msdn2.microsoft.com/en-US/library/7esfatk4.aspx ' as well as some of the existing AutoCAD managed apps. ' Initialize your plug-in application here 'ajout de l'evenement pour les prochains docs AddDocColEventCreated() InitialiseLispExtension() End Sub Public Sub Terminate() Implements IExtensionApplication.Terminate ' Do plug-in application clean up here End Sub 'GetEditor est utile pour afficher des messages Public Shared Function GetEditor() As Autodesk.AutoCAD.EditorInput.Editor GetEditor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor End Function 'fonction exemple qui utilise invoke() <CommandMethod("ManagedEvalCustomLisp")> _ Public Sub ManagedEvalCustomLisp() Dim doc As Document = Application.DocumentManager.MdiActiveDocument Dim ed As Editor = doc.Editor Dim retour As ResultBuffer ' create a result buffer containing a LISP list Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.ListBegin)), New TypedValue(CInt(LispDataType.Int16), 12), New TypedValue(CInt(LispDataType.Text), "toto"), New TypedValue(CInt(LispDataType.T_atom)), New TypedValue(CInt(LispDataType.ListEnd))) ' bind the list to a 'lst1' LISP variable AcadExtensions.LispExtensions.ManagedPutLispSym("lst1", input) ' call the 'foo' Lisp function which binds the reversed list to 'lst2' ' (defun foo () (setq lst2 (reverse lst1))) (vl-acad-defun 'foo) 'Appel lisp en managé: retour = AcadExtensions.LispExtensions.InvokeLispManaged(New ResultBuffer(New TypedValue(CInt(LispDataType.Text), "foo"))) ' print the value to the commande line ed.WriteMessage(vbLf & "Retour fonction:") For Each tv As TypedValue In retour ed.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) Next ed.WriteMessage(vbLf & "Lst2:") ' get the 'lst2' variable value Dim output As ResultBuffer = AcadExtensions.LispExtensions.ManagedGetLispSym("lst2") ' print the value to the commande line For Each tv As TypedValue In output ed.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) Next ed.WriteMessage(vbLf & "Put lisp managé, création de la liste lst4 avec le retour de fonction, !lst4 pour vérification:") 'ajoute des parenthèses à retour retour = AcadExtensions.LispExtensions.AddParenthesisToresultBuffer(retour) 'version managée putLisp AcadExtensions.LispExtensions.ManagedPutLispSym("lst4", retour) End Sub 'fonction exemple qui utilise invoke(), l'expression lisp est directement entrée à la ligne de commande Autocad 'exemple : evaluer "(Prompt \"\nCoucou\")" <CommandMethod("EvalLispExpression")> _ Public Sub EvalLispExpression() Dim doc As Document = Application.DocumentManager.MdiActiveDocument Dim ed As Editor = doc.Editor Dim retour As ResultBuffer Dim strEval As String = ed.GetString("Expression lisp à évaluer (avec les parenthèses) ?").StringResult 'Appel lisp en managé: retour = AcadExtensions.LispExtensions.ManagedEvalStrLispExpression(strEval) ' print the value to the commande line ed.WriteMessage(vbLf & "Retour expression évaluée :") For Each tv As TypedValue In retour ed.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) Next End Sub 'fonction exemple qui utilise invoke(), le nom de la variable lisp est directement entrée à la ligne de commande Autocad 'exemple : evaluer "myVar" <CommandMethod("EvalLispSymbole")> _ Public Sub EvalLispSymbole() Dim doc As Document = Application.DocumentManager.MdiActiveDocument Dim ed As Editor = doc.Editor Dim strEval As String = ed.GetString("Nom de la variable lisp à évaluer ?").StringResult ed.WriteMessage(vbLf & "ManagedGetLispSym " & strEval & " :") ' get the 'lst2' variable value Dim output As ResultBuffer = AcadExtensions.LispExtensions.ManagedGetLispSym(strEval) ' print the value to the commande line ed.WriteMessage(vbLf & "Value of the lisp symbol '" & strEval & " as resultBuffer :") For Each tv As TypedValue In output ed.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) Next ed.WriteMessage(vbLf & "Put lisp managé, création de la liste lst avec le retour d'évaluation , !lst pour vérification que lst = " & strEval & " :") 'ajoute des parenthèses à retour output = AcadExtensions.LispExtensions.AddParenthesisToresultBuffer(output) 'version managée putLisp AcadExtensions.LispExtensions.ManagedPutLispSym("lst", output) End Sub 'Exemples suivants, évaluation lisp en code non managé aced (obsolete) <CommandMethod("EvalCustomLisp")> _ Public Sub EvalCustomLisp() Dim doc As Document = Application.DocumentManager.MdiActiveDocument Dim ed As Editor = doc.Editor ' create a result buffer containing a LISP list Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.ListBegin)), New TypedValue(CInt(LispDataType.Int16), 12), New TypedValue(CInt(LispDataType.Text), "toto"), New TypedValue(CInt(LispDataType.T_atom)), New TypedValue(CInt(LispDataType.ListEnd))) ' bind the list to a 'lst1' LISP variable AcadExtensions.LispExtensions.SetLispSym("lst1", input) ' call the 'foo' Lisp function which binds the reversed list to 'lst2' ' (defun foo () (setq lst2 (reverse lst1))) (vl-acad-defun 'foo) AcadExtensions.LispExtensions.InvokeLisp(New ResultBuffer(New TypedValue(CInt(LispDataType.Text), "foo"))) ed.WriteMessage(vbLf & "Lst2:") ' get the 'lst2' variable value Dim output As ResultBuffer = AcadExtensions.LispExtensions.GetLispSym("lst2") ' print the value to the commande line For Each tv As TypedValue In output ed.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) Next End Sub <CommandMethod("EvalCustomLispWithArg")> _ Public Sub EvalCustomLispWithArg() Dim doc As Document = Application.DocumentManager.MdiActiveDocument Dim ed As Editor = doc.Editor ' create a result buffer containing a LISP expression containing a function call, with a single list argument Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.Text), "fooArg"), New TypedValue(CInt(LispDataType.ListBegin)), New TypedValue(CInt(LispDataType.Int16), 12), New TypedValue(CInt(LispDataType.Text), "toto"), New TypedValue(CInt(LispDataType.T_atom)), New TypedValue(CInt(LispDataType.ListEnd))) 'à ce stade, input ressemble à ça: ' "fooArg" '( 12 "toto" 'T) 'On note que les parenthèses de l'évaluation de la fonction ne sont pas nécessaires, mais celles de la liste d'arguments le sont 'si la fonction accepte plusieurs arguments, pas de parenthèses ! 'copier coller suivant dans fenetre texte autocad pour définition fooarg : ' (defun fooArg ( lst1 ) (setq lst2 (reverse lst1))) (vl-acad-defun 'fooArg) ' call the 'fooArg' Lisp function which binds the reversed list to 'lst2' AcadExtensions.LispExtensions.InvokeLisp(input) ' get the 'lst2' variable value Dim output As ResultBuffer = AcadExtensions.LispExtensions.GetLispSym("lst2") ' print the value to the commande line For Each tv As TypedValue In output ed.WriteMessage(vbLf & "Type: {0}" & vbTab & "Value: {1}", tv.TypeCode, tv.Value) Next End Sub <CommandMethod("EvalAutoLispWithArg")> _ Public Sub EvalAutoLispWithArg() ' create a result buffer containing a LISP list Dim input As New ResultBuffer( New TypedValue(CInt(LispDataType.Text), "Alert"), New TypedValue(CInt(LispDataType.Text), "toto a zéro")) 'copier coller suivant dans fenetre texte autocad pour définition commande autolisp "alert" '(vl-acad-defun 'alert) ' call the 'fooArg' Lisp function which binds the reversed list to 'lst2' AcadExtensions.LispExtensions.InvokeLisp(input) End Sub 'conclusion: on peut tout faire avec le lisp, et on a plus besoin de 'définir chaque commande lisp appelée par .Net avec un vl-acad-defun ni besoin de c: End Class End Namespace -
utilisation d'une methode non managée
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
salut, Merci de la réponse rapide, et tu confirme mes craintes, ça me fait trop de boulot pour le temps que je vais gagner... Mais comme je m'en servirais un jour, j'en profite pour m'éclairer : Dans le lien que j'ai mis, on vois bien que les methodes sont des static void, comme tu le dit, mais elles sont déclarées dans une structure, et non dans une classe: c'est important ? Pour les arguments, le intPtr représente l'adresse de l'objet xref, et le booléen la valeur oui/non Gérald -
appel fonction lisp depuis .Net
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
ça ne change pas grand chose, l'exemple sont je suis partit était bien en c#... L'interret de la méthode est de s'affranchir des contraintes d'appel avec l'usage d'eval. ça ne doit pas être très compliqué à traduire en c# -
utilisation d'une methode non managée
GEGEMATIC a posté un sujet dans ObjectARX/DBX, C++, .NET, RealDWG
Salut, j'ai besoin d'utiliser la methode SetIsFromOverlayReference (je pense qu'elle doit me permettre de changer le type de xref niveau/attacher) Pour info, le chemin de l'aide sur cette methode : ObjectARX Reference Guide > AcDb Classes > AcDbBlockTableRecord Class > AcDbBlockTableRecord Methods > AcDbBlockTableRecord::setIsFromOverlayReference Method Mon problème, c'est que je ne vois pas vraiment comment utiliser cette methode avec .net, bien que je pense que c'est possible. J'ai un exemple avec acedinvoke qui marche de 2 manières, avec entry point et sans. comment le savoir ? Ce que j'ai trouvé de plus intéressant sur le sujet (malheureusement pour moi en c, mais c'est pas grave) exemple call En copiant bêtement, je ferai ça Public Class Xrefwork 'BlockTableRecord.SetIsFromOverlayReference <System.Security.SuppressUnmanagedCodeSecurity()> _ <DllImport("acad.exe", EntryPoint:="SetIsFromOverlayReference", _ CharSet:=CharSet.Unicode, CallingConvention:=CallingConvention.ThisCall)> _ mais après, comment faire pour créer la methode SetIsFromOverlayReference de l'objet AcDbBlockTableRecord, qui n'est pas un objet à moi ... des idées ? merci, Gérald -
appel fonction lisp depuis .Net
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
Salut Krunch pour ce sujet, tu peux regarder cette conversation : liaison lisp net Je n'ai jamais eu le temps de finir le modèle tout fait, mais avec ce qu'il y a de posté, la liaison marche définitivement et très simplement dans les 2 sens. -
Salut, le problème c'est qu'il faut que le bug se manifeste, aujourd'hui, si je rouvre ce dessin, tout est nickel ... promis je ferais le test la prochaine fois ...
-
Salut, c'est un peu délirant, Mais c'est spécifique aux diabolos dessinés de cette manière (solide) souvent, ils ont une gueule bizarre, mais là c'était vraiment la 4eme dimension !
-
Salut, regardez cette Capture d'écran et vous verrez comment l'évolution dynamique d'un bloc s'affiche chez moi ... (Autocad 2012, w64) NB: station, carte et pilote certifiés ...
-
Salut, C'est vrai que la gestion des indices (par exemple simplement pointer vers les fichier dwg terminant par _B plutôt que _A) n'est pas top. Et parfois, cet outils sensé me faire gagner du temps, finissait par m'en faire perdre beaucoup. Ce qui m'interressait le plus, c'était d'avoir automatiquement un seul PDF à partir de plusieurs sources, et d'avoir une trace de l'arborescence du document. Aujourd'hui j'utilise pdfTk builder pour concaténer mes pdf, c'est vraiment efficace. Pour la trace , un petit lisezmoi.txt dans le répertoire, ça le fait. mais ce qui m'a décidé à abandonner cet outil, c'est le fait que les gestionnaires de feuilles se substituent à l'historique des fichier dessins récents. (du coup, un vieux jeu de feuille se retrouve dans la liste, juste parce qu'on a utilisé le gestionnaire) Je ne sais pas si ce problème est toujours présent dans la 2013, mais pour moi c'était un gros soucis.
-
Affichage de dessins Autocad dans access
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2012
En fait j'ai besoin du format dwg car je veux pour voir dessiner ou modifier, en ouvrant le dessin à partir du formulaire. je vais laisser google mouliner mes demandes, et dans qq jours, je devrais avoir des résultats ... -
Affichage de dessins Autocad dans access
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2012
salut, j'ai une base qui contient des infos texte/nombre/photos et dessin autocad Pour tous les éléments texte/nombre/photos, pas de pb, je sais les saisir les modifier les imprimer, mais pas les dwg : Soit j'arrive à en afficher un (mal zoomé, et statique, c'est à dire toujours le même dessin quelque soit la fiche) en Ole Indépendant, soit je n'arrive pas à l'afficher en Ole dépendant. Pourtant, j'ai vu des discussion parlant de l'insertion de dwg dès access 2 ! -
xref changement de dossier, autocad 2000
GEGEMATIC a répondu à un(e) sujet de radinor1 dans AutoCAD 2012
Salut, Bien sur, on a pas besoin d'ouvrir les dessins un par un avec Autocad, mais avec le gestionnaire, les dessins sont bien "ouverts" (certainement via Dbx ?) et modifiés et sauvegardés, et en plus dans une version d'autocad que tu ne choisis pas (celle de la version du gestionnaire) Du coup, c'est un outil que je trouve assez contraignant... Mais il m'arrive aussi de l'utiliser ! Surtout quand je vais m'"approprier" les fichiers Mais pour les affaires ou je connais d'avance le Subst à faire, et que je vais surtout utiliser comme xref, je préfère cette solution. Gégé -
salut, cette question serait peut être plus appropriée sur un forum access, mais j'ai plus de chance d'avoir une réponse ici ... je cherche à afficher un dessins dans access 2010. En utilisant le Ole Indépendant, j'arrive à afficher mon dessin, mais sans pouvoir gérer le zoom (il y a un x0.1) centré en mode d'affichage echelle, et un x0.1 décentré en mode zoom En Ole Indépendant, je ne peux pas spécifier un chemin "source contrôle", avec le générateur d'expression, du coup mon fichier reste statique En Ole dépendant, je peux spécifier un chemin "source contrôle", mais rien ne s'affiche J'ai essayé d'utiliser un contrôle activeX, mais les 3 que j'ai de chez autodesk n'affichent rien. Des idées ?
-
xref changement de dossier, autocad 2000
GEGEMATIC a répondu à un(e) sujet de radinor1 dans AutoCAD 2012
salut, L’inconvénient des commandes redir ou du gestionnaire des xref, c'est qu'elle t'obligent à ouvrir et modifier tes dessins, donc leur date de création. perso, je n'aime pas changer de date pour le changement d'un chemin d'xref le plus simple, c'est d'utiliser un subst: exemple : rem * redirige le chemin indiqué c: rem * sur le chemin de cette machine e:\ subst c: e:\ avec ces 3 lignes mise dans un fichier bat, autocad cherchera les chemin commançant par c:\ sur e:\ dans ton cas, ça répond à ton problème tu met subst G: \\tsclient\G dans un fichier .bat, lequel fichier tu mettra dans le dossier "démarrage" de windows, (accessible depuis le menu démarrer) pour info, voici l'aide de subst : Associe un chemin à une lettre de lecteur. SUBST [lect1: [lect2:]chemin] SUBST lect1: /D lect1: Lecteur virtuel auquel vous voulez affecter un chemin. [lect2:]chemin Lecteur physique et chemin que vous voulez affecter à un lecteur virtuel. /D Supprime un lecteur substitué (virtuel). SUBST sans paramètres affiche la liste des lecteurs virtuels en cours. Après, il est aussi possible de prévoir un déménagement en passant les chemins d'Xref en relatif: voir cet article de mon blogue: Changement de type de chemin pour les références externes -
aide object arx dans visual studio
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
Salut, J'ai publié sur Augi un article faisant la synthèse des sources d'aide pour .Net, avec également quelques considération personnelles (en prenant de la Hauteur bien sur !) sur certains point qui m'ont posé problème. on le trouve ici -
Bonjour, je suis à la recherche d'une légende (dwg, pdf ou même raster) des plans de modélisation de réseaux effectués avec le logiciel aquasoft, de la Saur En effet, je dois intégrer des réseaux, mais le nom des symboles et leur représentation n'est pas très parlante: 300000 300007 300008 merci d'avance !
-
Modèle C# ou VB pour Visual Studio Express
GEGEMATIC a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
Ces modèles Autodesk, je les vois plus comme des tutos, c'est vrais que commencer à chaque fois un projet avec eux, ce serait un peu lourd. Mais pour beaucoup, qui comme moi sont encore dans le bac à sable, il peuvent servir de guide pour faire des tests ... Pour le débogage, il n'ont effectivement pas le chargement de la dll. Concrètement, ce que je fait, c'est que j'ouvre les feuille .vb ou .cs d'autres projet avec N++, pour ne pas me mélanger les pinceaux, et je copie les parties qui m’intéressent dans visual studio. -
Modèle C# ou VB pour Visual Studio Express
GEGEMATIC a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
Salut, J'aime bien les modèles Autodesk car ils intègrent des exemples pour l'initialisation, la définition de commandes ou de commande lisp etc... Mais j'ai commencé avec ton tutoriel pour la création de son propre modèle, et je trouve que ça m'a beaucoup apporté en terme de compréhension et de démystification d'un projet visual studio. Donc je recommande à tous de commencer par là. Pour compléter ton billet, j'ai commencé un récapitulatif sur la documentation .net, je vais le poster sous peu ... -
aide object arx dans visual studio
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
Salut, en fait, dans un 1er temps, j'ai essayé d'installer le .msi livré avec le sdk 2012. J'ai fait une recherche des fichier msha sur c:, il n'y en avait qu'un l'aide sur l'aide microsoft... Ce Msi n'est donc pas fait pour visual studio. j'ai donc téléchargé le bon sur le site ADN, ajouté le contenu dans visual studio, mais là j'ai un message d'erreur lors de la mise à jour de l'aide (exception windows help 1.0) Pourtant, j'ai réparé l'installation de l'aide, et je suis en version 1.1 -
aide object arx dans visual studio
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
c'est bien là le problème, avec la 2012, ce fichier msha n'est pas créé. -
aide object arx dans visual studio
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans ObjectARX/DBX, C++, .NET, RealDWG
salut, je suis encore sous 2012, je verrai donc quand je passerai à la 2013. C'est encore un peu le Far west, le .Net avec Autocad. J'ai également remarqué que le coeur d'autocad est débogable, espionnable et sensible aux points d'arrêt, mais pas les module métier (Civil et Map) du coup, j'ai beaucoup recours aux msg, comme au bon vieux temps du DOS ... -
aide object arx dans visual studio
GEGEMATIC a posté un sujet dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, J'ai essayé d'intégrer l'aide object arx 2012 à visual studio, mais ça ne marche pas apparemment, je ne suis pas le seul : http://adndevblog.typepad.com/autocad/2012/09/objectarx-2013-integrated-documentation-installer.html Quelqu'un y est-il arrivé ? -
Casser les liason Xref avant ouverture
GEGEMATIC a répondu à un(e) sujet de benoitlacroix dans Débuter en LISP
Bon , ça me rassure, je suis pas encore complètement gâteux ... -
Casser les liason Xref avant ouverture
GEGEMATIC a répondu à un(e) sujet de benoitlacroix dans Débuter en LISP
ben je ne comprend pas pourquoi, et quand je fais ouvrir partiel depuis le dialogue ouvrir, conformément à l'aide Autocad, ouvertur partielle je n'obtiens rien de plus, si ce n'est parfois le choix d'une vue de départ, mais pas le dialogue promis: dialogue ouverture partielle Du coup c'est une commande que je n'ai jamais vraiment utilisé, parcequ'en fait, je ne la comprend pas. -
Casser les liason Xref avant ouverture
GEGEMATIC a répondu à un(e) sujet de benoitlacroix dans Débuter en LISP
Salut, cette commande me reste obscure depuis des années Si tu peux nous éclairer sur son fonctionnement ? Pourquoi elle se fout de filledia ou cmddia ? comment je fais pour avoir accès à la Boîte de dialogue Ouverture partielle ?
