Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Umstieg ACA2008 ACA2011

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Umstieg ACA2008 ACA2011 (1036 mal gelesen)
oscarr
Mitglied
CAD-Manager


Sehen Sie sich das Profil von oscarr an!   Senden Sie eine Private Message an oscarr  Schreiben Sie einen Gästebucheintrag für oscarr

Beiträge: 198
Registriert: 02.10.2007

ACA 2012 - English Win 7/x64

erstellt am: 03. Aug. 2010 17:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

der Umstieg von AutoCAD Architecture 2008 auf AutoCAD2011 steht bei uns an. Die ersten Kollegen arbeiten bereits damit. Nun ist es an der Zeit meine .NET Erweiterungen auch den Jungs für 2011 zur Verfügung zu stellen. Gibt es eine cleveren Trick in der èbergangszeit für beide Versionen gleichzeitig zu entwickeln oder jedes mal die referenzen auf die acdbmgd.dll u.ä. zu ändern. Ich denke da in irgendwelche Compilereinstellungen die dan zwei dll compilieren oder sowas in der Art?

LG
Holger

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 03. Aug. 2010 19:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

guck mal >>>hier<<<, hilft hoffe ich schon mal (gleicher Source, unterschiedliche SLN's).

- alfred -

------------------
www.hollaus.at

Wene71
Mitglied



Sehen Sie sich das Profil von Wene71 an!   Senden Sie eine Private Message an Wene71  Schreiben Sie einen Gästebucheintrag für Wene71

Beiträge: 28
Registriert: 25.04.2010

Win8.1 Pro x64, ACAD 2015,
VS 2013

erstellt am: 03. Aug. 2010 19:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für oscarr 10 Unities + Antwort hilfreich

Hallo,

als erstes würde ich versuchen gar nichts zu machen.
Also die 2008'er DLL's in ACAD 2011 laden, und mal alle
Programme durchprobieren.
Las wissen ob es funktioniert und Dich für die Übergangszeit
zufrieden stellt.

Vielleicht auch "Late Binding" - könnte auch gehn.

Gruß Werner

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Wene71
Mitglied



Sehen Sie sich das Profil von Wene71 an!   Senden Sie eine Private Message an Wene71  Schreiben Sie einen Gästebucheintrag für Wene71

Beiträge: 28
Registriert: 25.04.2010

Win8.1 Pro x64, ACAD 2015,
VS 2013

erstellt am: 03. Aug. 2010 19:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für oscarr 10 Unities + Antwort hilfreich

Hi Alfred,

Du warst schneller und ich habs nicht gemerkt.
Guter Tip!

Gruß Werner

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 04. Aug. 2010 18:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

@Werner:
>> Also die 2008'er DLL's in ACAD 2011 laden

Nee, so nicht. Denn 2008 API ist nicht kompatiblel zu 2010 API, Du kannst zwar mit einigermaßen hoher Wahrscheinlichkeit für 2008 gebaute DLL's mit 2009 (und sogar 2007) laden, aber mit 2010 gab's einen Bruch (der managed API signatures) und damit würde ich (solange man nicht nur an COM oder LISP denkt) die fehlerfreie Lauffähigkeit sehr stark bezweifeln.


>> Vielleicht auch "Late Binding" - könnte auch gehn.

Ja könnte, nur - persönliche Meinung - wer LateBinding vermeidet, hat weniger Typkonflikte zur Laufzeit (und in einigen Fällen auch die bessere Performance).

- alfred -

------------------
www.hollaus.at

oscarr
Mitglied
CAD-Manager


Sehen Sie sich das Profil von oscarr an!   Senden Sie eine Private Message an oscarr  Schreiben Sie einen Gästebucheintrag für oscarr

Beiträge: 198
Registriert: 02.10.2007

ACA 2012 - English Win 7/x64

erstellt am: 05. Aug. 2010 10:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Alfred, genau an sowas dachte ich. Habe jetzt  zwei sln für die verschiedenen Versionen, damit habe ich dann auch noch das Problem mit den verschiedenen Framworkversionen gelöst. Das ich einmal
Code:
Imports ACSMCOMPONENTS17Lib

bzw.
Code:
Imports ACSMCOMPONENTS18Lib

stehen haben müsste habe ich ebenfalls mit den Projekteigenschaften gelöst, indem ich den passenden Namespace eingefügt habe und spare mir dann die IMPORTS Anweisung.

ABER

ein völlig anderes Problem ist, das Autodesk offensichtlich an der API geschraubt hat. Mit 2008 hieß es:

Code:

    Dim myMVRef As MultiViewBlockReference = obj
    obj = myMVRef.ClassifyingStyleId

und mit 2011 scheinbar:

Code:

    Dim myMVRef As MultiViewBlockReference = obj
    obj = myMVRef.StyleId

Frage: Kann man abfragen welche Version/Referenz geladen ist? Um den passenden Code zu compilieren?

LG
Holger

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Wene71
Mitglied



Sehen Sie sich das Profil von Wene71 an!   Senden Sie eine Private Message an Wene71  Schreiben Sie einen Gästebucheintrag für Wene71

Beiträge: 28
Registriert: 25.04.2010

Win8.1 Pro x64, ACAD 2015,
VS 2013

erstellt am: 05. Aug. 2010 11:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für oscarr 10 Unities + Antwort hilfreich

Hallo,

hilft es wenn du die AutoCAD-Versions-Nr ausliest?

Beispiel:

Code:
        Dim vers As Version = Autodesk.AutoCAD.ApplicationServices.Application.Version
        Dim sNr As String = vers.Major.ToString & "." & vers.Minor.ToString
        Dim ACAD_Version As Double = Convert.ToDouble(sNr)

        Dim Schraff As Hatch = New Hatch

        'Vor AutoCAD 2011...
        If ACAD_Version() < 18.1 Then
            Schraff.Origin = Origin
            Schraff.PatternScale = PatternScale
            Schraff.PatternAngle = PatternAngle
            Schraff.SetHatchPattern(HatchPatternType.PreDefined, PatternName)
        Else 'Ab AutoCAD 2011...
            Schraff.Origin = Origin
            Schraff.SetHatchPattern(HatchPatternType.PreDefined, PatternName)
            Schraff.PatternScale = PatternScale
            Schraff.PatternAngle = PatternAngle
        End If


Gruß Werner

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

oscarr
Mitglied
CAD-Manager


Sehen Sie sich das Profil von oscarr an!   Senden Sie eine Private Message an oscarr  Schreiben Sie einen Gästebucheintrag für oscarr

Beiträge: 198
Registriert: 02.10.2007

ACA 2012 - English Win 7/x64

erstellt am: 05. Aug. 2010 16:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

So ähnlich habe ich es hinbekommen
Code:

#Const ACA2011 = False/True

#If ACA2011 Then
                    obj = myMVRef.StyleId
#Else
                    obj = myMVRef.ClassifyingStyleId
#End If



sonst gibts Mecker weil es das .ClassifyingStyleId Property in 2011 gar nicht mehr gibt.

vielen lieben Dank
Holger

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 05. Aug. 2010 22:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

gute Variante, ich halte es ein wenig anders.

Ich habe ja schon ein SLN und VBPROJ für AutoCAD 2011, für 2010, für 2009, ...
In diesen halte ich möglichst immer in gleichen Dateien den SourceCode, eben mit den Ausnahmen, wo die Signaturen sich geändert haben. Für diese Fälle gibt es Mini-VB-Files, die Versionsabhängig sind, aber gleiche Funktionsnamen/-signaturen haben. Und diese Dateien gibt's dann ebenfalls für 2011, 2010, ... aber immer nur die passende wird in der entsprechenden VBPROJ mitgeladen.

Hoffe, das ist ausreichend verständlich, - alfred -

------------------
www.hollaus.at

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz