Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Hilfe beim Rauschschreiben !!!

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 beim Rauschschreiben !!! (794 mal gelesen)
FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 30. Jul. 2008 16:18    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 Leute,
hätte mal eine Frage ich weiß, ich weiß das, dass eine Anfänger frage ist. Und zwar arbeite ich an einem Lisp Programm was mit bestimmte Informationen in eine Textdatei speichert. Jetzt bin ich aber Anfänger und kenn gerade mal die Grundlagen des Lisp- Programmierens. So, ich kann z.b mit den Entities überhaupt nicht anfangen. Weiß nur das ich mit dem befehl ssget einen Auswahlsatz bilden kann. Jetzt muss ich aber einige Informationen aus dem Auswahlsatz in variablen kriegen weil ich mit den Rechnen muss.
Ich bräuchte  die Koordinaten der einzelnen punkte.
Z.B Linien Pk1 = 0.0 Pk2 = 0.05
Z.B Polyline Pk1 = 0.0 Pk2 = 0.05 Pk3 = 0.1
..
(Die PKs sollen variablen sein)

Könnte mir jemand dabei helfen oder mir eine Seite nennen wo ich das nach lesen kann will mich ja auch ein bisschen weiterbilden ^^. Hab nämlich nicht auf der seite gefunden wusste nicht was ich eingeben soll.

Danke im voraus.

Mit freundlichen Grüßen

Fire Phoenix

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 30. Jul. 2008 16:28    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 FiRePhoeniX 10 Unities + Antwort hilfreich

Hi,
immer wieder Mapcar's Seiten...

Da kannst Du mit anfangen.

Ansonsten gibt es das ganze ja jetzt auch als Buch.

Und nun kurz zu Deinen Fragen:
1. Ein Auswahlsatz ist eine Gruppe von Elementen.
2. mit der Funktion SSNAME bekommst Du den Namen eines Elements des AWS.
3. mit der Funktion ENTGET bekommst Du alle Eigenschaften des Elements.
4. Mit ASSOC filterst Du entsprechende Eigenschaften aus.

5. Press F1 to continue
Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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: 30. Jul. 2008 16:28    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 FiRePhoeniX 10 Unities + Antwort hilfreich

mach einfach mal (setq A(entget(Car(Entsel)))) und wähl eine Linie an, dann wirst du sehen , das Anfang und enpunkt in den GC 10 und 11 gespeichert sind.

mit
(cdr(assoc 10 A))
kannst du somit den Linienanfangspunkt ermitteln und mit
(cdr(assoc 11 A))
den Linienendpunkt


bei LW-Polylinien das gleiche, hier sind die Koordinaten in den GC 10 gespeichert, da hilft dann

(vl-remove-if 'null (mapcar'(lambda(X)(if(=(car X)10)(cdr X))) (Entget(Car(Entsel "\nPL wählen:" )))))

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 30. Jul. 2008 16: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 FiRePhoeniX 10 Unities + Antwort hilfreich

Hallo Phoenix,
was immer wieder empfehlenswert ist:

[URL=http://www.autolisp-tutorial.mapcar.net/][/URL]

- schau dir den Befehl "entget" an
- suche nach "Gruppencodes" und lies das
- verwende "assoc" und "cdr"

Das mal als schnelle Tips, ich mach nämlich jetzt Feierabend bevor noch jemand kommt und will was.
Morgen gehts weiter.

Gruß
Andreas

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 31. Jul. 2008 14: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

Danke euch allen.
Der tip von CADmium geht gut zumindesetes das mit den linien. Das mit der polyline hab
ich noch nicht probiert. So jetzt komm ich zu nächsten problem die variablen sollen in
der textdatei in einer reiche angezeigt werden.

name 1 1 7 (pk1=Linie) (pk2=Linie)

die ersten 4 zeilen sind auch variablen.
kann mir einer helfen und mir sagen wie ich eine varaible in
eine zeile in einer textdatei speichern kann ?
Oder sagen wo ich das nach lesen kann. Die seite die ihr mir genannt hab, find ich nicht so gut.
Gibt es vielleicht noch anderen deutschsprachige Autolisp seiten?
Danke schon mal.

mfg

Firephoenix   

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 31. Jul. 2008 15:02    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 FiRePhoeniX 10 Unities + Antwort hilfreich

... das ist doch die Seite ...
im Kochbuch hast du das ganze überarbeitet als Buch

... lade dir über "Button-Icon" oben links die zip-Datei von mapcare herunter...

dort sind die Seiten/Themen mit eindeutigeren Schlagwörtern bezeichnet...

google mal AutoLisp-Handbuch oder AutoCAD 2000 Visual Lisp Tutorial oder AlispRef oder The Visual LISP Developers Bible ist zwar meistens englich aber doch alles anschaulich erklärt
mfg heiko

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 01. Aug. 2008 09:51    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

Hi,
Leute schlag mich bitte nicht wenn ich noch was frage ^^.
sorry das ich euch noch mal stören muss. Hab den ratschlag befolgt und hab mir das handbuch besorgt.
Weiß jetzt auch wie ich eine variable in meine datei kriege. Mit dem Befehl write-line.
Hab aber wieder ein problem. Undzwar muss ich für jede varable eine befehl machen.
Die texte in der textdatei ordnet er mir dan untereinander.
Beispiel:
1
3
4
Ich brauch die aner so.
1 3 4                             

Ich weiß das ich mit dem befehl write-char einen zeilenunbruch erzeugen kann.
Kann ich aber euch eine leerzeichen damit erzeugen??
Danke Leute ohne euch wer ich so weit gekommen. Hofffe ich komm noch weiter^^

mfg

FirePhoeniX

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: 01. Aug. 2008 09:57    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 FiRePhoeniX 10 Unities + Antwort hilfreich

nimm strcat um einen String zusammenzupappen :
(write-line(strcat "1" " " "2" " " "3"))

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 01. Aug. 2008 11:08    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

Danke für die Antwort CADmium.
Super idee aber hab wieder ein problem^^.
So, wollte meine variablen in eine spring zusammen fassen. Hab aber ein Problem.
Eine der variablen ist eine Kordinate.
Ich weiß zwar wie ich eine ganzzal in einen spring undwandeln kann.
Aber nicht wie ich das mit einer kordinate mache,
Am besten wer wenn ich den x,y,z wert auch ich eine eingene variable speicher kann.
Das, dass geh das weiß ich es gibt glaube einen befehr der mir die ersten 5-6 zahlen in eine
variable abspeicher. Hab aber vergessen wie der heißt und weiß auch nicht ob das bei kordinaten hilft.
Ich weiß das ich ein anfänger bin !!!!!!! Und das ich euch mit diesen sachen nerve ich komme aber nicht
weiter ^^ Als seit gnädich und helft eine armen anfänger ^^

mfg

FirephoeniX

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: 01. Aug. 2008 11: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 Nur für FiRePhoeniX 10 Unities + Antwort hilfreich

(setq K '(12 43 64))
(strcat (rtos(car K)2 2)" "(rtos(cadr K)2 2)" "(rtos(caddr K)2 2))

oder wenns reicht
(vl-princ-to-string K)

(apply 'strcat (mapcar '(lambda(X)(strcat " "(vl-princ-to-string X)))K))
gefällt mir auch , besonders bei längeren Listen
------------------
      - 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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 01. Aug. 2008 12:37    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

Danke noch mal.
Das ist erlich die letzte frage .
Wie kann ich mit kordinate rechnen???????
Als hab zwei kordinaten .
Will die zweite von der ertsen aziehen geht das ??

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 01. Aug. 2008 12: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 FiRePhoeniX 10 Unities + Antwort hilfreich

Ich nehme mal an, Du meinst mit Koordinaten Punkte, dann so:
(mapcar '- p1 p2)
wenn es Zahlen sind dann so:
(- zahl1 zahl2)

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 01. Aug. 2008 14:53    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

Hi ich bins noch mal^^
Ich glaube ich ernte schon die erste buh rufe.
Undzwar hab ich wieder ein Problem. Das mit den linien hab ich entlich geschafft.
Jetzt komm schon das nächte problem.
Die polylines sind dran.
Hab den code von CADmium genommen. Und es funktiort super.

(vl-remove-if 'null (mapcar'(lambda(X)
(if(=(car X)10)(cdr X))) (Entget(Car(Entsel "\nPL wählen:" )))))

Das problem an dem Code ist das er mir die kordinaten in ein einer Variable speichert.
Ich breuchte aber für jeden Punkt eine.
Hab mir dann überlegt. Ob das mit dem anden Code geht.

(setq A(entget(Car(Entsel))))
(cdr(assoc 10 A))

Er speichert mir zwar was aber ich weiß nicht was das ist keine Kordinate der mir in die
Variable speichet. Das passiert aber nur bei Polyline bei den linien geht es super.
Vielleicht helft ihr mir doch noch mal^^.

mfg

FirePhoeniX

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 01. Aug. 2008 15: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 FiRePhoeniX 10 Unities + Antwort hilfreich

...indem Du die Liste in einer While-Schleife abarbeitest:
Code:

(while (setq a (car punktliste)) 
  (progn
    (setq punktliste (cdr punktliste))
    ;jetzt steht in a die "Koordinate", und Du kannst wie vor verfahren
    ;CODE
  )
)

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 01. Aug. 2008 15:23    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 FiRePhoeniX 10 Unities + Antwort hilfreich

Hallo FiRePhoeniX,

 

Zitat:
Das problem an dem Code ist das er mir die kordinaten in ein einer Variable speichert.
Ich breuchte aber für jeden Punkt eine.

Warum brauchst du für jede Koordinate eine Variable ?
Du weist doch bei einer Polylinie vorher gar nicht wieviele Stützpunkte die hat.
Gewöhn dich bei LISP lieber an die Verarbeitung in Listen und an die Befehle "mapcar" und "foreach" sonst erzeugst du ein Programm zur Verwaltung von Variablen und nicht das was du eigentlich vorhast.
Das nur als gut gemeinter Tip. Iich hab nämlich auch mal so angefangen wie du und bin heute noch ab und zu dabei alte Programme aus genau diesem Grund neu zu schreiben, weil ich die selbst nicht mehr verstehe.

Zitat:
[Er speichert mir zwar was aber ich weiß nicht was das ist keine Kordinate der mir in die
Variable speichet. Das passiert aber nur bei Polyline bei den linien geht es super.

Was kommt denn da raus wenns keine Koordinate ist ? Gib mal Bescheid.


Gruß
Andreas

[Diese Nachricht wurde von Andreas Kraus am 01. Aug. 2008 editiert.]

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 01. Aug. 2008 15: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

[Diese Nachricht wurde von FiRePhoeniX am 01. Aug. 2008 editiert.]

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 01. Aug. 2008 16:00    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

Danke Andreas Kraus du hast recht.
So zu deiner ersten frage zu komme ich brauch die Kordinaten deswegen.
Weil die in eine anderes Program eingelesen werden.
Das problem daran ist das die Tabelle eine komische formatierung hat.

Name objekt Punkt typ Kordiinaten

Und zwischen diesen Spalten muss ein Tabolato sprung sein sonnst erkennt es
das objekt nicht. Mit einer Linie geht das gut aber wie mach ich das mit Polylines??
Denn jeder punkt muss unter einander stehen.

Name objekt Punkt typ Kordiinaten

Test 2 1 1 0.00 0.00
Test 2 2 1 0.10 0.10
...

Hab mir schon was dabei gedacht.
Jetzt fragst du dich bestimmt warum ich das mache!!!!
Es handelt sich um symbol dateien. Die auch sowelchen Tabellen aufgebau sind.
Wenn ich das alles mit dem Program machen musste würde ein Symbol 30 min in
anspruch nehmen. Deswegen versuche ich ein Lisp Program zu schreiben womit das besser geht.
Vielleicht klappt es auch. Hoff ich!!!
Deine zweite frage war bezüglich des Codes wo diese Komische Kordinate rauskommt.
Hab mich ein bisschen schlecht ausgedrückt. Es kommt zwar eine Kordinate raus,
aber keine die der Polyline gehört.
Hoffe ich konnte dir damit ein paar fragen beantworten ^^

mfg

FirePhoeniX

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 04. Aug. 2008 15: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 Nur für FiRePhoeniX 10 Unities + Antwort hilfreich

Aha, verstanden.

probier mal folgendes Programm. Ich hoffe du kommst mit "mapcar" und "vl-remove-if-not" klar.
An der Stelle wo "(entget (car (entsel)))" steht kannst du auch direkt die Elementdaten der Polylinie einsetzen.
Un da wo "(strcat "Test" "\t" (rtos (nth 1 p)) "\t" (rtos (nth 1 p)))" steht wird die Zeichenkette zusammengebaut.
Wenn du fragen hast, frag.

Gruß
Andreas


(defun c:xxx ()
  (setq datei (open (getfiled "Liste speichern" (getvar "dwgprefix") "txt" 3) "w"))
  (foreach
        zeile
              (mapcar '(lambda (p) (strcat "Test" "\t" (rtos (nth 1 p)) "\t" (rtos (nth 1 p))))
                      (vl-remove-if-not '(lambda (data) (= 10 (car data))) (entget (car (entsel))))
              )
    (write-line zeile datei)
  )
  (close datei)
  (princ)
)

[Diese Nachricht wurde von Andreas Kraus am 04. Aug. 2008 editiert.]

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 05. Aug. 2008 10:45    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

Danke Andreas Kraus,
bist der besste. Man bist du Gut  .
Wollte mich bedanken der Code funktioniert super.
Weiß zwar nicht bei allen stellen was du da machst aber
bin ja noch beim lernen. Mein code sieht so ungefähr 10 mal so lang aus^^.
Dir ist aber ein kleiner fehler pasiert^^.
undzwar bei:

(mapcar '(lambda (p) (strcat "Test" "\t" (rtos (nth 1 p)) "\t" (rtos (nth 1 p))))

bei (nth 1 p )))) muss ne 2 hin sonst bekomme ich zwei mal den X wert.^^
Wollte an dieser stelle aber noch was fragen wenn das schon so gut
und schnell mit einem kleine code geht. Gibt es eine möglich keit
die anzal der punkte um an zu erhöhen.

Test 1 0.00 0.00
test 2 0.00 0.01
test 3 0.00 0.02
...

Als zählen meine ich und dann in der Liste anzuzeigen???
Ich würde das mit einer schleife machen. Da ich aber deine code
nicht verstehe weiß ich nicht wo ich die anbringen soll^^
Und vielleicht geht das ja einfacher.
Danke ist dann erlich erlich die letzet fragen

mfg

Firephoenix

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 05. Aug. 2008 11: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 Nur für FiRePhoeniX 10 Unities + Antwort hilfreich

Jetzt lob mich mal nicht zuviel, ich heb ja noch ab 

kurze Codeerklärung:
Ich hole mir die Liste der Elementdaten eines angeklickten Objekts.
Da ist aber noch keine Prüfung dabei ob das eine Polylinie ist
(entget (car (entsel)))

Die Liste speichere ich NICHT in einer Variablen, sondern verarbeite sie gleich weiter.
Ich brauch ja nur die Stützpunkte, also alles was den Gruppencode 10 hat.
vl-remove-if-not kann bestimmte Elemente aus einer Liste entfernen, man braucht nur zu sagen welche. Also entferne ich "alle Elemente die nicht mit 10 anfangen" (= 10 (car data)).
Da es eine solche Funktion zum Filtern in Lisp nicht gibt mach ich mir halt eine, also : (lambda (data) (= 10 (car data)))
und übergebe diese Funktion an vl-remove-if-not ohne sie zu evaluieren, deshalb muß da ein ' davor.

(vl-remove-if-not '(lambda (data) (= 10 (car data))) (entget (car (entsel))))

Die Liste die da rauskommt enthält jetzt nur noch die Gruppen 10, also die Stützpunkte.

Die Liste speichere ich wieder NICHT in einer Variablen, sondern verarbeite sie wieder gleich weiter.

mapcar ist eine Funktion die mit jedem Element einer Liste (oder sogar mehrerer Listen) etwas macht. Was da gemacht werden soll wird, wie bei vl-remove-if-not als Funktion übergeben. Also bauen wir uns wieder mit lambda eine Funktion weil es das was wir brauchen in Lisp so nicht fertig gibt.
(lambda (p) (setq n (1+ n)) (strcat "Test" "\t" (itoa n) "\t" (rtos (nth 1 p)) "\t" (rtos (nth 2 p))))

Da kommt wieder eine Liste raus die jetzt die fertigen Zeichenketten enthält.

Du hast es dir sicher schon gedacht:
Die Liste speichere ich wieder NICHT in einer Variablen, sondern verarbeite sie wieder gleich weiter.

Zum Schluß verwende ich foreach um die einzelnen Listeneinträge in eine Datei zu schreiben.

Ich hoffe du kommst jetzt besser damit klar, schließlich sollst du ja wissen was du da machst.

Ach ja, das Ganze mit Zähler.
Bitte sehr:

(defun c:xxx ()
  (setq datei (open (getfiled "Liste speichern" (getvar "dwgprefix") "txt" 3) "w"))
  (setq n 0)
  (foreach
        zeile
              (mapcar '(lambda (p) (setq n (1+ n)) (strcat "Test" "\t" (itoa n) "\t" (rtos (nth 1 p)) "\t" (rtos (nth 2 p))))
                      (vl-remove-if-not '(lambda (data) (= 10 (car data))) (entget (car (entsel))))
              )
    (write-line zeile datei)
  )
  (close datei)
  (princ)
)

Und hoffentlich ist das nicht deine letzte Frage. Schließlich hat ja jeder mal angefangen und ich weis noch was ich für Schwierigkeiten hatte. Als frag wenn du was wissen willst denn irgendwann fängst du dann an Fragen zu beantworten und genau so funktioniert doch dieses Forum - oder ?

Gruß
Andreas

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 05. Aug. 2008 12:08    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 danke dir noch mal.
Super so gut würde ich auch gerne sein aber
das krieg ich mit eurer hilfe schon hin^^
Du hast vollkommen recht dafür ist ein forum
da, dass mal fragen äußert.
Und das mach ich noch mal     
Wollte fragen wie ich die kordinate dur den nullpunkte
abziehen kann. Will ja nicht ein 100m großes symbol haben
brauch ja eine basis punkt.
Habs so probiert:

(rtos (mapcar '- (nth 1 p) nullpk))

Klappt aber nicht, zeigt mir den Fehler: Fehlerhafter Argumenttyp: listp 2.73218 an.
Ich hoffe ich bin auf den richtigen weg. Kann nur nicht den Pfad finden^^.
Die anderen fragen ist nur inderesse halber.
Geht der gleiche befehl auch mit linien??
Hab eine elen langen code nur für linien.
So ein kurzer code wer cooler.    

Hier mein anfänger code:

((= OB0TYP "l")
  (setq OB0(entget(Car(Entsel "\nObjekt 0 wählen:  "))))                     
  (setq OB0Lpk1 (cdr(assoc 10 OB0)))
  (setq OB0Lpk2 (cdr(assoc 11 OB0)))
  (setq OB0Lrpk1 (mapcar '- OB0Lpk1 mittpo))
  (setq OB0Lrpk2 (mapcar '- OB0Lpk2 mittpo))

(setq OB0Kopk1.1 (rtos(car OB0Lrpk1)2 2))
(setq OB0Kopk1.2 (rtos(cadr OB0Lrpk1)2 2))

(setq OB0Kopk2.1 (rtos(car OB0Lrpk2)2 2))
(setq OB0Kopk2.2 (rtos(cadr OB0Lrpk2)2 2))

(write-line (strcat name " " OB0Z " 1 1 " OB0Kopk1.1 " " OB0Kopk1.2) textdatei)       
(write-line (strcat name " " OB0Z " 2 1 " OB0Kopk2.1 " " OB0Kopk2.2) textdatei)

)

danke noch mal Andreas Kraus.
Den code den ich für die polylines gemacht habe  willst du garnicht sehen^^.

mfg

Firephoenix

[Diese Nachricht wurde von FiRePhoeniX am 05. Aug. 2008 editiert.]

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 05. Aug. 2008 13:53    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 FiRePhoeniX 10 Unities + Antwort hilfreich

Also...

mapcar arbeitet mit Listen !
Wenn du von einer Koordinate etwas abziehen willst, dann ist das ja eine Liste mit zwei oder drei Werten (je nach dem ob der Z-Wert mit in der Liste ist oder nicht).
Also mußt du auch eine Liste abziehen die genauso lang ist

Beispiel:
wenn in der Variablen p die Liste (8.5 16.0 9.0) gespeichert ist und du machst das:
(setq p (mapcar '- p '(5.0 5.0 5.0)))
sieht der Inhalt von p dann so aus: (3.5 11.0 4.0)

Wenn du aus dieser Liste eine Zeichenkette machen willst, gibt es verschiedene Überlegungen:

(mapcar 'rtos p) ergibt ("3.5" "11" "4")
Das ist immer noch eine Liste, allerdings sind da jetzt Zeichenketten drinn.

(apply 'strcat (mapcar 'rtos p)) ergibt "3.5114"
Das ist jetzt zwar eine Zeichenkette aus den Einzelwerten der Koordinate , aber irgendwie ist das Schrott.

Du hattest als Trennzeichen einen Tabstop, also bauen wir da auch Tabstops ein. Nur wo ?

z.B. da
(mapcar '(lambda (a) (strcat "\t" (rtos a))) p)

und dann zusammenbauen:
(apply 'strcat (mapcar '(lambda (a) (strcat "\t" (rtos a))) p))

Wenn du den Tabstop am Anfang nicht brauchtst:
(apply 'strcat (mapcar '(lambda (a) (strcat "\t" (rtos a))) p))


So, und dann noch für Linien:

(defun c:xxx ()
  (setq datei (open (getfiled "Liste speichern" (getvar "dwgprefix") "txt" 3) "w"))
  (setq n 0)
  (foreach
        zeile
              (mapcar
                '(lambda (p)
                  (setq n (1+ n))
                  (strcat "Test" "\t" (itoa n) "\t" (rtos (nth 1 p)) "\t" (rtos (nth 2 p)))
                )
                (vl-remove-if-not '(lambda (data) (or (= 10 (car data)) (= 11 (car data)))) (entget (car (entsel))))
              )
    (write-line zeile datei)
  )
  (close datei)
  (princ)
)

Gruß
Andreas

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 06. Aug. 2008 10:09    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

Moin Forum,
ich wollte mich eigentlich nur bedanken.
Ich habe es geschafft das Program es lebt.
Nein, nein geht es LÄUFT !!!!
Zwar steht es noch auf wackliegen Beinen.
Weil es jeden fehler mit abbruch dankt.
Aber was solls wenn ich zeit hab schreibe ich es mal um, aber nicht jetzt hab die Nase voll
fürs erste.
Das Thema kan geschlossen werden.
mfg

FirePhoenix

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