| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: DGM - Polylinien nach Erhebung auswählen (1153 mal gelesen)
|
fraz87 Mitglied
Beiträge: 8 Registriert: 28.02.2008
|
erstellt am: 07. Mai. 2010 10:59 <-- editieren / zitieren --> Unities abgeben:
Hallo! Folgendes Problem: Wir haben ein DGM-Modell aus 2-D-Polylinien im Abstand 1 m, die alle auf einem Layer liegen. Wir würden nun gerne per Befehl jene Polylinien auswählen, die eine Erhebung mit der Endziffer 5 haben, z.B. 15, 25, 35, 45 etc. oder auch 10 bei den letzten beiden Ziffern, z.B. 20, 30, 40 etc., und die selektierten Polylinien in andere Layer verschieben. Gibt es in ACAD MAP 2007 eine Möglichkeit, dies per Befehl oder Script zu lösen. Für eine einfache Lösung wäre ich sehr dankbar. Gruß RJB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 07. Mai. 2010 12:39 <-- editieren / zitieren -->
Hi, nein, automatisiert und fertig geht da leider nix. Mit einem kleinen LISP oder VBA oder ... kannst Du schon mit diesen Elementen was anstellen, wäre jetzt die Frage, was willst Du mit diesen tun? - alfred - ------------------ www.hollaus.at |
fraz87 Mitglied
Beiträge: 8 Registriert: 28.02.2008
|
erstellt am: 07. Mai. 2010 13:56 <-- editieren / zitieren --> Unities abgeben:
Sehr geehrter Hr. Neswadba! Habe leider von LISP und VBA keine Ahnung und wie ich das hinbringen könnte.... Leider sind manchmal DGMs so, dass alle Linien auf einem Layer liegen.... und wenn dann 1000 verschiedene Höhenlinien drinnen sind, ist die Sortierung doch recht zeitaufwendig... MfG RJB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 07. Mai. 2010 13:58 <-- editieren / zitieren -->
Hi, soll heissen, Du willst diese nur in unterschiedlichen Layern haben? Oder was soll dann damit geschehen? Ich würd schon was machen, aber müsste wissen, was! - alfred - ------------------ www.hollaus.at |
fraz87 Mitglied
Beiträge: 8 Registriert: 28.02.2008
|
erstellt am: 07. Mai. 2010 14:05 <-- editieren / zitieren --> Unities abgeben:
HAllo! Ich möchte eigentlich nur die Polylinien, die die entsprechenden letzten Ziffern haben, markieren und in einen anderen/neuen Layer verschieben, um dann die Linienstärke über die Farbsteuerung anzupassen (100-er-Linien sollen dann dicker gedruckt werden als 1-er-Linien)... Gruß RJB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 07. Mai. 2010 15:34 <-- editieren / zitieren -->
Hi, anbei ein Tool, mit welchem Du: a) eine Selektion der Elemente machst, deren Erhebung Du prüfen willst b) den Modulo-Wert angibst (vereinfacht für dieses Beispiel das Höhenintervall) Durch die gewählten Elemente wird dann durchgescannt, die Eigenschaft 'Erhebung' des Elements geprüft, fällt die Höhe dann in das Intervall (alles wird hier mal auf 4 Dezimalstellen gerundet), dann wird: - der ursprüngliche Layername des Elements genommen (z.B. HL) - diesem der Intervallwert hinzugefügt (==> HL_5) - und das Element auf diesen neuen Layer gelegt Ergänzende Info: - bei Intervallangaben mit Dezimalstellen wird im Layer statt des Dezimalzeichens ein Underline eingesetzt) - durch die Rundung auf 4 Dezimalstellen funkt auf kein Intervall, das mehr als 4 Dezimalstellen hat wer's braucht, kann sich's ja umschreiben Umgang mit dem Tool: Das DVB-File vom Windows-Explorer in den Graphikbereich von AutoCAD hineinziehen und fallen lassen (entspricht dem Laden des VBA-Projekts).
Befehl: -VBARUN Makroname: AN_ElevationToLayer Objekte wählen: <Element jetzt wählen> Objekte wählen: <ENTER> Modulo-Wert für Erhebung: 5 ...statt 5 natürlich den eigenen gewünschten Wert VORSICHT: Dieses Tool ist nicht ausreichend getestet! Vorher sichern, nachher kontrollieren!
- alfred - ------------------ www.hollaus.at |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2021, Civil 3D, MAP 3D, MDT, RD, Infraworks Inventor 2021, Win10Pro
|
erstellt am: 07. Mai. 2010 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für fraz87
Auswählen kannst du die Polylinien doch über Schnellauswahl (SAUSWAHL) jeweils für eine bestimmte Höhe (Unteroption "Erhebung"). Alternativ hilft dieses Codeschnipselchen, dass man auch in einen Script für versch. Erheubungen wiederholt aufrufen lassen könnte. Code: Befehl: EIGÄNDR Objekte wählen: (ssget "x" '((0 . "*LINE")(38 . 750.0))) <Selection set: 28f> 21 gefunden Objekte wählen: Geben Sie die zu ändernde Eigenschaft ein [Farbe/LAyer/LTYp/LTFaktor/LStärke/Objekthöhe/Material/Beschriftung]: Fa Neue Farbe [Truecolor/Farbbuch] <7 (weiß)>: rot
Eleganter gehts, wenn man eine Schleife drum herum programmiert - vielleicht ist das ja ein Anreiz. ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fraz87 Mitglied
Beiträge: 8 Registriert: 28.02.2008
|
erstellt am: 07. Mai. 2010 17:29 <-- editieren / zitieren --> Unities abgeben:
Hallo Herr Hübener! Die Idee mit der Schnellauswahl ist gut. Besteht die Möglichkeit, beim Feld WERT eine Funktion einzugeben? Z.B. Höhenlinien liegen zwischen 500 m und 1000 m und man möchte nur die 10-er-Linien auswählen als im Wertefeld 500 + z*10 Gibt es so eine Möglichkeit? Dank RJB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fraz87 Mitglied
Beiträge: 8 Registriert: 28.02.2008
|
erstellt am: 07. Mai. 2010 17:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Hr. Neswadba! HAbe das VBA-Tool getestet. Das ist genau die Funktion die ich gesucht habe. Ganz ganz herzlichen Dank für die schnelle Hilfe. ad Hr. Hübner (Name leider vorhin falsch geschrieben - sorry): bin trotzdem noch auf Ihre geschätzte Antwort gespannt MFG RJB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |