Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Der Befehl Reihe (_ARRAY) unter .Net

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:  Der Befehl Reihe (_ARRAY) unter .Net (1155 mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2019/2020
CAD+T 2020
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 09. Mrz. 2013 11:23    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!

Ich nutze mittels app.ActiveDocument.SendCommand den Befehl _ARRAY in einem .net Programm.
Da funktioniert auch so weit prima.

Code:

app.ActiveDocument.SendCommand("_-ARRAY" & vbCr & "letzte" & vbCr & vbCr & "R" & vbCr & ZZahl & vbCr & "1" & vbCr & "35" & vbCr)

Wie aber funktioniert der Befehl aus .net heraus.
Hintergrund ist, ich habe einen Block eingefügt, den ich vertikal im Raster von 35mm nach Anzahl = ZZahl kopieren möchte.
Mit dem Beispiel aus AutoCAD .NET Developer's Guide (Create Rectangular Arrays) kam ich nicht klar.

Geht dieses auch einfacher als in dem Beispiel beschrieben?

Vielen Dank im Voraus.

------------------
Gruß

Dirk

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 11. Mrz. 2013 08:22    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 Dirk.B 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Dirk.B:
... Geht dieses auch einfacher als in dem Beispiel beschrieben?...

Nein.
In dem Beispiel werden die Objekte einfach entsprechend der Anzahlen erzeugt. Es entsteht kein Anordnung-Objekt.
Da muss man dann eben in einer doppelten Schleife (Spalten und Reihen) die Objekte erzeugen. Da man keinen Basispunkt hat, transformiert man die Objekte entsprechend de Verschiebungsvectors.

Grüße!
Holger

------------------
Holger Brischke
FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden!
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2019/2020
CAD+T 2020
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 02. Apr. 2013 08:03    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 Holger!
Hallo Forum!

Ich hab mir das Beispiel aus der Hilfe noch mal vorgenommen und mir nur den Teil Zeilen herausgenommen, so weit so gut.
Wie stell ich aber nun das UCS um, so das mein Reihebefehl in Richtung Z - Achse ausgeführt wird?

Code:

Dim Zeilen As Integer = 25
Dim ZeilenAbstand As Double = 35
Dim MyArrayAng As Double = 0

Dim MyUCSMatrix As Matrix3d = acDoc.Editor.CurrentUserCoordinateSystem
Dim MyUCS As CoordinateSystem3d = MyUCSMatrix.CoordinateSystem3d
Dim My2dAng As Vector2d = New Vector2d(MyUCS.Xaxis.X, MyUCS.Xaxis.Y)

MyArrayAng = MyArrayAng + My2dAng.Angle

Dim MyExts As Extents3d = LB02_3d.Bounds.GetValueOrDefault()
Dim My2dArrayBase As Point2d = New Point2d(MyExts.MinPoint.X, MyExts.MaxPoint.Y)

Dim MyObjCollCols As DBObjectCollection = New DBObjectCollection()
MyObjCollCols.Add(LB02_3d)

Dim MyAng As Double = Math.PI / 2

Dim MyObjCollLvls As DBObjectCollection = New DBObjectCollection()

For Each MyObj As DBObject In MyObjCollCols
MyObjCollLvls.Add(MyObj)
Next

For Each MyEnt As Entity In MyObjCollCols
Dim ZeilenCount As Integer = 1

While (Zeilen > ZeilenCount)
Dim LB02_3dClone As Entity = LB02_3d.Clone()
MyObjCollLvls.Add(LB02_3dClone)

Dim My2dTo As Point2d = PolarPoints(My2dArrayBase,  MyArrayAng + MyAng, ZeilenAbstand * ZeilenCount)

Dim MyVec2d As Vector2d = My2dArrayBase.GetVectorTo(My2dTo)
Dim MyVec3d As Vector3d = New Vector3d(MyVec2d.X, MyVec2d.Y, 0)
LB02_3dClone.TransformBy(Matrix3d.Displacement(MyVec3d))

acBlkTblRec.AppendEntity(LB02_3dClone)
acTrans.AddNewlyCreatedDBObject(LB02_3dClone, True)

ZeilenCount = ZeilenCount + 1
End While
Next


Vielen Dank im Voraus.

------------------
Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2019/2020
CAD+T 2020
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 02. Apr. 2013 14:04    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

... habs hinbekommen.

Code:

Dim Zeilen As Integer = 25
Dim ZeilenAbstand As Double = 35
Dim ZeilenCount As Integer = (STH - 35) / 35

For i = 1 To ZeilenCount
Dim LB02_3dClone As Solid3d = LB02_3d.Clone()

Dim MyVec3d As Vector3d = New Vector3d(0.0, 0.0, ZeilenAbstand)
LB02_3dClone.TransformBy(Matrix3d.Displacement(MyVec3d))

acBlkTblRec.AppendEntity(LB02_3dClone)
acTrans.AddNewlyCreatedDBObject(LB02_3dClone, True)

ZeilenAbstand = ZeilenAbstand + 35
Next i


------------------
Gruß

Dirk

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

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