Message 1 of 7
Not applicable
01-23-2014
03:37 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
HI.
i want to save my drawing with the xref so i want to launch "-etransmit" here my code:
Application.SetSystemVariable("FILEDIA", 0)
doc.SendStringToExecute("-etransmit" & vbCr & _
"CH" & vbCr & _
"archivage" & vbCr & _
"C" & vbCr & _
"" & Txt & "" & vbCr, True, False, True)So the TXT contain my path+filename (.zip)
"archivage" is the config for etransmit.
i need to set to 0 the FILEDIA for force my path+name.
it work fine but how i can set to 1 the var ? FILEDIA.
the SendStringToExecute is execute after the end of my prog so i cant add the code after this.
Need to use event ?
I tryed to use this :
'***********************************************************************
'** Fonction Lancement d'une commande Synchrone sur la ligne **
'** de commande d'Autocad **
'***********************************************************************
'** ENTREE (exemple) **
'** Tracé une ligne :
'** CommandeSync("_.line", New Point3d(10.0, 20.0, 0.0), New Point3d(80.0, 50.0, 0.0), "")
'** Freeze du calque 0
'** CommandeSync("_.vplayer", "_freeze", "0", "_select", "\", "", "")
'**
'** Note:
'** - an empty string ("") means a validation (Enter)
'** - an anti-slash ("\" with VB or "\\" with C#) means a pause for user input.
'**
'** - Texte : Le texte à afficher **
'***********************************************************************
'** with A2013, replace "acad.exe" with "accore.dll" in the DllImport attribute arguments.
'*******************************************************************************************
<System.Security.SuppressUnmanagedCodeSecurity()> _
<System.Runtime.InteropServices.DllImport("acad.exe", _
EntryPoint:="acedCmd", _
CharSet:=System.Runtime.InteropServices.CharSet.Unicode, _
CallingConvention:=System.Runtime.InteropServices.CallingConvention.Cdecl)> _
Private Function acedCmd(ByVal resbuf As IntPtr) As Integer
End Function
'''<summary>
''' Call an AutoCAD command (runs synchronously).
''' </summary>
''' <param name="args">The command name followed by command inputs.</param>
'''
Public Sub LigneCommandeImmediate(ByVal ParamArray args As Object())
Dim resbuf As New ResultBuffer()
For Each obj As Object In args
Select Case obj.GetType().Name
Case "String"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.Text), obj))
Exit Select
Case "Int16"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.Int16), obj))
Exit Select
Case "Int32"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.Int32), obj))
Exit Select
Case "Double"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.[Double]), obj))
Exit Select
Case "Point2d"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.Point2d), obj))
Exit Select
Case "Point3d"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.Point3d), obj))
Exit Select
Case "ObjectId"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.ObjectId), obj))
Exit Select
Case "ObjectId[]"
For Each id As ObjectId In DirectCast(obj, ObjectId())
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.ObjectId), id))
Next
Exit Select
Case "ObjectIdCollection"
For Each id As ObjectId In DirectCast(obj, ObjectIdCollection)
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.ObjectId), id))
Next
Exit Select
Case "SelectionSetDelayMarshalled", "SelectionSetFullyMarshalled"
resbuf.Add(New TypedValue(CInt(Autodesk.AutoCAD.Runtime.LispDataType.SelectionSet), obj))
Exit Select
Case Else
Throw New InvalidOperationException("Unsupported type in Command() method")
End Select
Next
acedCmd(resbuf.UnmanagedObject)
End Subbut not wotking. i need to execute de etransmit immediately and after set to 1 the FILEDIA. How i can do ?
Solved! Go to Solution.