| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: AddMLeader leaderLineIndex benutzen (1075 mal gelesen)
|
Simon Pie Mitglied Bauingenieur
Beiträge: 12 Registriert: 09.02.2014 professionelle Dokumentation
|
erstellt am: 03. Apr. 2014 19:56 <-- editieren / zitieren --> Unities abgeben:
Hallo, für die Verbesserung eines Makros würde ich gerne, dass Excel Multiführungslinien zeichnet. Doch leider klappt dies bei den Grundlagen nicht. Auf http://entercad.ru/acadauto.en/ex_addmleader.htm gibt es dieses Beispiel: Sub Example_AddMLeader() Dim oML As AcadMLeader Dim points(0 To 14) As Double ' Define the leader points points(0) = 1: points(1) = 1: points(2) = 0 points(3) = 1: points(4) = 2: points(5) = 0 points(6) = 2: points(7) = 2: points(8) = 0 points(9) = 3: points(10) = 2: points(11) = 0 points(12) = 4: points(13) = 4: points(14) = 0 Dim i As Long Set oML = ThisDrawing.ModelSpace.AddMLeader(points, i) End Sub Die Variable i wird mit leaderLineIndex bezeichnet und ich weiß nicht, was ich da einsetzen muss, damit es klappt. Ich habe sämtliche Werte -1,0,1,2,10,20,21,30 und 90 durchprobiert und er meckert jedes Mal. Was muss ich da für einen Wert einsetzen? viele Grüße Simon Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 03. Apr. 2014 22:01 <-- editieren / zitieren --> Unities abgeben: Nur für Simon Pie
Zitat: Ich habe sämtliche Werte -1,0,1,2,10,20,21,30 und 90 durchprobiert und er meckert jedes Mal.
Wie darf man sich " er meckert jedes mal" vorstellen? Der Code ist das Beipiel aus der VBA-Hilfe und dieses läuft bei mir problemlos (AutoCAD 2014, SP1, 64bit), ich hätte 0 und 1 probiert, kann aber auch nicht sagen, was unter " Input index of the mleader cluster" lt. Hilfe zu verstehen ist (und hab auch nicht weiter probiert). ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Simon Pie Mitglied Bauingenieur
Beiträge: 12 Registriert: 09.02.2014 professionelle Dokumentation
|
erstellt am: 05. Apr. 2014 15:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, er meckert folgendes: Laufzeitfehler 5 Ungültiger Prozeduraufrug oder ungültiges Argument. L = Ws.Cells(48 + ZK, 10) / 200 Mittelpunkt(1) = letzterTräger(1) + L Mleaderpunkte(0) = letzterTräger(0) Mleaderpunkte(1) = letzterTräger(1) + L Mleaderpunkte(2) = 0 L = L + 0.2 Mleaderpunkte(3) = Mleaderpunkte(0) + L Mleaderpunkte(4) = Mleaderpunkte(1) + L Mleaderpunkte(5) = 0 Mleaderpunkte(6) = Mleaderpunkte(3) + 0.1 Mleaderpunkte(7) = Mleaderpunkte(4) Mleaderpunkte(8) = 0 Mleaderpunkte(9) = 0 Mleaderpunkte(10) = 0 Mleaderpunkte(11) = 0 Mleaderpunkte(12) = 0 Mleaderpunkte(13) = 0 Mleaderpunkte(14) = 0 Set Mlinie = Zeichnung.AddMLeader(Mleaderpunkte, 0) Zuerst hatte ich einen Array mit 9 Werte, jetzt einen mit 15 Werte. Er meckert bei beiden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 05. Apr. 2014 19:33 <-- editieren / zitieren --> Unities abgeben: Nur für Simon Pie
Zitat: Laufzeitfehler 5 Ungültiger Prozeduraufrug oder ungültiges Argument.
bei welcher Zeile? Und wie sind die einzelnen Variable deklariert? Mit halbem Code ist es schwer mit dem Reproduzieren: - Ws.Cells ist hier nicht bekannt - was die Variable Mittelpunkt(1) hier soll, weiß ich nicht - wie Mleaderpunkte deklariert ist, seh ich nicht - wie Mlinie deklariert ist, geht hier auch nicht hervor Kommen wir wieder zurück zum Code des ersten Beitrags (da ist alles deklariert und bekannte Inhalte. Kommt hier die gleiche Meldung und bei welcher Zeile? ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Simon Pie Mitglied Bauingenieur
Beiträge: 12 Registriert: 09.02.2014 professionelle Dokumentation
|
erstellt am: 15. Apr. 2014 18:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Mühe, ich habe das Problem endlich gefunden. Bei der Variable fehlte was. er meckerte bei der Zeile mit der Multiführungslinie. Hier die Variablen: Dim AutoCAD As Object 'AutoCAD.Application Dim Ws As Worksheet Dim Zeichnung As AcadModelSpace Dim letzterTräger(0 To 2) As Double Dim h, i, j, k, L, Vorzeichen, Joch, Zeile As Integer Dim Spin, ZK, Stützenanzahl, ExN, Stützenbemaßen, AlleAusdrehmaße As Integer Dim Mleaderpunkte(0 To 14) ääähm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 16. Apr. 2014 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für Simon Pie
Hallo Simon, Zitat: Dim Spin, ZK, Stützenanzahl, ExN, Stützenbemaßen, AlleAusdrehmaße As Integer Dim Mleaderpunkte(0 To 14) ääähm
Da sind noch viele "ääähm" drin. Für VBA ist der Typ "ääähm"=Variant. Das ist wohl manchmal grob falsch, manchmal nicht. Bei deiner Deklaration sind die Variablen Spin, ZK, Stützenanzahl, ExN, Stützenbemaßen alle vom Typ "ääähm/Variant und AlleAusdrehmaße vom Typ Integer. Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Simon Pie Mitglied Bauingenieur
Beiträge: 12 Registriert: 09.02.2014 professionelle Dokumentation
|
erstellt am: 16. Apr. 2014 20:22 <-- editieren / zitieren --> Unities abgeben:
|
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 23. Apr. 2014 12:40 <-- editieren / zitieren --> Unities abgeben: Nur für Simon Pie
Am Besten ist es im Projekt "OPTION EXPLICIT" zu setzen. Dann musst du alle Variablen deklarieren. Ja du musst für jede Variable den Typ angeben. Es geht auch mit angehängten Typkürzeln (siehe unten)
Code: Option Explicit Sub Datentypen() Dim IntegerZahl%, SingleZahl!, LongZahl&, DoubleZahl#, StringText$, VariantWert IntegerZahl = 4 SingleZahl = 1 LongZahl = 1 DoubleZahl = 1.2 StringText = "xyz" VariantWert = 333 VariantWert = "xyz" End Sub
Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|