Kun je na het laden van een plugin (.dll) iets laten verschijnen op de commando regel?
Dus na het laden van de .dll wordt er een deel van de code uitgevoerd net zoals je dit kunt met lisp zie voorbeeld:
(defun C:MijnCommando ( / a )
(setq a (getdist))
(princ)
)
(princ "Type \"MijnCommando\" om te starten.")
(princ)
Ja, dat is zelfs min of meer de bedoeling!?
Netload, aanduiden van je DLL, method name uit je DLL intikken en ENTER drukken... should do the trick...
Voor de juiste code, zie www of geef effe aan C# of VB.NET ...
Om op de commandoregel te printen, in C# alvast :
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("Hello World");
Is dat wat je beoogt?
Citaat van: winnes op wo 10 04 2013, 17:14:54
Ja, dat is zelfs min of meer de bedoeling!?
Netload, aanduiden van je DLL, method name uit je DLL intikken en ENTER drukken... should do the trick...
...
Is dat wat je beoogt?
Eigenlijk niet.
Ik wil met het laden van een .dll gelijk iets op de commando regel iets laten zien.
Bijvoobeeld:
CiteerDeze app is gemaakt door EddyBeerke, (c) 2013
Type "MijnCommando" om te starten.
Dit wil ik weergeven zodat iemand gelijk na het laden weet welk commando hij/zij moet gebruiken.
Eddy,
Dan is het volgende wat je moet doen:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
namespace Oak
{
public class OakInitialize : Autodesk.AutoCAD.Runtime.IExtensionApplication
{
public void Initialize()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("Deze app is gemaakt door EddyBeerke, (c)2013 \r\nType 'MijnCommando' om te starten");
}
public void Terminate()
{
//
}
[CommandMethod("MijnCommando")]
public void MijnCommando()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("Dit is MijnCommando");
}
}
}
Gr.
Nou, het is gelukt na wat stoeien waar ik de code moest plaatsen.
Het staat nu in 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(Iv_DWP_Afstanden.MyPlugin))>
Namespace Iv_DWP_Afstanden
Public Class MyPlugin
Implements IExtensionApplication
Public Sub Initialize() Implements IExtensionApplication.Initialize
' Initialize your plug-in application here
Dim ed As Editor
ed = Application.DocumentManager.MdiActiveDocument.Editor
ed.WriteMessage("Iv_DWP_Afstanden id geladen.")
ed.WriteMessage("Deze app is gemaakt door EddyBeerke, (c)2013")
ed.WriteMessage("Type 'Iv_DWP_Afstand', 'Iv_DWP_Hoogte' of 'Iv_Toolpalette' om te starten")
End Sub
Bedankt om mij in de goede richting te laten zoeken.
Blij dat ik kon helpen.
Had ik geweten dat je VB.NET prefereerde...
:wink:
Beste Eddy,
Ik ben niet zo'n held, kun je helpen waar ik jouw
code moet of kan plakken in:
Imports Autodesk.AutoCAD.Runtime
Public Class Form1
<CommandMethod("Cursus1")> Public Sub Toonformulier()
Me.Show()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Double
a = Me.TextBox1.Text
a = a + 1
Me.Label1.Text = a
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Bij voorbaat dank.
Ik gebruik de "AutoCAD 2013 VB plug-in" template van de ObjectARX.
Zie: http://www.autodesk.mx/adsk/servlet/index?siteID=123112&id=1911627
Dan krijg ik ook de "myPlugin.vb" en daar heb ik het in gezet.
Citaat van: robbie op di 16 04 2013, 11:52:45
Beste Eddy,
Ik ben niet zo'n held, kun je helpen waar ik jouw
code moet of kan plakken in:
Beste Robbie,
Kijk eens in de bijlage!
Met vriendelijke groet, HofCAD CSI.
Thanks Eddy en Hofcad,
De oplossing van Eddy is voor mij nu nog te moeilijk,
maar die van Hofcad is het precies.
Een extra vraag tav het programma, hoe kan ik maken dat
het programma na het sluiten van de dialoogbox opnieuw met
'Cursus1' gestart kan worden?
Bij voorbaat dank.
Eigenlijk raar dat mijn oplossing te moeilijk is want we doen hetzelfde, het wordt het alleen uitgevoerd met het laden van de dll.
Van HofCAD:
Public Sub Initialize() Implements IExtensionApplication.Initialize
' Initialize your plug-in application here
Dim ed As Editor
ed = Application.DocumentManager.MdiActiveDocument.Editor
ed.WriteMessage(vbCrLf & " Form1 is geladen.")
ed.WriteMessage(vbCrLf & " Deze app is gemaakt door HofCAD CSI.")
ed.WriteMessage(vbCrLf & " Type 'Cursus1' om te starten")
End Sub
Public Sub Terminate() Implements Autodesk.AutoCAD.Runtime.IExtensionApplication.Terminate
End Sub
Van Mij:
Public Sub Initialize() Implements IExtensionApplication.Initialize
' Initialize your plug-in application here
Dim ed As Editor
ed = Application.DocumentManager.MdiActiveDocument.Editor
ed.WriteMessage("Iv_DWP_Afstanden id geladen.")
ed.WriteMessage("Deze app is gemaakt door EddyBeerke, (c)2013")
ed.WriteMessage("Type 'Iv_DWP_Afstand', 'Iv_DWP_Hoogte' of 'Iv_Toolpalette' om te starten")
End Sub
Deze code wordt dus uitgevoerd bij het laden.
Wat je andere vraag betreft kun je beter een nieuwe topic starten denk ik.