|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung 
 | 
| Autor | Thema:  Selektion MPolygon mit nentselp (988 /  mal gelesen) | 
 | NameWaster Mitglied
 Technischer Zeichner
 
 
      Beiträge: 3Registriert: 25.08.2022
 |    erstellt am: 25. Aug. 2022 08:31  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo allerseits, ich habe folgende Situation:ich habe 1 Raumfläche als MPolygon in AutoCAD Map gezeichnet und 1 Raumstempel als Block gezeichnet.
 Mit entget habe ich mir den Einfügepunkt des Blocks geholt und dessen Koordinaten übergebe ich an die nentselp Funktion und möchte das zugehörige MPolygon damit selektieren um dessen ObjektId auszulesen aber die Selektion klappt leider nicht. Scheinbar geht der Klick bei MPolygonen nur am Rand, der Einfügepunkt wird aber jeweils nur an einer beliebigen Position innerhalb des jeweiligen Polygons sein - ich muss das natürlich für mehrere Räume automatisiert hinbekommen   Was kann ich tun? Bitte um Hilfe.Besten Dank! Grüße
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | archtools Mitglied
 
 
     
 
      Beiträge: 1059Registriert: 09.10.2004
 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme |    erstellt am: 25. Aug. 2022 10:37  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   
 Zitat:Original erstellt von NameWaster:
 Hallo allerseits,
 ich habe folgende Situation:ich habe 1 Raumfläche als MPolygon in AutoCAD Map gezeichnet und 1 Raumstempel als Block gezeichnet.
 Mit entget habe ich mir den Einfügepunkt des Blocks geholt und dessen Koordinaten übergebe ich an die nentselp Funktion und möchte das zugehörige MPolygon damit selektieren um dessen ObjektId auszulesen aber die Selektion klappt leider nicht. Scheinbar geht der Klick bei MPolygonen nur am Rand, der Einfügepunkt wird aber jeweils nur an einer beliebigen Position innerhalb des jeweiligen Polygons sein - ich muss das natürlich für mehrere Räume automatisiert hinbekommen    Was kann ich tun? Bitte um Hilfe.Besten Dank! Grüße
 
 Was ist ein MPolygon? Ich nehme an, eine simple Polylinie. Der Einfügepunkt des Blocks liegt in Weltkorrdinaten vor. Wenn die Polylinie nicht genau durch diesen Punkt geht, dann kann das nicht klappen. Würde es Dir helfen, die Elemente der Blockdefinition durchzugehen, um die gesuchte Polylinie zu erhalten? Hat diese Polylinie irgendwelche Erkennungsmerkmale (besonderer Layer, Farbem XData ...?).
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | NameWaster Mitglied
 Technischer Zeichner
 
 
      Beiträge: 3Registriert: 25.08.2022
 |    erstellt am: 25. Aug. 2022 11:03  <-- editieren / zitieren -->    Unities abgeben:            
  MPolygon ist ein ACAD MAP spezifisches Objekt, ähnlich einer SOLID-Schraffur. Es ist ein Polygon mit einer Füllung. Meine Blöcke haben jeweils eine einzigartige ID in einem Attribut stehen, derselbe Wert steht auch im jeweiligen MPolygon im Hyperlink - das wäre prinzipiell der Konnex, aber ich habe es bisher nicht geschafft den Wert des Hyperlinks mit entget oder dumpallproperties o.ä. auszulesen. Vielleicht gibt es da eine andere Möglichkeit? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | archtools Mitglied
 
 
     
 
      Beiträge: 1059Registriert: 09.10.2004
 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme |    erstellt am: 25. Aug. 2022 11:06  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   
 Zitat:Original erstellt von NameWaster:
 MPolygon ist ein ACAD MAP spezifisches Objekt, ähnlich einer SOLID-Schraffur. Es ist ein Polygon mit einer Füllung.
 Meine Blöcke haben jeweils eine einzigartige ID in einem Attribut stehen, derselbe Wert steht auch im jeweiligen MPolygon im Hyperlink - das wäre prinzipiell der Konnex, aber ich habe es bisher nicht geschafft den Wert des Hyperlinks mit entget oder dumpallproperties o.ä. auszulesen. Vielleicht gibt es da eine andere Möglichkeit? 
 ... und was ist mit XData oder XDictionary? Irgendwo wird Map diese Daten ja speichern. Ich tippe auf XData.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 25. Aug. 2022 11:09  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 Alles |    erstellt am: 25. Aug. 2022 11:21  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   
  Hätte ich mal keine Pause gemacht beim tippen, aber egal - war ja schon getippt: @Tom
 Ein MPolygon ist ein MPolygon(AcDbMPolygon) und ist mehr mit einer Schraffur vergleichbar,
 siehe auch DXF Referenz des HATCH Objektes!
 Definiert in der acmpolygonobj23.dbx   (23 steht hier für Adeskprodukte ..2023) und
 eigentlich aus der Civil3D/MAP, kann aber so auch in AutoCAD erzeugt werden.
 Siehe auch DXF Referenz zu Objekt HATCH
 @NameWasterDu würdest dir selbst einen Gefallen tun bei derartigen Anfrage gleich ein Beispiel beizulegen (DWG)
 Wenn über die Objektdaten keine Zuordnung möglich ist, dann mußt du das MPolygon entweder
 mit Mathematik ermitteln, oder per Objektwahl (ssget, Methode ZAUN zB.)
 : Die Objekte liegen entsprechend der Enfernung vom ersten zum letzten Zaunpunkt im Auswahlsatz ab,
 man bräuchte also nur im Fall von deckungsgleicher Geometrie eine besondere Prüfung.
 Du wirst viel Information und auch Code im www finden, das Thema steht oft mit einer Überschrift wie "Punkt in Polygon" in zusammenhang, gerne auch in Englisch.Viel Spaß mit dem Thema, schau/lese ohne die Lisp-Brille, das Umsetzen in eine ProgrammierspracheX ist ja nur das letzte Beiwerk was es zu bewältigen gibt.
 (kannst aber natürlich auch "Fertiges" nehmen, deine Sache) Was mich nicht wundern würde: Wenn es nicht zufällig eine Civil/MAP Funktion für dein Anliegen geben würde, aber da kenne ich mich nicht aus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 Alles |    erstellt am: 25. Aug. 2022 11:44  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   
 Zitat:Original erstellt von NameWaster:
 Meine Blöcke haben jeweils eine einzigartige ID in einem Attribut stehen, derselbe Wert steht auch im jeweiligen MPolygon im Hyperlink
 ich habe es bisher nicht geschafft den Wert des Hyperlinks mit entget oder dumpallproperties o.ä. auszulesen.
 
 Hyperlinks sind erweiterte Daten am Objekt:Befehl: (assoc -3 (entget (car(nentsel)) '("PE_URL")))
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | archtools Mitglied
 
 
     
 
      Beiträge: 1059Registriert: 09.10.2004
 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme |    erstellt am: 25. Aug. 2022 11:57  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   
 Zitat:Original erstellt von cadffm:
 
 Hyperlinks sind erweiterte Daten am Objekt:Befehl: (assoc -3 (entget (car(nentsel)) '("PE_URL")))
 
 Er will ja automatisieren und kommt deshalb nicht per NENTSEL an das Objekt ran. Er muss, wie schon geschrieben, die Elemente der Blockdefinition durchlaufen und auf MPOLYGON und die XData prüfen.(setq result nil)
 (foreach en l-eninblockdef
 (if (and (= "MPOLYGON" (cdr (assoc 0 (entget en))))
 (setq dat (assoc -3 (entget en) '("PE_URL")))
 )
 (setq result (cons (list en dat) result))
 )
 )
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 Alles |    erstellt am: 25. Aug. 2022 12:00  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   | 
                        | Meldin Mitglied
 
 
   
 
      Beiträge: 404Registriert: 15.07.2011
 ACA2020Windows11
 |    erstellt am: 25. Aug. 2022 12:08  <-- editieren / zitieren -->    Unities abgeben:           Nur für NameWaster   
  Spielerei ab manchmal hilft es bei der Auswahl den Zoom zu verändern. Code:(setq cmdecho-var (getvar "cmdecho"))
 (setvar "cmdecho" 0)
 (setq AWS-Punkt '(1.62967 247.961 0.0))
 (command "_.Zoom" "g" "");;; <<<<<<<<<----------------
 (setq entName (car (nentselp AWS-Punkt)))
 (setvar "cmdecho" cmdecho-var)
 
 
 ------------------Gruß Wolfgang
  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | NameWaster Mitglied
 Technischer Zeichner
 
 
      Beiträge: 3Registriert: 25.08.2022
 |    erstellt am: 25. Aug. 2022 12:19  <-- editieren / zitieren -->    Unities abgeben:            |