Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Import von Render-Materialien

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:  Import von Render-Materialien (1081 mal gelesen)
mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 17. Sep. 2005 01:15    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 kann Materialien auf diese Weise in die Zeichnung importieren:

(c:matlib "I" "copper" (findfile"render.mli"))

Es geht aber immer nur ein Material auf einmal, wenn ich 50 brauche, ist das doch bekloppt, das 50 mal aufzurufen - gibt es eine andere Lösung?

Und noch eine Frage: das gibt immer eine 1 zurück, auch wenn das Material gar nicht gefunden wurde, z.B. (ups, ein kleiner Tippfehler):

(c:matlib "I" "copppper" (findfile"render.mli")) => 1

Die Online-Doku schweigt sich über die Rückgabe der Funktion aus. Sie gibt offensichtlich immer 1 zurück, außer wenn der Name zu lang ist - dann gibt sie Müll zurück. Gibt es was eleganteres, als nach den 50 Aufrufen, die ich ohnehin schon habe, dann jedesmal (c:matlib "L") aufzurufen und in der Liste nachzusehen, ob der Aufruf erfolgreich war oder nicht? Der User hat ja in seiner unendlichen Weisheit die Freiheit, in seiner render.mli zu löschen oder umzubenennen, was er will;-)

Gruß, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 19. Sep. 2005 09: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 Nur für mapcar 10 Unities + Antwort hilfreich

also ich importier eine komplette Mat-biblio so

(c:matlib "I" "*" (ahc_x00Pfad "/hicad/bc/08/mli/bnmli.mli"))

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

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 19. Sep. 2005 09: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 mapcar 10 Unities + Antwort hilfreich

@mapcar

wie kann man eigentlich einem Elemnt INNERHALB einer Blockdefinition ein Material vergeben ?
der MAT-Befehl benötigt dazu ja einen Auswahlsatz, das geht ja bei Elementen innnerhalb einer Blockdefinition ja nicht !

Ich machs jetzt so,dass ich direkt die EEDs schreibe, gibts da vielleicht was einfacheres

hat ziemlich lange gebraucht, biss ich die EED-Liste kapiert habe, leider undokumentiert.

(setq edate (append edate (list (list -3 (list "AVE_FINISH" (cons 1002 "{")
                                                                (cons 1070 0)
                                                                (cons 1005 reg)
                                                                (cons 1002 "}")
                                                          )
                                                          (list "AVE_ENTITY_MATERIAL"
(cons 1002 "{")
  (cons 1000 "")
  (cons 1002 "{")
    (cons 1071 0)
    (cons 1070 0)
    (cons 1070 0)
    (cons 1002 "{")
      (cons 1070 0)
      (cons 1070 0)
      (cons 1070 0)
      (cons 1040 0.0)
    (cons 1002 "}")
    (cons 1070 0)
    (cons 1070 0)
    (cons 1002 "{")
    (cons 1002 "}")
  (cons 1002 "}")
  (cons 1002 "{")
    (cons 1002 "{")
      (cons 1071 0)
      (cons 1070 4)
    (cons 1002 "}")
  (cons 1002 "}")
  (cons 1002 "{")
    (cons 1002 "{")
      (cons 1071 0)
      (cons 1002 "{")
        (cons 1002 "{")
          (cons 1040 (car xy))
          (cons 1040 0.0)
          (cons 1070 0)
        (cons 1002 "}")
        (cons 1002 "{")
          (cons 1040 (cadr xy))
          (cons 1040 0.0)
          (cons 1070 0)
        (cons 1002 "}")
        (cons 1040 0.0)
        (cons 1070 0)
      (cons 1002 "}")
      (cons 1002 "{")
(cons 1040 (- (car p2) (car p1)))
(cons 1040 (- (car p3) (car p1)))
(cons 1040 0) ;
(cons 1040 (car p1))
(cons 1040 (- (cadr p2) (cadr p1)))
(cons 1040 (- (cadr p3) (cadr p1)))
(cons 1040 0) ;
(cons 1040 (cadr p1))
(cons 1040 (- (caddr p2) (caddr p1)))
(cons 1040 (- (caddr p3) (caddr p1)))
(cons 1040 0) ;
(cons 1040 (caddr p1))
(cons 1070 1)
        (cons 1002 "{")
        (cons 1002 "}")
        (cons 1070 0)
      (cons 1002 "}")
    (cons 1002 "}")
  (cons 1002 "}")
  (cons 1011 p1)
  (cons 1011 p2)
  (cons 1011 p3)
  (cons 1011 p4)
(cons 1002 "}")
      )
)

                                            )

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

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 19. Sep. 2005 09:55    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 fuchsi:
wie kann man eigentlich einem Elemnt INNERHALB einer Blockdefinition ein Material vergeben?

Das mit dem Auswahlsatz ist ein bisschen störend, aber kein Grundsatzproblem. Ich habe zur Materialvergabe eine kleine Funktion, die das Entity in einen AWS einpackt und dann rmat aufruft. Das sollte eigentlich auch innerhalb von Blockdefinitionen funktionieren. Man kann ja testen:
Ist das Argument ein AWS, passiert nix
"  "  "        ein Entity, wird ein AWS draus gemacht
"  "  "        eine Liste mit Entities, ebenso AWS

Der Tipp mit dem Stern als Material bringt mich schon etwas weiter - da könnte ich die Materialien, die ich brauche, in eine separate .mli packen und mitliefern (die ganze render.mli auf diese Weise laden, wäre wohl ein bisschen zu viel des guten).

Mit den EEDs will ich mich gar nicht erst befassen, da ich in diesem Projekt versuche, die Bälle möglichst flach zu halten und mich auf reine Command-Programmierung beschränke. Die 3D-Körper können ja sowieso nicht anders erzeugt werden. Tiefergehende Techniken möchte ich da gar nicht drin haben, da die Portabilität auf andere Systeme hohe Priorität hat.

Danke, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 19. Sep. 2005 10:41    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 mapcar 10 Unities + Antwort hilfreich

Hallo Mapcar !

wenns es sich um Elemente innerhalb einer Blockdefinition handelt, kann man diese leider nicht in einen Auswahlsatz geben.


Befehl: (setq a (tblobjname  "BLOCK" "TEST"))
<Objektname: 7ef765f8>
Befehl: (setq b (entnext a))
<Objektname: 7ef76608>
Befehl: (setq c (ssadd b))
nil

leider kann man nur wirklich selektierbare Elemente zu einem Auswahlsatz geben, und keine Elemente innnerhalb einer Blockdefinition.
Also musste ich leider den Umweg über die EEDs machen

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

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 19. Sep. 2005 10: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

Zitat:
Original erstellt von fuchsi:
wenns es sich um Elemente innerhalb einer Blockdefinition handelt, kann man diese leider nicht in einen Auswahlsatz geben.

Oh, das ist mir neu - hab's noch nie in der Praxis versucht. Tja, dann geht es nicht anders.

Gruß, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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