| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: AutoCAD - Konstante (456 mal gelesen)
|
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008 ACAD 2019 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 06. Jul. 2010 15:17 <-- editieren / zitieren --> Unities abgeben:
Hallo an Alle, in meinen VBA-Text habe ich öfters solche Zeilen stehen: ThisDrawing.ActiveLayout.PaperUnits = acMillimeters ThisDrawing.ActiveLayout.PlotRotation = ac90degrees
Bei Net geht das nicht mehr und ich muß mir die Konstanten(acMillimeters, ac90degrees) irgendwo bei Common.AcViewportScale.acMillimeters... holen. Wie finde ich am einfachsten und sichersten heraus, wo diese jetzt zu holen sind? Gibt es ne Hilfe wo das drinsteht? Kann mann es irgendwie automatisieren, wie z.B. die Thisdrawing-Variable? Gruß, Theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Ehrenmitglied V.I.P. h.c. Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2004DX Mechanical PP
|
erstellt am: 06. Jul. 2010 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
|
Ex-Mitglied
|
erstellt am: 07. Jul. 2010 01:58 <-- editieren / zitieren -->
Hi, >> Wie finde ich am einfachsten und sichersten heraus, wo diese jetzt zu holen sind? Du kannst im VisualStudio den Objektbrowser öffnen (Menü 'Ansicht') und darin suchen (z.B. nach 'acMillimeters'). Hier werden in allen Assemblies, die Du referenziert hast, nach dem gegebenen Begriff durchsucht und angezeigt (Namespace und Objekt). >> Kann mann es irgendwie automatisieren
Da stehe ich auf der Leitung, Du automatisierst ja, indem Du programmierst, was sollte denn zu automatisieren sein - alfred -
------------------ www.hollaus.at |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 07. Jul. 2010 13:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, ihr habt mir Beide sehr geholfen. Mit Automatisierung meinte ich wie bei der Thisdrawing-variable, daß mann irgendwas vorweg eingibt so daß mann später doch wieder nur die Konstanten angeben muß. Aber egal. Ich hätte noch nee andere Frage. Was muß ich machen damit ich in .Net in einer Prozedur der einen Klasse eine Prozedur der anderen Klasse verwenden kann? Ich möchte eine Klasse erstellen in der viele allgemeine Funktionen und Prozeduren enthalten sind. Auf diese möchte ich dann aus Klassen zugreifen in denen meine selbst erstellten ACAD-Befehle enthalten sind. Geht das? Wenn ja wie? Oder verwende ich da besser wieder Module? Gruß, Theo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur Schwerpunkt Systemkonstruktion (m/w/d) | Sie möchten mehr über die Rheinmetall Electronics GmbH erfahren? Dann klicken Sie hier. Ihre Stärken und Erfahrungen zählen bei Rheinmetall. Zudem legen wir Wert auf Vielfalt und Chancengleichheit. Schwerbehinderte Bewerberinnen und Bewerber werden bei gleicher Eignung besonders berücksichtigt. Auf Ihre Bewerbung freuen wir uns.
| Anzeige ansehen | Teamleitung, Gruppenleitung |
|
Ex-Mitglied
|
erstellt am: 07. Jul. 2010 17:11 <-- editieren / zitieren -->
Hi, wenn Du Funktionen definieren willst, die von mehreren anderen Programmteilen verwendet werden sollen, dann kannst Du das sowohl innerhalb eines Moduls wie auch einer Klasse machen. Nur im Falle 'Klasse' ist zu unterscheiden, ob Du diese vorher instanzieren mußt oder nicht, entsprechend die Funktionsdeklaration mit 'Shared' zu definieren hast. Guck Dir dazu in der VB.NET-Hilfe an, was sich hinter 'Shared' verbirgt. Eine Alternative zu ThisDrawing kannst Du durchaus machen, und solange keine Events damit zusammenspielen müssen, ist es auch einfach: Code: Imports Autodesk.AutoCADPublic Class myAcadTools Public Shared Function ThisDrawing() as Interop.IAcadDocument Dim tRetVal as Interop.IAcadDocument If ApplicationServices.Application.DocumentManager.MdiActiveDocument isnot Nothing Then Dim tDoc as ApplicationServices.Document = ApplicationServices.Application.DocumentManager.MdiActiveDocument tRetVal = cType(tDoc.AcadDocument, Interop.IAcadDocument) else 'dann ist keine DWG geoeffnet End If Return tRetVal End Function End Class
'und aufrufen kannst Du das: myAcadTools.ThisDrawing HTH, - alfred -
------------------ www.hollaus.at |