Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  PEdit

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:  PEdit (2250 mal gelesen)
127.0.0.0
Mitglied
Informatiker

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

Beiträge: 3
Registriert: 15.01.2014

erstellt am: 15. Jan. 2014 12: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

Ich habe ein Problem mit Pedit, welches ich aus VisualLisp nutzen möchte.

Ich gehe beispielsweise hin, selektiere ein Polygon, rufe Pedit mit diesem Polygon auf, springe ausgehend vom Startpunkt an den dritten Punkt und füge einen Punkt ein.

So und da haben wir schnell den Salat, denn sobald ein Teil des Polygon nicht sichtbar ist, kann ich nicht automatisiert auf den dritten Punkt springen, da der Startpunkt bei "pedit->kontrollpunkte Bearbeiten" offenbar der erste sichtbare Punkt des Polygon ist.

Zur Nachspielen:
Man zeichnet sich ein Polygon mit 4 Punkten. Nennen wir die Punkte P1, P2, P3, P4, gemäß ihrer Zeichenreihenfolge.  Nun zoomt man so heraus dass das komplette Polygon sichtbar ist und ruft "pedit->kontrollpunkte Bearbeiten" auf. Hier steht die Selektion auf P1. Drückt man einmal auf "Nächsten Punkt" landet man auf P2,... Alles wie erwünscht.

Nun zoomt man das Polygon aber so dass nur die letzten beiden Punkten P3 und P4 sichtbar sind. Ruft man nun "pedit->kontrollpunkte Bearbeiten" auf steht die Selektion auf P3.

Unter AutoCAD 2000 kann ich nicht an den Punkt P1 springen, sondern die Selektion bleibt immer auf den Punkt P3 stehen. 

Unter BricsCAD kann ich die Selektion zum vorherigen Punkt bewegen. Aber steht die Selektion auf P1 und springe ich dann zum nächsten Punkt, lande ich automatisch auf P3. 


Ich brauch eine Vorgehensweise, wie ich in PEdit auf den i-ten Punkt selektierten kann. Also so was:

1.) Bestimme die Anzahl der Punkte des Polygon
2.) Rufe "pedit->kontrollpunkte Bearbeiten" mit dem Polygon auf
3.) Springe sooft zum vorherigen Punkt, bis wir uns sicher sein können dass die Selektion auf dem ersten Punkt steht. Die Anzahl der Wiederholungen entspricht der Anzahl der Punkte des Polygons.
4.) Springe i - 1 mal zum nächsten Punkt


Kennt da jemand Hilfe?


Wäre schon dankbar ob man in BricsCAD irgenteine Systemvariable kennt, mit der man das Verhalten von "pedit->Kontrollpunkt bearbeiten" steuern kann, s.d. die Selektion Punkt für Punkt funktioniert.


---


Alternativ das Ganze mit den AutoCAD Objekten (entmake,...) ist auch nicht so das Gelbe vom Ei. Ich habe keine Ahnung wie man Dateien splittet, eigene Daten Strukuren definiert, eine vollständige Doku findet,...

Ich bin da voll frustiert.... 

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: 15. Jan. 2014 12:33    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 127.0.0.0 10 Unities + Antwort hilfreich

Willkommen im Forum!

Ich gehe nicht auf deine Ausführungen ein und werde für deinen Ansatz auch nicht über Lösungen nachdenken, denn wenn du anstelle von (command "_.pedit" ..) mit (entmod ..) arbeitest, sind deine ganzen Probleme gelöst (was nicht heißt, dass es dann nicht andere gibt?) 

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

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

Hallo,
das ließt sich doch wie eine perfekte Anfängeraufgabe!
Wenn PEdit in beiden Programmen Ärger bereitet solltest du den Hinweisen von Holger folgen und diesen Weg beschreiten.

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1 die aus unerklärlichen Gründen aus dem System hier gelöscht wurden. 

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 15. Jan. 2014 22: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 127.0.0.0 10 Unities + Antwort hilfreich

Hallo,

wenn Du auf die Kontrollpunkte kommst die Du haben möchtest, was willst Du dann damit machen?

Verschieben? In eine bestimmte Richtung?
Warum gehst Du über ein Polygon zu Deinem Ziel?
Warum zeichnest Du nicht gleich eine Polylinie, bei der die Eckpunkte an der richigen Stelle sind?

Je nach dem was es werden soll, benötigst Du vielleicht den ganzen Aufwand nicht.

Gruß

Theodor

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 16. Jan. 2014 09:05    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 127.0.0.0 10 Unities + Antwort hilfreich

Hallo,

Zitat:
Original erstellt von 127.0.0.0:

So und da haben wir schnell den Salat, denn sobald ein Teil des Polygon nicht sichtbar ist, kann ich nicht automatisiert auf den dritten Punkt springen, da der Startpunkt bei "pedit->kontrollpunkte Bearbeiten" offenbar der erste sichtbare Punkt des Polygon ist.

Vielleicht hilft es Dir, wenn Du vor dem Aufruf von _pedit folgende Zeile verwendets:
(command "_.zoom" "Objekt" ep "")

ep ist dabei der Elementname des Polygons.

Viele Grüße
Bernd

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

127.0.0.0
Mitglied
Informatiker

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

Beiträge: 3
Registriert: 15.01.2014

erstellt am: 16. Jan. 2014 09:05    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

@Melding & Brischke:
Ok, ich spiele mal ein wenig damit rum.

Nebenbei: In dem PDF Dokument "AutoLISP Reference Guide 2013" steht zu entdel:

"The entdel function operates only on main entities. Attributes and polyline
vertices cannot be deleted independently of their parent entities. You can use
the command function to operate the ATTEDIT or PEDIT command in the
Command Reference to modify subentities."

Und da ich auch Punkte löschen möchte, finde ich dies gerade ein wenig amüsant, auch wenn ich dabei heulen könnte. 

Aber vielleicht kann man ja wie Theodor Schoenwald sagte, auch Punkte löschen/einfügen in dem ich ein neues Polygon zeichne.


@Theodor Schoenwald:
Ich muss Punkte einfügen/löschen/verschieben können.

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: 16. Jan. 2014 09:14    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 127.0.0.0 10 Unities + Antwort hilfreich

ein Frühwerk zum Thema

und ein "späteres"

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 16. Jan. 2014 21:22    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 127.0.0.0 10 Unities + Antwort hilfreich

Hallo,

ein Polygon ist ja nicht anderes als eine Polylinie, deren Punkte würde ich "auslesen" und durch neue Punkte ersetzen.
Der eleganteste Weg ist der Vorschlag von Holger.
Es geht aber auch so:
;; ------------------------------------------------------
(defun GETPTS (ENT / EG ENAME D N P0 TMP PTS)
(setq EG (entget ENT))
(setq ENAME (cdr (assoc 0 EG)))
(cond
  ((= ENAME "LWPOLYLINE")
  (setq D  (cdr (assoc 38 EG))
        N  (cdr (assoc 210 EG))
        P0 (mapcar '* N (list D D D))
  )
  (while (setq TMP (assoc 10 EG))
    (setq EG  (cdr (member TMP EG))
          PTS (cons (mapcar '+ (trans (cdr TMP) ENT 0) P0) PTS)
    )
  )
  )
  ((= ENAME "POLYLINE")
  (while (= (cdr (assoc 0 (entget (setq ENT (entnext ENT))))) "VERTEX")
    (setq PTS (cons (cdr (assoc 10 (entget ENT))) PTS))
  )
  )
) ;_ cond

(reverse PTS)
) ;_ defun getpts
;; -------------------------------------------------------

Mit diesem Strickmuster bekommst Du eine Liste mit Eckpunkten von Deinem Polygon.

Danach kannst Du verändern und danach wieder neu zeichnen.

Gruß
Theodor

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

127.0.0.0
Mitglied
Informatiker

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

Beiträge: 3
Registriert: 15.01.2014

erstellt am: 11. Feb. 2014 10:11    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

Entschuldigt Leute für meine späte Antwort. Es klappt nun perfekt.       

Ich habe mein Skript so umgestellt, dass zuerst die Koordinateliste eines Polyline Objektes bestimmt wird, dann die Koordinatenliste manipuliert wird und die neue Koordinatenliste wieder in das Polygon füttert wird.

Ich skizziere mal die Lösung, damit auch andere davon was haben: 

Laden von Koordinaten:

Code:
(setq PolyObj (car (entsel "\nPolylinie wählen: ")))
(setq VLAPolyObj (vlax-ename->vla-object PolyObj))
(setq CoordList (vlax-get VLAPolyObj 'Coordinates))


Speichern von Koordinaten:

Code:
(vlax-put VLAPolyObj 'Coordinates NewCoordList)

Mit ein wenig Aufwand lässt sich damit einheitlich auf den gängigen Polyline Typen (AcDb3dPolyline, AcDbPolyline,...) arbeiten.

Wobei ich den Verdacht hege, das (vlax-get VLAPolyObj 'Coordinates) ein Synonym für (vlax-get-coordinates ist. Entsprechendesgilt für vlax-put.

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



Fachingenieur (m/w/d) Grundstücksentwässerung und Verkehrsflächen

GOLDBECK?realisiert zukunftsweisende Immobilien in Europa. Wir verstehen Gebäude als Produkte und bieten alle Leistungen aus einer Hand: vom Design über den Bau bis zu Services im Betrieb. Aktuell beschäftigt unser Familienunternehmen mehr als 12.000 Mitarbeitende an über 100 Standorten bei einer?Gesamtleistung von über 6 Mrd. Euro. Unser Anspruch ?building?excellence? steht dabei für Spitzenleistungen ...

Anzeige ansehenBauwesen
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: 11. Feb. 2014 10: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 127.0.0.0 10 Unities + Antwort hilfreich

Hallo 127.0.0.0,

Zitat:
Wobei ich den Verdacht hege, das (vlax-get VLAPolyObj 'Coordinates) ein Synonym für (vlax-get-coordinates ist. Entsprechendesgilt für vlax-put.

Vom Prinzip ist es denke ich das selbe, aber bei
(vlax-get VLAPolyObj 'Coordinates) bekommst Du eine Liste zurück und bei
(vla-get-Coordinates VLAPolyObj) erhälst Du einen Variant, der dann noch in eine Liste umgeformt werden muss.
Aus Bequemlichkeit verwende ich daher lieber die erste Variante.

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

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

Rahmen einfügen Youtube

Stammtisch Wolfsburg Februar 2014

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