Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Längen addieren

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:  Längen addieren (2619 mal gelesen)
dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 20. Aug. 2004 09:09    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 würde gerne die Linien(Leitungslängen) in einer Zeichnung addieren und das Ergebnis Anzeigen lassen. Wie muss ich den Code Ergänzen?
    Sub Lays()
    Dim gew As AcadObject
    Dim ausw As AcadObject
    Dim acss As AcadSelectionSet
    Set acss = ThisDrawing.SelectionSets.Add("0003")
    On Error GoTo ENDE
    ThisDrawing.Utility.GetEntity gew, basePnt, "Objekt wählen"
        MsgBox "Der Layername ist: " & gew.Layer, , "Layerwahl"
                acss.SelectOnScreen
For Each ausw In acss
        If ausw.Layer = gew.Layer Then
      MsgBox "Leitungslänge: " & ausw.Length, vbOK, "Auswertung"
    End If
  Next  'ausw
  If ausw.Layer <> gew.Layer Then
  MsgBox "Nichts gefunden"
  End If
  acss.Delete
ENDE:
  acss.Delete
End Sub

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

dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 20. Aug. 2004 10:47    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

Ok stelle die Frage noch mal neu.
Wie kann ich  die in einem selectionset gewählten linien als Summe der Längen Anzeigen lassen?
Danke für die Antwort

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 20. Aug. 2004 22: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 Nur für dan_rather 10 Unities + Antwort hilfreich

Hi Dan,

nich probiert, nur schlaue Sprüche ...
rein vonner Logik her, nimm noch ne Variable i as Double rein, und denne innerhalb for-each:

i=i+ausw.Length

und die message aus der Schleife rausnehmen und besser irgendwo ans Ende setzen [einmal in Summa sollte ja reichen] und ich würd' noch auf if Typeof ausw is AcadLine abklopfen

lg Nancy
--
Sometimes it works, normally it 'DOS'nt.

[Diese Nachricht wurde von startrek am 20. Aug. 2004 editiert.]

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

dan_rather
Mitglied
Techniker HLK


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

Beiträge: 97
Registriert: 09.12.2003

erstellt am: 21. Aug. 2004 12:10    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 Nancy,
Dank deines Tips hier der korrekte Code:
    Sub Massenermittlung()
    Dim gew As AcadObject
    Dim ausw As AcadObject
    Dim acss, acssn As AcadSelectionSet
    Set acss = ThisDrawing.SelectionSets.Add("Line2")
    Dim Mldg, Stil, Titel, Antwort, Text1
    Mldg = "Leitungslänge: "    ' Meldung definieren.
    Stil = vbOKCancel
    Titel = "Auswertung"
    frei = "  "
    Dim acbr As AcadBlockReference
    Dim entf As AcadObject
    Dim i As Double
    Set entf = acbr
    On Error GoTo ENDE
   
    ThisDrawing.Utility.GetEntity gew, "Objekt wählen"
        MsgBox "Der Layername ist: " & gew.Layer, , "Layerwahl"

acss.SelectOnScreen

For Each ausw In acss

        If ausw.Layer = gew.Layer Then
        If TypeOf ausw Is AcadLine Then
        i = i + ausw.Length / 1000
  End If
  End If
  Next ausw
      Antwort = MsgBox(gew.Layer & frei & Mldg & frei & i & " m", Stil, Titel)
  If Antwort = vbCancel Then GoTo ENDE

ENDE:
  acss.Delete
End Sub

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 23. Aug. 2004 19:52    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 dan_rather 10 Unities + Antwort hilfreich

Hi Dan,

schön wenns 'irgendwie' klappt ;-)

Nur mal so nebenbei und überflüssigerweise:

Aktivier Dir auch mal das Lokalfenster, das gibts nicht nur in der Kneipe um die Ecke,
nein auch im VBE unter Menue Ansicht. ;-)

Wenn Du nun deine Prozedur[en] mal via F8 [oder 'Einzelschritt'] durchgehst,
kannst Du da sehr schön die verschiedenen [Objekt]Variablen beobachten,
deren Zustände, Typen, was sie und ob überhaupt noch alles so mitbringen, etc. ..., hilft manchmal IMHOIn my humble opinion = Meiner bescheidenen Meinung nach ungemein.
Du siehst [wenn auch sicher nicht sofort] was man zT. für Ballast mit sich rumschleppt.

Also ruhig ab & zu mal 'einkehren' und einen draufmachen ;-)

lg Nancy

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

Cad1985
Mitglied
hab einen


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

Beiträge: 380
Registriert: 30.11.2005

Intel Core Duo
Processor t2400 1.83 GHz
1Gb RAM
Geforce 256 MB
Windows XP<P>Inventor 9-11
Autocad 2005-2007
ADT 2005-2007

erstellt am: 14. Mrz. 2007 12:15    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 dan_rather 10 Unities + Antwort hilfreich

Hallo Leute,

Habe gerade dieses nütztliche Tool gefunden was muss man im Code ändern damit auch die Polylinien ausgewertet werden?

------------------

Man kann nicht jeden Tag etwas Großes tun, aber gewiss immer etwas Gutes.

Gruß Manuel

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 14. Mrz. 2007 12:25    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 dan_rather 10 Unities + Antwort hilfreich

Hallo Manuell,

arbeite das Programm doch mal im Einzelschrittmodus (F8) durch.
Dann wirst du sehen das nur Linien (AcadLine) ausgewertet werden.
Wenn du hier AcadLWPolyline nimmst geht es auch mit Polylinien (LWPolylinien). Voraussetung ist aber Acad ab 2004 da vorher keine .lenght Eigenschaft da ist.

Bei der Gelegenheit mal dran denken das Profil mit Softwareangaben auszufüllen.

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

Cad1985
Mitglied
hab einen


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

Beiträge: 380
Registriert: 30.11.2005

Intel Core Duo
Processor t2400 1.83 GHz
1Gb RAM
Geforce 256 MB
Windows XP<P>Inventor 9-11
Autocad 2005-2007
ADT 2005-2007

erstellt am: 14. Mrz. 2007 13:54    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 dan_rather 10 Unities + Antwort hilfreich

Hallo Stelli,

Super danke klappt einwandfrei.


------------------

Man kann nicht jeden Tag etwas Großes tun, aber gewiss immer etwas Gutes.

Gruß Manuel

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 03. Nov. 2007 08:35    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 dan_rather 10 Unities + Antwort hilfreich

Hallo Forum,

wenn ich mySSet.SelectOnScreen verwende, werden doch alle sichtbaren Elemente am Bildschirm in das SelectionSet aufgenommen, oder?

Gibt es nun eine Möglichkeit, nur die markierten Elemente auszuwählen, oder muss das SelectionSet mit SelectOnScreen erstellt werden und anschließend drüber iteriert werden, um für jedes Element abzufragen, ob es selektiert ist?

Lg Peter

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1357
Registriert: 24.07.2002

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 03. Nov. 2007 09:42    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 dan_rather 10 Unities + Antwort hilfreich

Hi Peter,

Mittels SelectOnScreen wählst du (oder der Benutzer) doch selber die Ob jekte / Elmente aus. Dadurch hast du doch nur die gewählten Elemente in deinem Auswahlsatz. Schau dir doch in der Hilfe die SelectOnScreen(Methode) mal an. Es ist da gut beschrieben.

Gruß, Carsten

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