Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  3DPolylinie aus Textdatei

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:  3DPolylinie aus Textdatei (926 mal gelesen)
durden
Mitglied


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

Beiträge: 3
Registriert: 14.03.2007

AMD 3200+
1GB RAM
WinXP PRO
SP2
GeForce 6600GT
ADT2004deu&ETools

erstellt am: 14. Mrz. 2007 10: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 Zusammen,

ich habe von http://www.mapcar.de/_f_programmieren_bildraster.html
eine Lisp-Routine die mir anhand einer Test-Datei ein Kreisraster in ACAD zeichnet.

Funktioniert soweit auch einwandfrei.


(defun lochblech(filename / fh b w h i p r row col)
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (setq fh(open filename "r"))
  (setq w(atoi(read-line fh)))
  (setq h(atoi(read-line fh)))
  (setq row 0)
  (setq p '(0 0))
  (setq r (/ 1 255.0))
  (repeat h
    (setq col 0)
    (repeat w
      (setq p(list(* 2.1 col)(* 2.1 row)))
      (setq b(1+(atoi(read-line fh))))
      (command "_circle" p (* b r))
      (setq col(1+ col))
    )
    (setq row(1- row))
  )
  (close fh)
)


Möchte aber jetzt die command zeile so umformatieren das nich die Kreise gezeichnet werden sonern eine 3D Polylinie.

Wobei die angaben für den Kreismittelpunkte die x,y Kordinate des jeweiligen Polylinien Stützpunktes und der Radius die Z Kordinate ergeben soll

kann mir da jemand einen endscheidenten Tip geben.

Besten Dank im voraus.

Durden

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 14. Mrz. 2007 11: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 durden 10 Unities + Antwort hilfreich

probiers mal hiermit

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

durden
Mitglied


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

Beiträge: 3
Registriert: 14.03.2007

AMD 3200+
1GB RAM
WinXP PRO
SP2
GeForce 6600GT
ADT2004deu&ETools

erstellt am: 14. Mrz. 2007 11: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

Die mir zur verfügung stehende Textdatei sieht so aus: In der ersten Zeile steht die Breite eines Bildes, in der zweiten Zeile die Höhe. Ab der dritten Zeile folgt jeweils eine Zahl zwischen 0 und 255 für der Graustufen Wert des jeweiligen Pixel.

Beispiel:

204
285
154
146
137
145
156
150
143

usw.

Die Lisproutine liest die Textdatei ein und zeichnet in AutoCAD die Kreise mit entsprechenden Durchmessern. Das Programm beginnt bei den Koordinaten 0,0 und zeichnet Kreise mit Durchmessern zwischen 0,01 und 1. Nach jedem Loch springt es um 2,1 weiter, und wenn eine Zeile voll ist, springt es an den nächsten Zeilenanfang.

Möchte nun die command zeile  (command "_circle" p (* b r)) so umformatieren das nich die Kreise gezeichnet werden sonern eine 3D Polylinie.

eventuell so

(command "_3dpoly" p (* b r))

kommt aber nichts gescheites bei rüber, was mache ich falsch?

Die Hinweise unter http://ww3.cad.de/foren/ubb/Forum54/HTML/003080.shtml#000014 konnten mir da nicht weiter helfen.

Gruß und Danke

durden

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 14. Mrz. 2007 11:47    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 durden 10 Unities + Antwort hilfreich

ungetestet:

(defun lochblech(filename / fh b w h i p r row col LISTE PKT)
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (setq fh(open filename "r"))
  (setq w(atoi(read-line fh)))
  (setq h(atoi(read-line fh)))
  (setq row 0)
  (setq p '(0 0))
  (setq r (/ 1 255.0))
  (repeat h
    (setq col 0)
    (repeat w
      (setq b(1+(atoi(read-line fh))))
      (setq LISTE (cons(list (* 2.1 col)(* 2.1 row)(* b r))LISTE)
      (setq col(1+ col))
    )
    (setq row(1- row))
  )
  (close fh)
  (setq LISTE (reverse LISTE))
  (command "_3dpoly" (car LISTE))
  (setq LISTE (cdr LISTE))
  (while (setq PKT (car LISTE))
    (command PKT)
    (setq LISTE (cdr LISTE))
  )
)

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

durden
Mitglied


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

Beiträge: 3
Registriert: 14.03.2007

AMD 3200+
1GB RAM
WinXP PRO
SP2
GeForce 6600GT
ADT2004deu&ETools

erstellt am: 14. Mrz. 2007 12:48    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

perfekt vielen vielen Dank genau danach habe ich gesucht und das auch noch so schnell 

In deiner ungetesteten Lisp anpassung war lediglich ein kleiner Format Fehler. (Hut ab vor deinen Vorstellungsvermögen)

In dieser Zeile fehlte ne Klammer.

(setq LISTE (cons(list (* 2.1 col)(* 2.1 row)(* b r))LISTE))

Nach der Änderung ging alles genau so durch wie ich mir das vorgestellt hatte.

Um mein Glück jetz voll kommen zu machen, wäre es irgendwie technisch möglich die Routine so umzustriken das wen eine Zeile abgearbeitet wurde in der nächsten Zeile eine neue 3D-Polylinie beginnt usw.

Momentan ist es ist es eine einzige Polylinie, heist wenn die erste Zeile abgearbeitet wurde wird logischerweise eine diagonale Verbinungslinie zur nächsten Zeile gezeichnet.

Da ich das ganze später als CNC-Daten zum fräsen eines Geländemodels nutzen möchte würde diese Diagonale wenn sie mit gefräßt werden würde zu einem falschen Ergebniss führen. 

Könnte natürlich die 3DPolylinie sprengen und manuell die Diagonallen löschen, wen diese automatisiert erst garnicht gezeichnet würde wäre das der absolute Oberhammer.

Nochmal vielen Dank für deine Unterstüzung.

durden

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