Na netload uitvoeren van code (opgelost)

Gestart door EddyBeerke, wo 10 04 2013, 13:00:00

Vorige topic - Volgende topic

EddyBeerke

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)

Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

winnes

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?

EddyBeerke

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.
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

winnes

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.

EddyBeerke

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.
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

winnes

Blij dat ik kon helpen.
Had ik geweten dat je VB.NET prefereerde...
:wink:

robbie

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.

EddyBeerke

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.
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

HofCAD

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.
ACADcadabra

robbie

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.

EddyBeerke

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.
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/