Hallo,
Ik ben vandaag maar eens aan de slag gegaan met VB.Net.
Ik heb volgens de AutoCAD 2011 bijbel vanaf pagina 1300 tot 14.16 alles doorlopen, mar AutoCAD komt met de volgende melding als ik het DLL bestand wil laden met NETLOAD.
Ik heb trouwens Visual Basic 2010 Exspress gebruikt om de form te maken.
Command: netload
Cannot load assembly. Error details: System.BadImageFormatException: Could not
load file or assembly 'file:///C:\Users\--------\Documents\VB
oefeningen\Cursus\Cursus\bin\Debug\Cursus.dll' or one of its dependencies. An
attempt was made to load a program with an incorrect format.
File name: 'file:///C:\Users\--------\Documents\VB
oefeningen\Cursus\Cursus\bin\Debug\Cursus.dll'
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
at loadmgd()
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure
logging.
To turn this feature off, remove the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog].
Ik heb de compile op .NET 3.0, 3.5 en 4.0 geprobeerd.
Ik heb wel deze 2 warnings
Possible problem detected while building assembly 'Cursus': Referenced assembly 'acdbmgd.dll' targets a different processor
Possible problem detected while building assembly 'Cursus': Referenced assembly 'acmgd.dll' targets a different processor
Opgelost, vb 2008 express ivp 2010 gebruiiken.
De versie van Visual studio zou niet uit moeten maken.
Let er op dat je bij de acdbmgd.dll en acmdg.dll de optie copy local op off zet.
en check bijgaande link even. Daar staan ook nog wat issues met vs2010
http://through-the-interface.typepad.com/through_the_interface/2010/04/hitting-breakpoints-in-net-class-libraries-while-debugging-with-visual-studio-2010.html (http://through-the-interface.typepad.com/through_the_interface/2010/04/hitting-breakpoints-in-net-class-libraries-while-debugging-with-visual-studio-2010.html)
en zie deze post even
http://www.cadsite.be/smf/index.php?topic=4222.0 (http://www.cadsite.be/smf/index.php?topic=4222.0)
groeten
stephan
Ik heb nu een palette gemaakt waarbij ik een block invoeg met de volgende code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aanzicht As Long
Dim Zijaanzicht As Long
Dim Vooraanzicht As Long
Dim ZA As Long
Dim VA As Long
Select Case Me.ComboBox2.SelectedIndex
Case Zijaanzicht
aanzicht = ZA
Case Vooraanzicht
aanzicht = VA
End Select
Dim onderwagen = "(command ""insert"" ""LR_OW_aanzicht"" ""0,0"" 1 1 0) "
Dim doc = Application.DocumentManager.MdiActiveDocument
doc.SendStringToExecute(onderwagen, False, False, False)
End Sub
Alleen nu moet bij aanzicht in deze regel Dim onderwagen = "(command ""insert"" ""LR_OW_aanzicht"" ""0,0"" 1 1 0) "
ZA of VA komen, maar die krijg ik niet variabel.
SendStringToExecute heb je niet nodig.
Zie bijgaande link hoe je blocken in je tekening voegt via VB.NET
http://forums.autodesk.com/t5/NET/Insert-block-from-disk/m-p/1932281 (http://forums.autodesk.com/t5/NET/Insert-block-from-disk/m-p/1932281)
Het is even pittig maar dan kun je verschrikkelijk mooie applicaties maken
groeten
stephan
Het kan aan mij liggen, maar ik snap daar geen hout van. Wat ik nu probeer is het volgende:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If ComboBox2.SelectedItem = "Vooraanzicht" And ComboBox1.SelectedItem = "LR1750" Then
Dim onderwagen = "(command ""insert"" ""LR1750_OW_VA"" ""0,0"" 1 1 0) "
Dim bovenwagen = "(command ""insert"" ""LR1750_BW_ZA"" ""@0,2130.1147"" 1 1 0) "
Dim doc = Application.DocumentManager.MdiActiveDocument
doc.SendStringToExecute(onderwagen, False, False, False)
doc.SendStringToExecute(bovenwagen, False, False, False)
End If
If ComboBox2.SelectedItem = "Zijaanzicht" And ComboBox1.SelectedItem = "LR1750" Then
Dim onderwagen = "(command ""insert"" ""LR1750_OW_ZA"" ""0,0"" 1 1 0) "
Dim bovenwagen = "(command ""insert"" ""LR1750_BW_ZA"" ""@0,2130.1147"" 1 1 0) "
Dim doc = Application.DocumentManager.MdiActiveDocument
doc.SendStringToExecute(onderwagen, False, False, False)
doc.SendStringToExecute(bovenwagen, False, False, False)
End If
End Sub
Het verveldende is dat dit mega groot wordt achter 1 knop, achter ComboBox1 gaan een stuk of 39 opties vallen, en de combobox2 heeft 2 opties, en combobox3 gaat ook +/- 10 opties moeten krijgen die afhankelijk zijn van combobox1. En hierbij moet ook de inserthoek een berekening meekrijgen, en ik krijg dingen tussen " " niet variabel.
(ps vandaag begonnen met VB, nog nooit eerder iets gedaan wat hier op lijkt)
Iemand een suggestie of een begrijpbaar voorbeeld en VB.net en geen C# oid?
Bassiemeer
Het voorbeeld is VB.NET.
En zo moet je blocken in voegen met de Dot Net api in autocad. Mooier kan ik het niet maken.
Misschien een idee om cursus te gaan volgen bij Ronald Boeklagen in Nijmegen.
Zie http://www.cadcollege.nl/ (http://www.cadcollege.nl/) voor cursus data
stephan
Hmmz denk niet dat als stagiar een cursus erin zit..