Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Hilfe zur Lisp-Ergänzung bzw. Veränderung gesucht!

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:  Hilfe zur Lisp-Ergänzung bzw. Veränderung gesucht! (682 mal gelesen)
die wölfin
Mitglied
Bauzeichnerin, FB Hochbau, Schwerpunkt Senioren- und Behindertengerechtes


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

Beiträge: 108
Registriert: 09.05.2003

Win 7 Professional (64 Bit),
AutoCAD Architecture 2015,
HP DesignJet T730,
Ricoh Aficio MP C3001

erstellt am: 16. Aug. 2010 13: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

Hallöle an alle,

ich würde gern einige Daten einer Zeichnung in Excel exportieren und habe dazu >hier< auch schon einen
sehr guten Ansatz gefunden. Allerdings würde ich gern darin noch etwas verändern bzw. ergänzen:

Und zwar hätte ich gern in der ersten Spalte den Winkel der Linie, in der zweiten die X-Koordinaten, in der
dritten die Y-Koordinaten, sowie in der vierten die Linienlänge.

Ich habe schon versucht irgendwie rauszufinden, wie ich das machen kann (und mir auch schon ein wenig
die auch in dem Beitrag gelinkte Seite autolisp-tutorial.mapcar.net angeguckt) bin dafür aber dann wohl
doch noch zu unwissend. 

Kann mir vielleicht einer von Euch irgendwie beim Umschreiben des dort gelisteten Befehls len2excel helfen???

Gnadenlos optimistisch schon mal besten Dank vorab! 

wölfin

------------------
Sollte ich eines Tages erfahren, dass ich schon morgen sterben muss, will ich mich nicht darüber ärgern, mir nicht genügend Zeit für die schönen Dinge im Leben genommen zu haben, sondern lächelnd in Erinnerungen schwelgen...

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. Aug. 2010 13: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 die wölfin 10 Unities + Antwort hilfreich

du brauchst nicht zu x-posten ... die entsprechenden Leute haben dein Erstposting sicherlich gelesen ... aber das ist nunmal nicht nur n 5-Zeiler 

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

die wölfin
Mitglied
Bauzeichnerin, FB Hochbau, Schwerpunkt Senioren- und Behindertengerechtes


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

Beiträge: 108
Registriert: 09.05.2003

Win 7 Professional (64 Bit),
AutoCAD Architecture 2015,
HP DesignJet T730,
Ricoh Aficio MP C3001

erstellt am: 16. Aug. 2010 13: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

Zitat:
Original erstellt von CADmium:
du brauchst nicht zu x-posten ... die entsprechenden Leute haben dein Erstposting sicherlich gelesen ... aber das ist nunmal nicht nur n 5-Zeiler  


Ich blinde Kuh habe erst nachher gemerkt, dass ich es eigentlich ins falsche Forum gebracht hab...
(Habe den Erstbeitrag aber auch schon mit einem entsprechendem Vermerk versehen!) 

------------------
Sollte ich eines Tages erfahren, dass ich schon morgen sterben muss, will ich mich nicht darüber ärgern, mir nicht genügend Zeit für die schönen Dinge im Leben genommen zu haben, sondern lächelnd in Erinnerungen schwelgen...

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: 17. Aug. 2010 09:59    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 die wölfin 10 Unities + Antwort hilfreich

Hallo wölfin,

CADmium hat recht, es ist sicher kein 5 Zeiler, wenn man es richtig machen wollte. Ich habe mir dennoch den Code aus dem von dir verlinkten Beitrag mal hergenommen, und die notwendigen Änderungen bzw. Ergänzungen vorgenommen.

Ich bin zwar überhaupt kein Freund davon, die Macht-mir-mal-Mentalität zu unterstützen, und habe es dennoch getan: In diesem Beispiel kann man recht gut sehen, wie aus dem statischen Code, der lediglich die 2 Spalten mit den festgelegten Werten füllen kann, ein dynamisch verwendbarer Code geworden ist. Ich habe auf eine zu starke Strukturierung in Subroutinen und Trennung von Befehls und Arbeitsfunktion verzichtet, damit der ungeübte Betrachter sich allein auf die relevanten Änderungen konzentrieren kann.

Ich habe den Befehl auch umbenannt, und die Auswertung der LWPolylinien entfernt. Sollte man letztere ebenfalls auswerten wollen (die einzelnen Segmente einer LWPolyline), dann würde der Code doch etwas komplexer werden.

Bei Fragen ...

Holger
FF der geänderte Code

Code:

(defun c:LinProps2excel (/
satz data_list n ent_data excel ExcelWorkbook ExcelSheet ExcelCells zeile toString
)
  (vl-load-com)
  ;;;Erst mal einen Auswahlsatz erstellen in dem Linien und Polylinien drinn sind:
  (setq satz (ssget '((0 . "LINE"))))
  ;;;Dann den Auswahlsatz durchlaufen und eine Liste erzeugen den Startpunkt und die Länge des Elements enthält
  ;;;Diese Liste, die für jedes Element erzeugt wird, packen wir gleich in eine Liste die das für alle Elemente sammelt
  (setq data_list (list;Spaltenüberschriften
    '("Winkel"
      "Start-X"
      "Start-Y"
      "Ende-X"
      "Ende-Y"
      "Länge"
      )
    )
n (1- (sslength satz))

  (repeat (sslength satz)
    (setq ent_data (entget (setq ent_name (ssname satz n)))
  data_list (cons
      (list; Beliebig erweiterbar um weitere Element-Infos (z.B. Layername, ...)
;|"Winkel"|; (* (/ 180.0 pi)(angle (cdr (assoc 10 ent_data)) (cdr (assoc 11 ent_data))))
;|"Start-X"|;(car(cdr (assoc 10 ent_data)))
;|"Start-Y"|;(cadr(cdr (assoc 10 ent_data)))
;|"Ende-X"|; (car(cdr (assoc 11 ent_data)))
;|"Ende-Y"|; (cadr(cdr (assoc 11 ent_data)))
;|"Länge"|;  (VLA-GET-LENGTH (VLAX-ENAME->VLA-OBJECT ent_name))
)
      data_list
      )

  n (1- n)
  )
    )
  ;;;jezt das Ganze in Richtung Excel - Excel muß geöffnet sein
  ;;; erst mal einrichten
  (if (setq excel (vlax-get-object "excel.application"))
    (progn
      (setq ExcelWorkbook (if excel
    (vlax-get-property
      excel
      "ActiveWorkbook"
      )
    )
    ExcelSheet  (if ExcelWorkbook
  (vlax-get-property
    ExcelWorkbook
    "ACTIVESHEET"
    )
  )
    ExcelCells  (if ExcelSheet
  (vlax-get-property
    ExcelSheet
    "CELLS"
    )
  )
    )
      )
    (alert "Excel nicht gefunden")
    )
  ;;; und dann rüberschieben
  (setq zeile 1)
  (defun toString (val TrennZeichen WinNumbers / ValueType)
    ;;; Wandelt Werte in Zeichenketten um
    ;;; Listen werden mit [TrennZeichen] getrennt
    ;;; Wenn WinNumbers == T -> dann wird in Zahlenwerten Punkt durch Komma ersetzt
    (setq ValueType (type val))
    (cond
      ((= ValueType 'LIST)
       (substr (apply 'strcat (mapcar '(lambda (lval)
(strcat TrennZeichen
(toString lval TrennZeichen WinNumbers)
)
)
      val
      )
      )
       2
       )
       )
      ((= ValueType 'REAL)
       (setq val (rtos val 2 (getvar "LUPREC")))
       (if WinNumbers
(vl-string-translate "." "," val)
val
)
       )
      ((= ValueType 'INT)
       (itoa val)
       )
      ((= ValueType 'STR)
       val
       )
      )
    )
  (mapcar '(lambda (data / spalte)
     (setq spalte 1)
     (mapcar '(lambda (val / txt)
(setq txt (toString val " " T))
(vlax-put-property
  ExcelCells
  "ITEM"
  zeile
  spalte
  (strcat "'" txt)
  )
(setq spalte (1+ spalte))
)
     data
     )
     (setq zeile (1+ zeile))
     )
  (reverse data_list)
  )
  ;;; ordentlich abmelden
  (vlax-release-object excel)
  (vlax-release-object ExcelWorkbook)
  (vlax-release-object ExcelSheet)
  (vlax-release-object ExcelCells)
;;; fertig
  (princ)
)


------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

   

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

die wölfin
Mitglied
Bauzeichnerin, FB Hochbau, Schwerpunkt Senioren- und Behindertengerechtes


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

Beiträge: 108
Registriert: 09.05.2003

Win 7 Professional (64 Bit),
AutoCAD Architecture 2015,
HP DesignJet T730,
Ricoh Aficio MP C3001

erstellt am: 18. Aug. 2010 07:49    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

Guten Morgen Holger!
Gaaaaaaaanz dickes Dankeschön!!! *umarm* Oh man, ich wünschte ich würde das auch alleine hinkriegen! 

Ich schreibe mir zwar auch selber Scripts, aber meist über die Command-Funktion und mit nur wenigen einfachen
setq's, if's, getvar's und kal-Berechnungen. *schäm*

Aber ich gebe die Hoffnung nicht auf, von dem, was Ihr so alles Scripten könnt, mir auch irgendwann zumindest
ein kleines bisschen anzueigenen! 

wölfin

------------------
Sollte ich eines Tages erfahren, dass ich schon morgen sterben muss, will ich mich nicht darüber ärgern, mir nicht genügend Zeit für die schönen Dinge im Leben genommen zu haben, sondern lächelnd in Erinnerungen schwelgen...

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: 18. Aug. 2010 07: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 Nur für die wölfin 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von die wölfin:
... Aber ich gebe die Hoffnung nicht auf, von dem, was Ihr so alles Scripten könnt, mir auch irgendwann zumindest
ein kleines bisschen anzueigenen!   ...

Dann schau dir die beiden Lisp-Codes nebeneinander an. Du weißt was das Basis-Programm gemacht hat und du weißt, was das Programm jetzt macht. Allein aus der Analyse der Unterschiede, solltest du einiges lernen können. Und wenn du manches im Vergleich nicht kapierst, dann kannst ud ja hier im Forum deine Fragen posten.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

die wölfin
Mitglied
Bauzeichnerin, FB Hochbau, Schwerpunkt Senioren- und Behindertengerechtes


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

Beiträge: 108
Registriert: 09.05.2003

Win 7 Professional (64 Bit),
AutoCAD Architecture 2015,
HP DesignJet T730,
Ricoh Aficio MP C3001

erstellt am: 18. Aug. 2010 08: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

Zitat:
Original erstellt von Brischke:
Dann schau dir die beiden Lisp-Codes nebeneinander an. Du weißt was das Basis-Programm gemacht hat und du weißt, was das Programm jetzt macht. Allein aus der Analyse der Unterschiede, solltest du einiges lernen können. Und wenn du manches im Vergleich nicht kapierst, dann kannst ud ja hier im Forum deine Fragen posten.

Grüße Holger


Keine Sorge, da sorgt meine Tüftel-Neugier schon für; das werde ich ganz bestimmt tun!!!
(Sowohl das durchleuchten, als sicher auch das nichts kapieren und deshalb was posten) 
Danke noch mal! 

------------------
Sollte ich eines Tages erfahren, dass ich schon morgen sterben muss, will ich mich nicht darüber ärgern, mir nicht genügend Zeit für die schönen Dinge im Leben genommen zu haben, sondern lächelnd in Erinnerungen schwelgen...

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