Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Stützpunkte einer Polylinie in Zwischenablage kopieren und daraus neue Polylinie erz

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:  Stützpunkte einer Polylinie in Zwischenablage kopieren und daraus neue Polylinie erz (1164 mal gelesen)
C. Klueber
Mitglied
Wasserbauingenieur

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

Beiträge: 9
Registriert: 05.08.2016

erstellt am: 10. Mrz. 2017 11:38    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 zusammen,

nach langer Suche der verzweifelte Versuch hier zum Ziel zu kommen (leider bin ich selbst nicht der LISP-Programmierung mächtig  ).

Folgende Aufgabe ist zu bewältigen:

1.Koordinaten der Eckpunkte einer markierten Polylinie (ohne Berücksichtigung von Kurven)
  in die Zwischenablage schreiben
  X-Wert Tab Y-Wert Zeilenumbruch    {1. Punkt}
  X-Wert Tab Y-Wert Zeilenumbruch    {2. Punkt}

2.Aus Koordinaten (Form s.o.) in der Zwischenablage eine Polylinie im aktuellen Layer
  erstellen.

Hierzu habe ich bereits separate LISP´s für Teilaufgaben gefunden, bin aber nicht in der Lage diese zusammen zu führen.
Evtl. wurde ein ähnliches Problem schon gelöst oder jemand hat eine Idee. Wäre mega.

Vielen Dank für eure Unterstützung. 

Viele Grüße,

CK

Hier mal die gefundenen lisp-Routinen:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; www.cad-huebner.de erstellt von Udo Hübner                                    ;;
;; Achtung folgende Verbesserungen müssen geprüft bzw. eingearbeitet werden      ;;
;; Prüfung auf locked Layers, und evt. Behandlung von Gruppen wie text + wipeout  ;;
;; 15.09.98 ansonsten von 1.0 auf 1.1 nur windows umlaute eingesetzt.            ;;
;; Update 01.03.2004 - nur Kommentare eingepflegt                                ;;
;; Die Textbeschriftung erfolgt rechts oberhalb vom Punkt, der Versatz beträgt    ;;
;; 75% der Texthöhe                                                              ;;
;; Es ist keine Error-Routine eingebaut.                                          ;;
;; das Abschalten des permanenten Objektfangs zu Laufzeit wäre sinnvoll,          ;;
;; der neugesetzte Text nicht auf ein naheliegendes Objekt einrastet              ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(DEFUN C:Z2TXT ( / ANZAW1 ANZH AW1 ENTINSERT EPKT I TEMP Z)
  (PROMPT
    (STRCAT "\nZ2TXT.lsp - Objekte mit Höhentext/Z-Koordinate) versehen - V1.2  1999-2004"
    "\n(c) Ing.- Büro Hübner, info@CAD-Huebner.de"
    "\nTEXTSIZE = " (RTOS (GETVAR "TEXTSIZE"))
    ) ;_ Ende von STRCAT
  ) ;_ Ende von PROMPT
  (SETQ AW1    (SSGET) ; Objekte wählen
Anzaw1 (SSLENGTH AW1) ; Anzahl der Objekte in AW1
AnzH  0 ; Anzahl der geänderten Elemente
I      0 ; Zähler
  ) ;_ Ende von SETQ
  (INITGET 6)

  (Prompt "\nAugenblick, ich ich prüfe Objekte...")
  (while (> Anzaw1 0)
    (setq temp     (ssname AW1 (setq AnzAw1 (1- AnzAW1)))
  entinsert (entget temp)
  epkt     (cdr (assoc 10 entinsert))
  z     (RTOS (NTH 2 epkt) 2 2)


    ) ;_ Ende von setq
    (PRINC ".")
    (COMMAND "_MTEXT"
    (LIST (+ (* 0.75 (GETVAR "TEXTSIZE")) (NTH 0 epkt))
  (+ (* 0.75 (GETVAR "TEXTSIZE")) (NTH 1 epkt))
  0.0
    ) ;_ Ende von LIST
    "_justif"
    "_ML"  ; Positionierung Mitte zentriert
    "_WID"
    10.0 ; konstante Textfeldbreite - ist einfacher zu picken
    z
    ""
    ) ;_ Ende von COMMAND

  ) ; ende while
  (princ " Objekte beschriftet. ")
  (princ "Z2TXT beendet.")
  (PRIN1)
) ; ende defun
;--------------------------------------------------------------------
(PROMPT "\nZ2TXT.lsp geladen. Start mit Z2TXT")
(PRIN1)


-----------------------------------------------------------------------------------------------------------
ACAD LISP - Versuch, LISP-Routinen zu finden, mit denen eine Polylinie aus Wertepaaren in der Zwischenablage erstellt wird bzw. Wertepaare einer Polylinie in die Zwischenablage eingefügt werden 

Beispiel für Export Polylinie in Textdatei
-----------------------------------------------------------------------------------------------------------

(defun c line_to_file (/ theobj thelist n xval yval fname fn)
(vl-load-com)
(setq theobj (car (entsel "\nPolylinie auswählen: ")))
(setq theobj (vlax-ename->vla-object theobj))
(if (= (vlax-get-property theobj 'ObjectName) "AcDbPolyline")
(progn
(setq thelist (vlax-get-property theobj 'coordinates))
(setq thelist (vlax-safearray->list (variant-value thelist)))
(setq n 0)
(setq fname "D:/pline_to_file.txt")
(setq fn (open fname "w"))
(repeat (/ (length thelist) 2)
(setq xval (rtos (nth n thelist)))
(setq n (1+ n))
(setq yval (rtos (nth n thelist)))
(write-line (strcat xval "," yval) fn)
(setq n (1+ n))
)
(close fn)
(Princ
"\nDatei \"Punktkoordinaten.txt\" auf dem Laufwerk D abgespeichert."
)
)
(alert "Das ist keine Polylinie !")
)
(princ)
)
(princ)

----------------------------------------------------------------------------------
Beispiel für Export Polylinie in Textdateidurch Anhängen der Daten
----------------------------------------------------------------------------------

(defun c line_to_file (/ wa thePL antw)
  (initget "Anhängen Neu")
  (setq antw (getkword "\nDaten an vorhandene Datei [Anhängen/Neu]<N>: ")
wa (if (= antw "Anhängen")
    "a"
    "w")
)
  (setq thePL (car (entsel "\nPolylinie auswählen: "))
thePL (if (and thePL
      (= (vlax-get-property (setq thePL (vlax-ename->vla-object thePL)) 'ObjectName) "AcDbPolyline"))
thePL
)
)
  (while thePL
    (pline_to_file wa thePL)
    (setq wa "a")
    (setq thePL (car (entsel "\nPolylinie auswählen: "))
  thePL (if (and thePL
      (= (vlax-get-property (setq thePL (vlax-ename->vla-object thePL)) 'ObjectName) "AcDbPolyline"))
thePL
)
  )
    )
  (princ)
  )
(defun pline_to_file (sa theobj / thelist fname fn)
  (setq thelist (vlax-get-property theobj 'coordinates)
thelist (vlax-safearray->list (variant-value thelist))
fname "C:/pline_to_file.txt"
fn (open fname sa)
)
  (write-line "NEWLINE" fn)
  (write-line (substr (apply 'strcat
    (mapcar '(lambda (E)
(strcat","(rtos E))
)
    thelist)
    )
      2)
    fn)
  (close fn)
  (Princ
    "\nDatei \"Punktkoordinaten.txt\" auf dem Laufwerk C abgespeichert."
    )
  )
(vl-load-com)


-----------------------------------------------------------------------------------------------------------
Lisp to draw polyline from xls, csv or txt file?

4176 Views, 7 Replies 10-15-2008 06:05 AM

Greetings!
I did a search for this, but didn't find anything that resembled what I needed.

I am looking for a lisp routine that would draw a polyline using the data from a xls, csv or txt file. Here is a sample clip from the csv or txt file:

1955373.01,113249.903
1955397.07,112794.949
1955349.88,112381.173
1955164.02,112070.843
1954880.94,111755.906
1954556.00,111473.025
1954197.84,111229.825
1953858.95,111054.971

where the first line is the starting point - the string of numbers before the comma represents "x" and the string after the comma represents "y", then the second line is the next point on the polyline, etc.

I know this is possible and should be a simple request. Problem is I am not a lsp writer.

Any of you GURU's what to give it a try?

Thanks,

Bradley Edited by: papabradley on Oct 15, 2008 8:05 AM
Re: Lisp to draw polyline from xls, csv or txt file?
10-15-2008 08:47 AM in reply to: papabradley
papabradley,
Here's a simple lisp to import your x,y values from a .csv file format....

-----------------------------------------------------------------------------------------------------------

;; poly_from_csv.lsp
(defun C:GO ( / CSV_name ifil Field x i c px py px_lst py_lst p_lst p1 p2 )
(command "_limits" "off")
;; Browse box to pick the .csv file
(setq CSV_name "")
(setq CSV_name (getfiled "Select Point List .csv file" "" "csv" 2))
;; Read-in the values to X & Y lists
(setq ifil (open CSV_name "r")); open the file
(while (setq rd-line (read-line ifil))
(setq x (strlen rd-line))
(setq i 1 Field 1 Px "" Py "")
(repeat x
(setq c (substr rd-line i 1)); read a character
(if (or (= c ",")(= c " "))
(progn
(setq Field (+ Field 1))
(setq c "")
); end progn
); end if
(if (and (/= c "")(= Field 1))
(setq Px (strcat Px c)); stack first point
); end if
(if (and (/= c "")(= Field 2))
(setq Py (strcat Py c)); stack second point
); end if
(setq i (+ i 1))
); end repeat
(if Px
(progn
(setq Px_lst (cons Px Px_lst))
(setq Py_lst (cons Py Py_lst))
); progn
); if
); while
(close ifil)
;; Draw the Polyline
(if (and (> (length Px_lst) 1)(> (length Py_lst) 1))
(progn
(setq Px_lst (reverse Px_lst))
(setq Py_lst (reverse Py_lst))
(setq C 0)
(repeat (length Px_lst)
(setq Px (atof (nth C Px_lst)))
(setq Py (atof (nth C Py_lst)))
(setq P_lst (cons (list Px Py 0.0) P_lst))
(setq C (+ C 1))
); repeat
(setq P_lst (reverse P_lst))
(setq P1 (nth 0 P_lst)); start point
(setvar "lastpoint" P1)
(setq P_lst (cdr P_lst)); strip 1st point
(setq C 1)
(repeat (length P_lst)
(setq P1 (getvar "lastpoint"))
(setq P2 (nth C P_lst))
(if (and (/= P1 nil)(/= P2 nil))
(command "_pline" P1 "_W" "0.50" "0.50" P2 ""); width as desired
); if
(setq C (+ C 1))
); repeat
); end progn
); end if
;; Exit
(princ)
); function GO
(princ); silent load


-----------------------------------------------------------------------------------------------------------
Copy to the clipboard via lisp

« Reply #2 on: March 06, 2008, 11:16:30 am »
Hi
An example

-----------------------------------------------------------------------------------------------------------

(defun GetClipText(/ html result)
  (setq html (vlax-create-object "htmlfile")
result (vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'GetData "Text")
  )
  (vlax-release-object html)
  result
)

----------------------------------------------------------------------------------
« Reply #4 on: March 07, 2008, 10:19:28 am »
----------------------------------------------------------------------------------

;;copy str to the clipboard

(defun setClipText(str / html result)
(if (= 'STR (type str))
  (progn
  (setq html  (vlax-create-object "htmlfile")
        result (vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'setData "Text" str)
  )
  (vlax-release-object html)
  str
  )
);end if
)

-----------------------------------------------------------------------------------------------------------
« Reply #7 on: March 07, 2008, 01:27:14 pm »
Thanks to Patrick_35 and XShrimp, this has gone into my library --

-----------------------------------------------------------------------------------------------------------

(defun _SetClipBoardText ( text / htmlfile result )

    ;;  Caller's sole responsibility is to pass a
    ;;  text string. Anything else? Pie in face.

    ;;  Attribution: Reformatted version of
    ;;  post by XShrimp at theswamp.org.
    ;;
    ;;  See http://tinyurl.com/2ngf4r.

    (setq result
        (vlax-invoke
            (vlax-get
                (vlax-get
                    (setq htmlfile (vlax-create-object "htmlfile"))
                  'ParentWindow
                )
              'ClipBoardData
            )
          'SetData
            "Text"
            text
        )
    )

    (vlax-release-object htmlfile)

    text

)

----------------------------------------------------------------------------------
and ...
----------------------------------------------------------------------------------

(defun _GetClipBoardText( / htmlfile result )

    ;;  Attribution: Reformatted version of
    ;;  post by Patrick_35 at theswamp.org.
    ;;
    ;;  See http://tinyurl.com/2ngf4r.

    (setq result
        (vlax-invoke
            (vlax-get
                (vlax-get
                    (setq htmlfile (vlax-create-object "htmlfile"))
                  'ParentWindow
                )
              'ClipBoardData
            )
          'GetData
            "Text"
        )
    )

    (vlax-release-object htmlfile)

    result

)

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: 10. Mrz. 2017 12: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 C. Klueber 10 Unities + Antwort hilfreich

Schön das es bereits eine eigene Idee zur Aufgabe gibt, aber sei doch bitte so gut auch deine eigentliche Aufgabe zu benennen,
deine dein Lösungsansatz muß ja nicht zwingend der Beste sein  

Du schreibst und zeigst Codebezüglich der Verwendung der "Zwischenablage", zugleich redest du von
einem bestimmten Aufbau/Syntax und hast auch Code zum schreiben eine Textdatei gepostet.

Sehr verwirrend und mit dem Sammelsurium möchte sich wohl kaum jemand befassen.

Also:

Du hast mind. 1x AutoCAD am laufen, darin mind. eine Datei geöffnet und mind. eine Polylinie darin,
zum Beispiel auf Layer"A".
Nun klickst du diese eine Polylinie an (nicht auch mehrere?).

WAS MACHST DU DANN?
In der gleichen Acad-Instanz oder einer anderen?
In der gleichen Datei oder einer anderen?

Deine Beschreibung zum Syntax (wo auch immer dieser Verwendung finden soll), zeigt keinen  Z-Wert!
Also soll der alte Z-Wert in der Zieldatei durch den aktuellen Z-Wert des BKS ersetzt werden? oder Z=WKS=0?

-

Sorry, die Anfrage zusammen mit dem angestrebte Lösungsweg ist mir etwas zu viele "mach mir mal",
dafür ist es zu unübersichtlich, mir zmindest. (soviel Code darf man auch gerne in einer *.TXT anhängen / das nächste Mal)
 


------------------
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: 10. Mrz. 2017 13: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 C. Klueber 10 Unities + Antwort hilfreich


KOORDS2CLIPBOARD.zip

 
mal was zum Testen ... kann aber sein, das das so bei vielen Stützpunkten nicht geht ...

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

cadwomen
Ehrenmitglied V.I.P. h.c.
Mädchen für fast alles


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

Beiträge: 2966
Registriert: 26.08.2002

ACAD R11 - 2018.1.2
(Plant3D)
AVIS
ACAD LT 2013- 2020
ZWCAD 2015 Versuch "nun ja"
[s]History P3D 2012/(13) SP und Hotfix([/s]<P>
Windows 10 / 64 Bit
Xeon CPU 3.5GHz
16GB Ram
NVIDIA Quadro P2000
3x Dell TV100 88P Monitore

erstellt am: 10. Mrz. 2017 13: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 C. Klueber 10 Unities + Antwort hilfreich

Glaskugelmode on

ich denke er will eigentlich sowas

http://www.sitetopo.com/

Glaskugelmode off

sind ja nur ein paar Stunden noch bis zum Feierabend

------------------
Also ich finde Unities gut ... und andere sicher auch
------------------------------------------------
cadwomen™
Plant ist wie Öl suchen, je tiefer man bohrt desto mehr kommt ans Tageslicht

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

C. Klueber
Mitglied
Wasserbauingenieur

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

Beiträge: 9
Registriert: 05.08.2016

erstellt am: 20. Mrz. 2017 09: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

Hallo cadffm,

entschuldige, wenn es nach zu sehr "mach mir mal" klingt. Das war nicht meine Absicht, ich kann aber den Eindruck nachvollziehen.

Da ich die Anfrage von einem Kollegen bekommen habe, war es nicht so einfach diese möglichst verständlich wiederzugeben. Mein Fehler.

Und zu dem Hinweis bzgl. Textdatei: Ich wollte eine angehängte Datei vermeiden, da hier sicher viele Bedenken bzgl. Runterladen etc. haben. Werde es aber für nächstes Mal in Betracht ziehen.

Danke auf jeden Fall für die Hinweise. Ich übe noch 

Gruß,

C. Klueber

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

C. Klueber
Mitglied
Wasserbauingenieur

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

Beiträge: 9
Registriert: 05.08.2016

erstellt am: 20. Mrz. 2017 10:30    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,

trotz der bemängelten Aufgabenstellung schon ein wichtiger Schritt in die richtige Richtung. Vielen lieben Dank.

Also die Stützpunkte der PL sind schonmal im gewünschten Format im Zwischenspeicher.
Jetzt muss man nur noch diese Daten nutzen können, um eine Polylinie zu erzeugen. Ich kenne das von "mehrere Punkte" erzeugen. Da kann man Koordinaten im AutoCAD-Format (x,y,z) im Zwischenspeicher nutzen, um mehrere Punkte zu erzeugen. Gibt es sowas auch für eine Polylinie?
Also dass ich die Daten, welche ich jetzt mit Hilfe der .vlx-Datei in meinen Zwischenspeicher kopiert habe bzw. Stützpunktkoordinaten welche ich aus einer Exceltabelle oder einer .txt-Datei in den Zwischenspeicher kopiere, nutze, um eine Polylinie zu erzeugen.

Ich hoffe es verständlich genug ausgedrückt zu haben. 

Über weitere Unterstützung freue ich mich sehr.

Danke schonmal. 

Grüße,

C. Klueber

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

C. Klueber
Mitglied
Wasserbauingenieur

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

Beiträge: 9
Registriert: 05.08.2016

erstellt am: 20. Mrz. 2017 10: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

Hallo cadwomen,

ich denke, dass deine Glaskugel hier nicht ganz korrekt gearbeitet hat  .

Trotzdem vielen lieben Dank für deine Antwort.

Grüße,

C. Klueber

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: 20. Mrz. 2017 12: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 C. Klueber 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von C. Klueber:
Hallo CADmium,

trotz der bemängelten Aufgabenstellung schon ein wichtiger Schritt in die richtige Richtung. Vielen lieben Dank.

Also die Stützpunkte der PL sind schonmal im gewünschten Format im Zwischenspeicher.
Jetzt muss man nur noch diese Daten nutzen können, um eine Polylinie zu erzeugen. Ich kenne das von "mehrere Punkte" erzeugen. Da kann man Koordinaten im AutoCAD-Format (x,y,z) im Zwischenspeicher nutzen, um mehrere Punkte zu erzeugen. Gibt es sowas auch für eine Polylinie?
Also dass ich die Daten, welche ich jetzt mit Hilfe der .vlx-Datei in meinen Zwischenspeicher kopiert habe bzw. Stützpunktkoordinaten welche ich aus einer Exceltabelle oder einer .txt-Datei in den Zwischenspeicher kopiere, nutze, um eine Polylinie zu erzeugen.

Ich hoffe es verständlich genug ausgedrückt zu haben.  

Über weitere Unterstützung freue ich mich sehr.

Danke schonmal.  

Grüße,

C. Klueber



Was hast du denn im Endeffekt vor??? Komm doch nicht immer scheibchenweise mit den Infos!!

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

C. Klueber
Mitglied
Wasserbauingenieur

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

Beiträge: 9
Registriert: 05.08.2016

erstellt am: 27. Apr. 2017 15:01    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,

im Endeffekt den folgenden Vorgang automatisieren:

1.Koordinaten der Eckpunkte einer markierten Polylinie (ohne Berücksichtigung von Kurven)
  in die Zwischenablage schreiben
  X-Wert Tab Y-Wert Zeilenumbruch    {1. Punkt}
  X-Wert Tab Y-Wert Zeilenumbruch    {2. Punkt}

2.Aus Koordinaten (Form s.o.) in der Zwischenablage eine Polylinie im aktuellen Layer
  erstellen.

Verständlich?

Danke,

Gruß,

Christoph

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: 27. Apr. 2017 15: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 C. Klueber 10 Unities + Antwort hilfreich

Hallo Christoph,
was sind bei Die Eckpunkte? Sind das alle Stützpunkte? Wenn ja, dann brauchst Du nur den Wert für die Ausrundung por Stützpunkt auf Null setzen. Ist aber nur so ein Gedanke, den kompletten Beitrag habe ich nicht gelesen, vielleicht liege ich ja auch voll daneben, mir erscheint Dein Weg aber umständlich.

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

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

Liniensignaturen Youtube

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: 27. Apr. 2017 20: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 C. Klueber 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von C. Klueber:
Hallo CADmium,

im Endeffekt den folgenden Vorgang automatisieren:

1.Koordinaten der Eckpunkte einer markierten Polylinie (ohne Berücksichtigung von Kurven)
  in die Zwischenablage schreiben
  X-Wert Tab Y-Wert Zeilenumbruch    {1. Punkt}
  X-Wert Tab Y-Wert Zeilenumbruch    {2. Punkt}

2.Aus Koordinaten (Form s.o.) in der Zwischenablage eine Polylinie im aktuellen Layer
  erstellen.

Verständlich?

Danke,

Gruß,

Christoph


und wozu brauchst du da die Zwischenablage ???


teste einfach mal

(if(and(setq PL(entget(car(entsel "\nPolylinie wählen:"))))
      (=(strcase(cdr(assoc 0 PL)))"LWPOLYLINE")
      (setq PL(mapcar
                '(lambda(X)(if(=(car X)42)(cons 42 0.0) X))
                  (vl-remove-if '(lambda(X)(member (car X)'(-1 330 5 8)))PL)
              )
      )
    )
  (entmake PL)
)

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

C. Klueber
Mitglied
Wasserbauingenieur

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

Beiträge: 9
Registriert: 05.08.2016

erstellt am: 09. Mai. 2017 15: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

Hallo CADmium,

aaaalso...den ersten Schritt, also die Koordinaten der Stützpunkte (Eckpunkte war wohl mißverständlich) in gewünschtem Format hatten wir durch deine erste .vlx bereits gelöst.

Man muss das getrennt sehen. Einmal die Thematik des Koordinaten-in-Zwischenablage-kopierens und einmal die Thematik des Aus-Koordinaten-in-Zwischenablage-Polylinie-erstellens.

Von daher ist die .lsp aus deinem letzten Beitrag hier nicht das Ziel.

Am liebsten würde ich mal eine kurze Besprechung hierzu organisieren. Das Schreiben hier scheint komplizierter als ich dachte.

Aber auf jedenfall besten Dank für Eure Bemühungen.

Grüße,

C. Klueber

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: 09. Mai. 2017 15: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 C. Klueber 10 Unities + Antwort hilfreich

Es wäre nicht so schwierig, wenn der eine Gesprächspartner auf die Anmerkungen und Fragen des anderen eingehen würde.

Zitat:
Original erstellt von cadffm:
Schön das es bereits eine eigene Idee zur Aufgabe gibt, aber sei doch bitte so gut auch deine eigentliche Aufgabe zu benennen,
deine dein Lösungsansatz muß ja nicht zwingend der Beste sein    

...

Also:

Du hast mind. 1x AutoCAD am laufen, darin mind. eine Datei geöffnet und mind. eine Polylinie darin,
zum Beispiel auf Layer"A".
Nun klickst du diese eine Polylinie an (nicht auch mehrere?).

WAS MACHST DU DANN?
In der gleichen Acad-Instanz oder einer anderen?
In der gleichen Datei oder einer anderen?

...



Zitat:
Original erstellt von CADmium:
Was hast du denn im Endeffekt vor??? Komm doch nicht immer scheibchenweise mit den Infos!!

Zitat:
Original erstellt von CADmium:
und wozu brauchst du da die Zwischenablage ???


Möchte mich aber weiter nicht einmischen, wollte nur das Hauptproblem erneut aufzeigen.
Du Hast mit keinem Wort das Vorhaben aus Anwendersicht beschrieben und dadurch waren und sind
noch immer Fragen offen, welche alleine durch so eine Beschreibung ggf. beantwortet wären.

Zumindest wäre es förderlich für die Lust der Helfer zu helfen, wenn der Ratsuchende auf die Anmerkungen und Fragen der Helfer eingeht.

 

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

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