Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Polylinienstützpunkt einfügen

  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Thema geschlossen  Thema geschlossen!
Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

Dieser Beitrag ist erfolgreich in das Forum Lisp verschoben worden.

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:  Polylinienstützpunkt einfügen (1646 mal gelesen)
Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 18. Mrz. 2004 17: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

Hab da mal aus dem Forrum advert.lsp, Marc Scherer hat da bereits ein paar Modifikationen vorgenommen, getestet und habe dass kleine Problem, dass die Linien geteilt werden am neuen Punkt.

Wollte fragen ob das bei euch auch so ist und ob dieser Fehler wegprogrammierbar wäre ?

Code:

;;; ADVERT.LSP Add a Vertex (c)1995, Steve Houghton
;;;revised 3/23/95 to ensure new vertex is at crosshairs
;;;thanks to Patrick Wheatley
;;;Inserts a vertex in a polyline. If a line is selected, it offers to convert
;;;it to a polyline and then insert the vertex.
;;;Will report: At least one break point must be on polyline. if the end of
;;;a polyline is chosen

;;; Modifiziert und übersetzt für den ZVO
;;; am 30.05.2002 by Marc Scherer
;;;***************************************************************************

(defun C:ADVERT (/ OB OC OO OH
POLYLINE POLYNAME PICKPOINT POLYDXF ENTTYPE
LASTENT NEWVERT OLDERR ANSWER
)

(princ
"\nKontrollpunkt in Polylinie einfügen und neu positionieren..."
) ;_ end princ

(defun MC_ERR (MSG)
(princ
(strcat "\nFehler, Acad meldet: \"" MSG "\" als Ursache!")
) ;_ end princ
(setvar "OSMODE" OO)
(setvar "BLIPMODE" OB)
(setvar "HIGHLIGHT" OH)
(setvar "CMDECHO" OC)
(setq *ERROR* OLDERR
MC_ERR NIL
OLDERR NIL
) ;_ end setq
(princ)
) ;_ end defun
;_ *set all env variables,
;_ *osmode to avoid conflicts with the osnap
;_ *blipmode to make her pretty
(setq OO (getvar "OSMODE")
OB (getvar "BLIPMODE")
OH (getvar "HIGHLIGHT")
OC (getvar "CMDECHO")
OLDERR *ERROR*
*ERROR* MC_ERR
) ;_ end setq
;_ *vertext insert routine
(setvar "OSMODE" 0)
(setvar "BLIPMODE" 0)
(setvar "HIGHLIGHT" 0)
(setvar "CMDECHO" 0)

(while (setq POLYLINE
(entsel
"\nPolylinie anklicken wo ein Kontrollpunkt erzeugt werden soll: (R.klick=Ende)"
) ;_ end entsel
) ;_ end setq
(setq POLYNAME (car POLYLINE)
PICKPOINT (osnap (cadr POLYLINE) "_nea")
POLYDXF (entget POLYNAME)
ENTTYPE (cdr (assoc 0 POLYDXF))
) ;_ end setq

(if (wcmatch ENTTYPE "*POLYLINE")
(INSERTVERT)
(if (= ENTTYPE "LINE")
(progn
(initget "Ja Nein")
(setq ANSWER
(getkword
(strcat
"\n>>>>>>>>>>>>>>>>>> Linie gewählt! <<<<<<<<<<<<<<<<<<<<<<<<<<<<"
"\nSoll diese Linie zur Polylinie gemacht werden? [Ja/Nein] <Ja> "
) ;_ end strcat
) ;_ end getkword
) ;_ end setq
(if (not ANSWER)
(setq ANSWER "Ja")
) ;_ end if
(cond
((= ANSWER "Nein")
(princ "\nLinie nicht in Polylinie konvertiert!")
)
(t
;_ *turn current line into a polyline
(command "_.pedit" POLYNAME "_y" "")
(INSERTVERT)
)
) ;_ end cond
) ;_ progn

(princ
"\nDas gewählte Objekt war keine Polyline oder Linie."
) ;_ end princ
) ;_ if
) ;_ if
) ;_ while

(setvar "OSMODE" OO)
(setvar "BLIPMODE" OB)
(setvar "HIGHLIGHT" OH)
(setvar "CMDECHO" OC)
(setq *ERROR* OLDERR)
(princ)
) ;_ end advert.lsp


(defun INSERTVERT ()
;_ *ensure that last entity is not a compound entity
;_ *by creating a simple temporary entity as the last entity in the
;_ *database this way we can be sure that the next two entities
;_ *will be the two new polylines created by breaking the current
;_ *polyline
(entmake (list '(0 . "POINT") (cons 10 (getvar "VSMIN"))))
(setq LASTENT (entlast))
;_ *breaks polyline at pickpoint
(command "_.break" POLYNAME PICKPOINT PICKPOINT)

;_ *(entnext lastent) will be the next polyline created after lastent
;_ *(entlast) will be the other polyline created
;_ *so now join the two and we have a polyline with the new vertex
;_ *inserted
(command "_.PEDIT"
(entnext LASTENT)
"_join"
(entlast)
""
"_exit"
) ;_ end command
;_ *get rid of temporary point
(entdel LASTENT)
(princ "\nBitte den neuen Kontrollpunkt positionieren: ")
(setq NEWVERT (osnap PICKPOINT "_int,_near"))
(command "_.STRETCH" "_C" NEWVERT NEWVERT "" PICKPOINT PAUSE) ;_ end command
;_ end command
;_ end COMMAND
) ;_ end defun

(princ)



------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



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

Beiträge: 3358
Registriert: 07.06.2001

W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365

erstellt am: 19. Mrz. 2004 07:46    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 Proxy 10 Unities + Antwort hilfreich

Servus


Macht bei mir das gleiche. Aber wenn hinaut ist das genial.

------------------
Same shit, different DAU. DAU Jones

  Bernd P.     

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 19. Mrz. 2004 09:32    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 Proxy 10 Unities + Antwort hilfreich

Hi,
habt's Ihr Bögen in Euren Plines?
Wenn nicht, habe ich 'ne funktionierende Routine zum Einfügen und löschen von Kontrollpunkten...

------------------
Ciao,
Marc

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 19. Mrz. 2004 13:44    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

Bögen sind eigentlich sehr sehr sehr selten da.

Kannst du bitte die Routine posten oder via PM schicken ?

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

vevi61
Mitglied
techn. Zeichner


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

Beiträge: 59
Registriert: 08.10.2003

erstellt am: 20. Mrz. 2004 09: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 Proxy 10 Unities + Antwort hilfreich

@marc.scherer

wäre sehr gespannt auf deine Problemlösung.

-------
Gruß Eva

Zitat:
Original erstellt von marc.scherer:
Hi,
habt's Ihr Bögen in Euren Plines?
Wenn nicht, habe ich 'ne funktionierende Routine zum Einfügen und löschen von Kontrollpunkten...


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

Helmut Schepers
Mitglied



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

Beiträge: 35
Registriert: 01.11.2001

AutoCad 2000, AutoCAd 2002, Windows XP-pro
Treppenbau-Software
http://www.cad-treppenplanung.de

erstellt am: 21. Mrz. 2004 10: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 Proxy 10 Unities + Antwort hilfreich

Hallo Proxy,

ich habe das Programm einmal abgeändert, sodaß es auch mit LWPOLYLINE's zurechtkommt. Mit den alten POLYLINE's funktionierte es vorher schon.

Ich hoffe es hilft dir weiter.

Gruß
Helmut

;;;Inserts a vertex in a polyline. If a line is selected, it offers to convert
;;;it to a polyline and then insert the vertex.
;;;Will report: At least one break point must be on polyline. if the end of
;;;a polyline is chosen
;;; Modifiziert und übersetzt für den ZVO
;;; am 30.05.2002 by Marc Scherer
;;;***************************************************************************

(defun C:ADVERT (/
OB OC OO OH
POLYLINE POLYNAME PICKPOINT POLYDXF ENTTYPE
LASTENT NEWVERT OLDERR ANSWER
)

(princ
"\nKontrollpunkt in Polylinie einfügen und neu positionieren..."
) ;_ end princ

(defun MC_ERR (MSG)
(princ
(strcat "\nFehler, Acad meldet: \"" MSG "\" als Ursache!")
) ;_ end princ
(setvar "OSMODE" OO)
(setvar "BLIPMODE" OB)
(setvar "HIGHLIGHT" OH)
(setvar "CMDECHO" OC)
(setq *ERROR* OLDERR
MC_ERR NIL
OLDERR NIL
) ;_ end setq
(princ)
) ;_ end defun
;_ *set all env variables,
;_ *osmode to avoid conflicts with the osnap
;_ *blipmode to make her pretty
(setq OO (getvar "OSMODE")
OB (getvar "BLIPMODE")
OH (getvar "HIGHLIGHT")
OC (getvar "CMDECHO")
OLDERR *ERROR*
*ERROR* MC_ERR
) ;_ end setq
;_ *vertext insert routine
(setvar "OSMODE" 0)
(setvar "BLIPMODE" 0)
(setvar "HIGHLIGHT" 0)
(setvar "CMDECHO" 0)

(while (setq POLYLINE
(entsel
"\nPolylinie anklicken wo ein Kontrollpunkt erzeugt werden soll: (R.klick=Ende)"
) ;_ end entsel
) ;_ end setq
(setq POLYNAME (car POLYLINE)
PICKPOINT (osnap (cadr POLYLINE) "_nea")
POLYDXF (entget POLYNAME)
ENTTYPE (cdr (assoc 0 POLYDXF))
) ;_ end setq

(if (wcmatch ENTTYPE "*POLYLINE")
(INSERTVERT)
(if (= ENTTYPE "LINE")
(progn
(initget "Ja Nein")
(setq ANSWER
(getkword
(strcat
"\n>>>>>>>>>>>>>>>>>> Linie gewählt! <<<<<<<<<<<<<<<<<<<<<<<<<<<<"
"\nSoll diese Linie zur Polylinie gemacht werden? [Ja/Nein] <Ja> "
) ;_ end strcat
) ;_ end getkword
) ;_ end setq
(if (not ANSWER)
(setq ANSWER "Ja")
) ;_ end if
(cond
((= ANSWER "Nein")
(princ "\nLinie nicht in Polylinie konvertiert!")
)
(t
;_ *turn current line into a polyline
(command "_.pedit" POLYNAME "_y" "")
(INSERTVERT)
)
) ;_ end cond
) ;_ progn

(princ
"\nDas gewählte Objekt war keine Polyline oder Linie."
) ;_ end princ
) ;_ if
) ;_ if
) ;_ while

(setvar "OSMODE" OO)
(setvar "BLIPMODE" OB)
(setvar "HIGHLIGHT" OH)
(setvar "CMDECHO" OC)
(setq *ERROR* OLDERR)
(princ)
) ;_ end advert.lsp


(defun INSERTVERT ()

 
;_ *ensure that last entity is not a compound entity
;_ *by creating a simple temporary entity as the last entity in the
;_ *database this way we can be sure that the next two entities
;_ *will be the two new polylines created by breaking the current
;_ *polyline
(entmake (list '(0 . "POINT") (cons 10 (getvar "VSMIN"))))
(setq LASTENT (entlast))
;_ *breaks polyline at pickpoint

(command "_.break" POLYNAME PICKPOINT PICKPOINT)

;_ *(entnext lastent) will be the next polyline created after lastent
;_ *(entlast) will be the other polyline created
;_ *so now join the two and we have a polyline with the new vertex
;_ *inserted

  (cond ((equal ENTTYPE "POLYLINE")
(command "_.PEDIT"(entnext LASTENT)"_join"(entlast)"""_exit") ;_ end command
          ;_ *get rid of temporary point
          (entdel LASTENT)
)
((equal ENTTYPE "LWPOLYLINE")
(command "_.PEDIT" POLYNAME "_join"(entlast)"""_exit") ;_ end command
          ;_ *get rid of temporary point
        (entdel LASTENT)
)
  );cond
 

 
(princ "\nBitte den neuen Kontrollpunkt positionieren: ")
(setq NEWVERT (osnap PICKPOINT "_int,_near"))
(command "_.STRETCH" "_C" NEWVERT NEWVERT "" PICKPOINT PAUSE) ;_ end command
;_ end command
;_ end COMMAND
) ;_ end defun

(princ)


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


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag öffnen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz