Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Linienselektion südlich von Mtext

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:  Linienselektion südlich von Mtext (1696 mal gelesen)
Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 06. Okt. 2014 12: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

Hallo liebe Community,

meine LISP Kenntnisse sind leider nicht so groß.
Folgendes Problem habe ich.

Ich habe ein Zeichnung mit mehreren Linien und Texten.
Ich möchte gerne eine LISP-Routine schreiben die mir den Text und die dazugehörige Linie auf einen anderen Layer verschiebt.
Die dazugehörige Linie liegt südlich vom Mtext.
Ich nicht sagen, das er die Linie im Umkreis nehmen kann, da auch nördlich vom Mtext eine Linie liegt.

Folgende Vorgangsweise habe ich mir überlegt, aber ich weiß nicht wie ich das umsetzten kann.

1) Lisp sucht mir nach MTexten mit den Inhalten: *Kabel*
2) Danach wird die Rotation vom Mtext ausgelesen und die südliche Linie vom Mtext selektiert.
3) Den Mtext und die Linie werden auf den Layer: "Übersicht" verschoben.

Kann mir jemand helfen?

------------------
Grüße

Christian

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 (d-tools.eu)

erstellt am: 06. Okt. 2014 12: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 Nur für Christian01 10 Unities + Antwort hilfreich

Hallo Christian,

wie weit bist du denn mit deinem Code? Wo hakt es konkret?

Grüße!
Holger

------------------
Holger Brischke
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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 06. Okt. 2014 12:28    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 Christian01 10 Unities + Antwort hilfreich

Ist die betreffende Linie genau so lang wie der Text (breit), oder länger, oder kürzer? Wie weit ist die Linie vom MText entfernt. Sind es mehrzeilige Textelemete oder stets einzeilig? Wo ist der Basispunkt der Textelemente?
Am besten mal einen verallgemeinerungsfähigen Zeichnungsauschnitt posten.

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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

Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 06. Okt. 2014 13:17    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


Beispiel.zip

 
Hier habe ich ein Beispiel beigefügt.

------------------
Grüße

Christian

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 06. Okt. 2014 13:40    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 Christian01 10 Unities + Antwort hilfreich

Darf man folgende Randbedingungen festlegen:
- betreffender MText ist stets mit der Ausrichtungsoption "unten zentriert" positioniert worden
- Linie befindet sich stets 0.25 ZE unterhalb des Einfügepunktes, parallel zur Textorientierung?
- Es geht um alle MTextelemente, die die Zeichenfolge "*kabel*" beinhalten? (Ist ja eigentlich schon mit Ja beantwortet, aber doppelt hält besser  )

Ich hoffe Du verstehst den Sinn dieser Fragen, nämlich: woran kann/soll das Programm erkennen, welche Linie zu welchem Textelement gehört. Erst wenn das geklärt ist kann man sich Gedanken machen, wie das zu automatisieren wäre.

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 06. Okt. 2014 20: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 Christian01 10 Unities + Antwort hilfreich

So richtig schlau bin ich nicht aus deinen Zeichnung geworden. Einmal liegt ein MText mit Basis (UM) und einmal ein Mtext mit Basis (OM) an der Linie.
Es stellt sich die Frage, sollen die MText so verändert werden, wie sie im Ergebnis farblich dargestellt sind?

Ansonsten müsstest du ja jedesmal eine Linie wählen und dann die betreffenden Mtext ihrer Eigenschaften aufrufen. Ausserdem müsstest du auch den Textwinkel mit einbeziehen.
Ich würde mir vielleicht grundsätzlich erstmal überlegen, wie es "händisch" zu bewältigen wäre und dann wie man es automatisieren könnte.
Denn dann wirst du vielleicht feststellen, dass der Umfang des Programms ziehmlich überhand nimmt und Fehler im Voraus beseitigt sein müssen, damit das Programm auch einwanfrei funktioniert.
Mir hat sich eine solche Aufgabe noch nicht gestellt, ich sehe aber den Aufwand immens.

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

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

Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

Briscad V22
ACAD MAP 2019
Win 10 Pro 64bit
Intel, 4x 3,0 GHz, 8GB RAM
2 x 24" TFT

erstellt am: 06. Okt. 2014 21:07    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

Zitat:

Darf man folgende Randbedingungen festlegen:
- betreffender MText ist stets mit der Ausrichtungsoption "unten zentriert" positioniert worden Teilweise
- Linie befindet sich stets 0.25 ZE unterhalb des Einfügepunktes, parallel zur Textorientierung? Ja
- Es geht um alle MTextelemente, die die Zeichenfolge "*kabel*" beinhalten? (Ist ja eigentlich schon mit Ja beantwortet, aber doppelt hält besser  ) Ja

Die Ausrichtungsposition von den betreffenden Mtexten in einer Zeichnung könnte unterschiedlich sein.

------------------
Grüße

Christian

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 07. Okt. 2014 05:56    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 Christian01 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Christian01:

Die Ausrichtungsposition von den betreffenden Mtexten in einer Zeichnung könnte unterschiedlich sein.


Was ist "unterschiedlich", was kann alles vorkommen? Auch unten links und unten rechts? Oder gar auch mitte links/rechts/zentriert und/oder oben links/rechts/zentriert? Falls von letztgenanntem auch nur eine Variante zutreffen sollte, dann stimmte die Aussage "Linie befindet sich ... unterhalb des Einfügepunktes" nicht.
Stets einzeilig oder vllt. doch manchmal auch mehrzeilig? Hast Du noch nicht definitiv beantwortet.
Alles noch ziemlich verschwommen ...

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

[Diese Nachricht wurde von jupa am 07. Okt. 2014 editiert.]

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 (d-tools.eu)

erstellt am: 07. Okt. 2014 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 Nur für Christian01 10 Unities + Antwort hilfreich

Hallo Christian, halo Jupa,

nun, die Herausforderung der Entwickler besteht in aller Regel darin, die Aufgabe des Kunden in eine Idee eines Programmablaufplans zu übersetzen. Dabei sollten die Gegebenheiten so akzeptiert werden, wie diese sind. Die massenhafte manuelle Änderung der Ausgangssituation ist da in aller Regel keine Option. So verstehe ich meinen Job. Zu Christians Aufgabe habe ich, aufgrund meiner Erfahrung, bereits verschiedene Lösungsideen:
A) Umkreissuche
Vom Basispunkt des MTextes ausgehend werden in immer größeren Abständen die Linien gesucht, die den o.g. Bedingungen entsprechen. Anhand logisch zu analysierender Lageverhältnisse, sollte eine eindeutige Zuordnung möglich sein.

B) Es werden zunächst alle MTexte und Linien ausgewählt. Zu den Linien werden die Einfügepunkte und Winkel berechnet und gemeinsam mit der Linien gespeichert. Danach werden alle MTexte durchlaufen und aus den Linien, mit den gleichen logischen Vergleichen wie bei (A), untersucht und so die eindeutige Zuordnung von Linie-MText ermittelt.

Ich würde (B) bevorzugen, weil man hier nicht ständig irgendwelche Auswahlen treffen muss, die bekanntlich vom angezeigten Bildschirmausschnitt abhängig sind, was ein ständiges Zoomen notwendig machen würde. (B) wird auch deshalb performanter sein, weil man nur einmal jedes Objekt auswertet.

So, ich denke, damit ist mal ein Ansatz klar, und du Christian kannst dich daran versuchen. Wenn du da nicht weiter kommst, dann poste am besten deinen Code, den du bis dahin hast.
Ich poste hier jetzt keine Lösung, weil ich das in c#.Net schreiben würde - denke aber, dass meine Lisp-Kenntnisse noch ausreichen, um dir im Zweifel die richtigen Stichworte zum Weiterkommen geben kann - und es sindhier  ja noch andere sehr gute Helfer aktiv.

Bei Fragen ...

Grüße!
Holger

------------------
Holger Brischke
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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 07. Okt. 2014 08:20    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 Christian01 10 Unities + Antwort hilfreich

... ich würde auch so wie unter B) beschrieben vorgehen ... aber ist eben mal nicht in 5 min runtergetippt.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 07. Okt. 2014 10:06    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 Christian01 10 Unities + Antwort hilfreich

Nun, mein Denkansatz war ein klein wenig anders (läuft aber im Prinzip auf das gleiche hinaus):
- Suche alle MTexte, in denen "*kabel* (bel. groß/klein) vorkommt (ssget).
- für jedes gefundene Element ermittle Einfügepunkt und Einfügewinkel
- wähle ausgehend von Einfügepunkt das Objekt, welches sich im Abstand von 2.5 ZE im Winkel von Einfügewinkel-90° zu finden ist (ssget).
- sammle alle Elemente in einem Auswahlssatz zusammen und ändere deren Eigenschaften wie gewünscht (Layer).
Deshalb mein hartnäckiges Bohren, von welcher (gesicherten) Ausgangssituation man ausgehen kann.

Na schaun wir mal. Bisher ist ja nicht mal die Frage von Holger ("wie sieht der Code bisher aus?") beantwortet.

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 07. Okt. 2014 10:13    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 Christian01 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Brischke:

A) Umkreissuche
Vom Basispunkt des MTextes ausgehend werden in immer größeren Abständen die Linien gesucht, die den o.g. Bedingungen entsprechen.


Und genau da liegt z. B. eine der Unwägbarkeiten nach Christians bisheriger Aufgabenstellung. Wenn der Basispunkt des Textes nun oben oder mittig liegt ...?

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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 (d-tools.eu)

erstellt am: 07. Okt. 2014 10:24    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 Christian01 10 Unities + Antwort hilfreich

... und deshalb ist Variante (B) in Verbindung mit der Formulierung der logischen Zusammenhänge zielführender.

Grüße!
Holger

------------------
Holger Brischke
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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 07. Okt. 2014 13:26    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 Christian01 10 Unities + Antwort hilfreich


testkombi.zip

 
Anbei mal eine Machbarkeitsstudie .... highlightet dir die entsprechenden Objekte ....

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 13. Okt. 2014 09:18    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 Christian01 10 Unities + Antwort hilfreich

Hmmm .. war wohl doch nicht soo wichtig ?!

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 15. Okt. 2014 11:58    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 CADmium,

entschudige.
Danke für die testkombi.vlx.
Genau das habe ich gemeint.

Das andere Problem ist das, das er Auswurf nicht umbedingt den MText "Kabel" beinhalten muss,
sondern ich die Liste ggf. Anpassen bzw. Erweitern müsste.

Währe es möglich das ich diesen VLX als LSP bekommen könnte?

------------------
Grüße

Christian

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 15. Okt. 2014 12: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 Christian01 10 Unities + Antwort hilfreich

Denkanstöße und den Nachweis , das es geht , haste bekommen ...
Ein fertiges Tool würde natürlich einen Auswahlsatz zurückgeben und auch andere Suchkriterien abfragen können ...

Den Quellcode möchte ich in dem Falle nicht herausgeben.
Steckt ein bisschen mehr Arbeit drin. Sorry.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 15. Okt. 2014 13: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

Trotzdem danke.

Den Auswahlsatz für die MTexte, ist kein Problem.
Die Selektion mit der Linie da hänge ich (ssget)
Folgender Gedanke:
  1) Ausrichtung von MText auslesen und 90 Grad hinzufügen (kein Problem)
  2) Selektion von Elementen in einem Abstand von 2,5 ZE,
      südlich vom Einfügepunkt des Mtextes  (--> KEINE Ahnung wie???)

------------------
Grüße

Christian

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 15. Okt. 2014 13:18    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 Christian01 10 Unities + Antwort hilfreich

Es gibt die Objektwahl ZAUN.

Aber denke immer daran das SSGET abhängig von der Bildschirmdarstellung (Ausschnitt&Zoom) arbeitet,
zu dem Them würde man auch ein paar ältere Thread finden bei Interesse..

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 15. Okt. 2014 13:36    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 Christian01 10 Unities + Antwort hilfreich

verfolge mal den Ansatz (B) .. die Linien sind übrigens Segmente von Polylinien ... und 100% parallel sind diese dann auch nicht zur MTEXTBasis ... und ich würde als Suchkriterium Texthöhe*Faktor?-Abstand von der unteren MTEXTbasis nehmen und von den gefundenen dann die PL mit dem minimalen Abstand ...

Auswahl mit "Zaun" ist imho ne Krücke , aber auch ne (fehleranfällige) Möglichkeit..

Was hast du eigentlich für einen Stundensatz? Und wieviel Zeit willst du in dein Prog investieren ? Wie lange würde die Bearbeitung "per Hand" dauern? ... auch Gedanken, die man sich machen sollte.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 15. Okt. 2014 13:41    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 Christian01 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Christian01:

  1) Ausrichtung von MText auslesen und 90 Grad hinzufügen (kein Problem)
  2) Selektion von Elementen in einem Abstand von 2,5 ZE,
       südlich vom Einfügepunkt des Mtextes  (--> KEINE Ahnung wie???)


zu 1: Wenn Einfügepunkt unten ist (links, zentriert oder rechts), dann ist die Richtung nach unterhalb des Textes: W1=Ausrichtungswinkel - 90°  (Minus!)
zu 2: Wenn Einfügepunkt unten ist und das gesuchte Objekt 2.5 ZE vom Einfügepunkt entfernt, kann man es selektieren mittels
(ssget (polar Einfügepunkt W1 2.5))
denn: (ssget) akzeptiert als Argument auch eine Koordinate und (polar Einfügepunkt W1 2.5) liefert genau den Punkt, der vom Einfügepunkt aus um 2.5 ZE in Richtung W1 entfernt ist, also so als hättest Du genau auf diese Stelle gepickt.

Beachte: Winkelangaben in LISP-Funktionen erfolgen immer im Bogenmaß.

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 15. Okt. 2014 13:55    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 Christian01 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von jupa:

zu 1: Wenn ...
zu 2: Wenn ...


zu viele WENN s ... so funktioniert Software und Programmierung nicht 

... Programme sollten weitestgehend allgemein und Anwenderfehlertolerant gehalten sein ... zumindest meine Meinung ... und da sind dann zuviel einzuhaltende Voraussetzungen kontraproduktiv.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 15. Okt. 2014 14:21    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 Christian01 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADmium:

zu viele WENN s ... so funktioniert Software und Programmierung nicht


Es war ja auch nur die direkte Antwort auf seine Frage ("Selektion von Elementen in einem Abstand von 2,5 ZE, südlich vom Einfügepunkt des Mtextes").
Die WENNs sollten eher eine abschreckende Wirkung haben 

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 15. Okt. 2014 16:39    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 Christian01 10 Unities + Antwort hilfreich

Hallo Christian,
ich gebe hier auch nochmal meinen Senf dazu, vielleicht liege ich richtig, vielleicht ja auch falsch, ich habe den Beitrag nur überflogen.

Ich würde folgende Ansatz wählen:
1. Mtext auswählen
2. Einfügepunkt Mtext und Drehung - 0.5 * PI => ist dann Richtung Süden (vom Text aus gesehen)
3. Temporäre Linie Richtung Süden, lang genug, daß alle möglichen Polylinien geschnitten werden
4. Schnittpunkte für alle PL's mit der Temporären Linie, davon über vl-sort immer den mit dem kleinsten Abstand zum Einfügepunkt Mtext.
5. Gesamtliste über vl-sort wieder nach dem kleinsten Abstand sortieren, die enthaltene PL mit dem kleinsten Abstand ist dann DIE Polyline.

Natürlich mußt Du die Auswahl der Mtexte noch in eine Schleife packen, auf den Inhalt *Kabel* prüfen, aber vom Grundsatz her müßte das so funktionieren.

Für die Schnittpunktfunktionen kann ich mal auf das Kochbuch oder die Seiten von Axel verweisen (googlen, habe gerade den Link nicht parat)

Code:

(defun c:test ( / A AWS INSERTIONPOINT N OBJ PL POLYLIST ROTATION)
  (if (setq obj (car (entsel "Mtext wählen:")))
    (progn
     
      (if (setq aws (ssget "_X" (list (cons 0 "POLYLINE,LWPOLYLINE"))))
(progn
  (setq n 0)
  (repeat (sslength aws)
    (setq PolyList (cons (ssname aws n)PolyList)
  n (+ n 1)))))

      (setq InsertionPoint (vlax-get (vlax-ename->vla-object obj)'InsertionPoint)
    Rotation (vla-get-Rotation (vlax-ename->vla-object obj)))

      (entmake (list (cons 0 "LINE")
     (cons 10 InsertionPoint)
     (cons 11 (polar InsertionPoint (- Rotation (* 0.5 pi))10000.0))))
      (setq PL(cadr
(car
  (vl-sort
    (vl-remove-if '(lambda(A)(not(car A)))
      (mapcar '(lambda(A)
(list
   (car
     (vl-sort
       (JBf_List:ObjSchnitt (entlast)A)
       '(lambda(e1 e2)
  (< (distance InsertionPoint e1)
     (distance InsertionPoint e2)))))
   A))PolyList))
    '(lambda(e1 e2)
       (< (distance InsertionPoint (car e1))
  (distance InsertionPoint (car e2))))))))

      (entdel (entlast))))

  (if PL
    (progn
      (redraw PL 3)
      (alert (strcat "Polylinie mit Handle: " (cdr(assoc 5 (entget PL))))))
    (alert "Keine Poly gefunden.")))


;;;Schnittpunkte zweier Linienobjekte
(defun JBf_List:ObjSchnitt(obj1 obj2 / SpArray)

  (setq SpArray (vlax-invoke-method(vlax-ename->vla-object obj1)
                  'IntersectWith
                  (vlax-ename->vla-object obj2) acExtendNone))

  (if(/= -1 (vlax-safearray-get-u-bound (vlax-variant-value SpArray)1))
    (JBf_List:ObjSchnitt:ArrayList->List
      (vlax-safearray->list(vlax-variant-value SpArray)) 3)))

;;;ArrayList in normale Liste
(defun JBf_List:ObjSchnitt:ArrayList->List (ArrayList i / A N RETLIST SUBLIST)
  (setq n 0)
  (mapcar '(lambda(A)
             (setq n (+ n 1)
                   subList (cons A subList))
             (if (= n i)
               (setq retList (cons (reverse subList)retList)
                     n 0
                     subList nil)))ArrayList)
  retList)        



Nachtrag: den Abstand von 0.25 Zeicheneinheiten habe ich nicht berücksichtigt, aber das sollte dann mit einer Abstandsprüfung machbar sein.


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Orthogonalvermassung Youtube

[Diese Nachricht wurde von joern bosse am 15. Okt. 2014 editiert.]

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