FastFiber

materialen toewijzen en renderen

Gestart door Tom, do 14 04 2005, 11:30:25

Vorige topic - Volgende topic

Tom

Is het mogelijk om via lisp materialen toe te wijzen aan objecten, en daarnaa te laten renderen ?

Zoja, hoe moet dit ?

Alvast bedankt

Tom

Kenny H

Dit is al een begin. De rest volgt. :wink:


Citeer
(defun c:textuura ()
(if (not (member "acrender.arx" (arx)))
   (arxload "acrender")
 )
 (c:matlib "i"
       "ape"
       "C:/Program Files/AutoCAD 2002/Support/render.mli"
 )
 (c:rmat "A" "ape" (ssget))

;;;  Render in autocad window
 (c:rpref "DEST" "FRAMEBUFFER" "")
;;;  Photo real
 (c:rpref "STYPE" "ASCAN")
 (c:render "r")
;;;  "" enkel werkt niet er moet iets in staan :-s
)
8) Volvo 4 Life 8)

Kenny H

Citeer(defun c:textuurb ()
(if (not (member "acrender.arx" (arx)))
   (arxload "acrender")
 )
 (c:matlib "i"
       "ape"
       "C:/Program Files/AutoCAD 2002/Support/render.mli"
 )
;;;  (c:rmat "A" "ape" (ssget))

;;;  Photo real
 (c:rpref "STYPE" "ASCAN")
;;; Render To File
 (c:rpref "DEST" "file")
 (C:RFILEOPT "BMP" 640 480 1.0 "C8")
 (c:rmat "A" "ape" (ssget))
 
(setq naam
(getstring  "\nGeef een bestandsnaam voor op aub: "))

 (c:render naam )
)
8) Volvo 4 Life 8)

Kenny H

CiteerOpslag

FRAMEBUFFER Render to display
HARDCOPY Render to Render window
FILE Render to file

(c:rpref "DEST" "file")
(c:rpref "DEST" "HARDCOPY ")
(c:rpref "DEST" "file")

Soort tekening

ARENDER Basic rendering
ASCAN Photo Real rendering
ARAY Photo Raytrace rendering

(c:rpref "STYPE" "ARENDER")
(c:rpref "STYPE" "ASCAN")
(c:rpref "STYPE" "ARAY")
8) Volvo 4 Life 8)

Kenny H

Hopelijk zijt ge hier al iets mee.   :)
8) Volvo 4 Life 8)

Kenny H

ALs ge wilt dat render telkens sluit na het progje

Citeer(arxunload "acrender")

dat dan onderaan het programma bijvoegen  :wink:
8) Volvo 4 Life 8)

Tom

Bedankt voor al deze informatie.
Ik denk wel dat ik hier mee verder kan.

Bedankt

Tom

Tom

Citaat van: Kenny H
Citeer(defun c:textuurb ()
(if (not (member "acrender.arx" (arx)))
   (arxload "acrender")
 )
 (c:matlib "i"
       "ape"
       "C:/Program Files/AutoCAD 2002/Support/render.mli"
 )
;;;  (c:rmat "A" "ape" (ssget))

;;;  Photo real
 (c:rpref "STYPE" "ASCAN")
;;; Render To File
 (c:rpref "DEST" "file")
 (C:RFILEOPT "BMP" 640 480 1.0 "C8")
 (c:rmat "A" "ape" (ssget))
 
(setq naam
(getstring  "\nGeef een bestandsnaam voor op aub: "))

 (c:render naam )
)


(c:rmat "A" "ape" (ssget))
De A staat hier voor Attach. en moet je de objecten aanduiden.

Is er ook zo een letter om Attach By Layer te doen ?

Alvast bedankt

Tom

Kenny H

Dat bestaat inderdaad. Ik ga het eerst eens  uitschrijven en dan posten als het werkt  :wink:
8) Volvo 4 Life 8)

HofCAD

Citaat van: Tom

De A staat hier voor Attach. en moet je de objecten aanduiden.

Is er ook zo een letter om Attach By Layer te doen ?

Alvast bedankt

Tom


Beste Tom,

Zie onder, of kijk bij de Help van AutoCAD bij AutoLISP Reference en
in het hoofdstuk Externally Defined Commands.

Groetjes HofCAD CSI

Aâ€"Attach Material

The "A" (attach) mode lets you attach a material to selected objects or an AutoCAD Color Index (ACI) value, depending on whether the third argument (layer-name) is an integer or a selection set.

(c:rmat "A" name [aci | selection-set | layer-name])

Arguments

The following table describes the attach arguments.: Attach arguments  

Argument
Data type
Description

name
STR
Name of the material to attach

aci
INT
ACI number in the range 0 through 255

selection-set
INT
Selection set that contains the entities to attach

layer-name
STR
Name of the layer



Examples

Attach the material PURPLE TIGER to the ACI 1 (red):

(c:rmat "A" "PURPLE TIGER" 1)
If you omit the third argument, the "A" mode returns a list of three items:

A list of layer names the material is attached to
A list of ACIs the material is attached to
A selection set that contains the objects the material is attached to
The following example illustrates the values returned when the third argument is omitted:

Command:  (c:rmat "a" "twood")
Gathering objects...1 found
                   Layer names ACI's
(("first" "second")(135) <Selection set 12>))
A material index value in the range 1â€"255 is an ACI number; an index greater than 255 indicates an AutoCAD Render material not assigned by ACI.
ACADcadabra

Kenny H

Citeer
(defun c:textuura ()
 (if (not (member "acrender.arx" (arx)))
   (arxload "acrender")
 )
 (c:matlib "i"
       "ape"
       "C:/Program Files/AutoCAD 2002/Support/render.mli"
 )
 (setq   layernaam
    (getstring "\nGeef de layernaam op aub: ")
 )
 (c:rmat "a" "ape" layernaam )

;;;  Render in autocad window
 (c:rpref "DEST" "FRAMEBUFFER" "")
;;;  Photo real
 (c:rpref "STYPE" "ASCAN")
 (c:render "r")
;;;  "" enkel werkt niet er moet iets in staan :-s
 (arxunload "acrender")
)
8) Volvo 4 Life 8)

Tom

Bedankt, het werkt echt perfect nu.

Tom

Kenny H

Citeer
(defun c:textuur ()
 (initget "ma la ")
 (setq   manier
    (getkword
      "\nSelecteer u manier van selecteren: Manueel (ma) of Layer (la):"
    )
 )
 (if (= manier "ma")
   (progn
     (setq materiaal (getstring "\nGeef een rendermateriaal op aub: "))
     (initget "a b ")
;;; nooit hoofdletters hier boven
     (setq Soort
        (getkword
          "\nSelecteer uit: Display (A) of File (B):"
        )
     )

     (if (= Soort "a")
   (progn
     (initget "1 2 3")
     (setq   kwaliteit
       (getkword
         "\nSelecteer uit: Render (1), Photo Real (2) of Photo Raytrace (3):"
       )
     )

     (if (= kwaliteit "1")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (c:rmat "A" materiaal (ssget))

;;;  Render in autocad window
         (c:rpref "DEST" "FRAMEBUFFER" "")

;;;  Render
         (c:rpref "STYPE" "ARENDER")
         (c:render "r")

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "2")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (c:rmat "A" materiaal (ssget))

;;;  Render in autocad window
         (c:rpref "DEST" "FRAMEBUFFER" "")

;;;  photo real
         (c:rpref "STYPE" "Ascan")
         (c:render "r")

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "3")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (c:rmat "A" materiaal (ssget))

;;;  Render in autocad window
         (c:rpref "DEST" "FRAMEBUFFER" "")

;;;  photo raytrace
         (c:rpref "STYPE" "Aray")
         (c:render "r")

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )


;;; stopt prog
   )
;;; stopt if
     )

     (if (= Soort "b")
   (progn
     (initget "1 2 3")
     (setq   kwaliteit
       (getkword
         "\nSelecteer uit: Render (1), Photo Real (2) of Photo Raytrace (3):"
       )
     )

     (if (= kwaliteit "1")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (c:rmat "A" materiaal (ssget))
         (c:rpref "STYPE" "ARENDER")
         (c:rpref "DEST" "file")
         (C:RFILEOPT "BMP" 640 480 1.0 "C8")
         (setq naam
           (getstring "\nGeef een bestandsnaam voor op aub: ")
         )
         (c:render naam)
;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "2")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (c:rmat "A" materiaal (ssget))
         (c:rpref "STYPE" "Ascan")
         (c:rpref "DEST" "file")
         (C:RFILEOPT "BMP" 640 480 1.0 "C8")
         (setq naam
           (getstring "\nGeef een bestandsnaam voor op aub: ")
         )
         (c:render naam)

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "3")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (c:rmat "A" materiaal (ssget))
         (c:rpref "STYPE" "ARay")
         (c:rpref "DEST" "file")
         (C:RFILEOPT "BMP" 640 480 1.0 "C8")
         (setq naam
           (getstring "\nGeef een bestandsnaam voor op aub: ")
         )
         (c:render naam)

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

;;; stopt prog
   )
;;; stopt if
     )
   )
 )



 (if (= manier "la")
   (progn
     (setq materiaal (getstring "\nGeef een rendermateriaal op aub: "))
     (initget "a b ")
;;; nooit hoofdletters hier boven
     (setq Soort
        (getkword
          "\nSelecteer uit: Display (A) of File (B):"
        )
     )

     (if (= Soort "a")
   (progn
     (initget "1 2 3")
     (setq   kwaliteit
       (getkword
         "\nSelecteer uit: Render (1), Photo Real (2) of Photo Raytrace (3):"
       )
     )

     (if (= kwaliteit "1")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (setq layernaam
           (getstring "\nGeef de layernaam op aub: ")
         )
         (c:rmat "a" materiaal layernaam)

;;;  Render in autocad window
         (c:rpref "DEST" "FRAMEBUFFER" "")

;;;  Render
         (c:rpref "STYPE" "ARENDER")
         (c:render "r")

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "2")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (setq layernaam
           (getstring "\nGeef de layernaam op aub: ")
         )
         (c:rmat "a" materiaal layernaam)

;;;  Render in autocad window
         (c:rpref "DEST" "FRAMEBUFFER" "")

;;;  photo real
         (c:rpref "STYPE" "Ascan")
         (c:render "r")

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "3")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (setq layernaam
           (getstring "\nGeef de layernaam op aub: ")
         )
         (c:rmat "a" materiaal layernaam)

;;;  Render in autocad window
         (c:rpref "DEST" "FRAMEBUFFER" "")

;;;  photo raytrace
         (c:rpref "STYPE" "Aray")
         (c:render "r")

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )


;;; stopt prog
   )
;;; stopt if
     )

     (if (= Soort "b")
   (progn
     (initget "1 2 3")
     (setq   kwaliteit
       (getkword
         "\nSelecteer uit: Render (1), Photo Real (2) of Photo Raytrace (3):"
       )
     )

     (if (= kwaliteit "1")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (setq layernaam
           (getstring "\nGeef de layernaam op aub: ")
         )
         (c:rmat "a" materiaal layernaam)
         (c:rpref "STYPE" "ARENDER")
         (c:rpref "DEST" "file")
         (C:RFILEOPT "BMP" 640 480 1.0 "C8")
         (setq naam
           (getstring "\nGeef een bestandsnaam voor op aub: ")
         )
         (c:render naam)
;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "2")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (setq layernaam
           (getstring "\nGeef de layernaam op aub: ")
         )
         (c:rmat "a" materiaal layernaam)
         (c:rpref "STYPE" "Ascan")
         (c:rpref "DEST" "file")
         (C:RFILEOPT "BMP" 640 480 1.0 "C8")
         (setq naam
           (getstring "\nGeef een bestandsnaam voor op aub: ")
         )
         (c:render naam)

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )

     (if (= kwaliteit "3")
       (progn
         (arxload "acrender")

         (c:matlib
      "i"
      materiaal
      "C:/Program Files/AutoCAD 2002/Support/render.mli"
         )
         (setq layernaam
           (getstring "\nGeef de layernaam op aub: ")
         )
         (c:rmat "a" materiaal layernaam)
         (c:rpref "STYPE" "ARay")
         (c:rpref "DEST" "file")
         (C:RFILEOPT "BMP" 640 480 1.0 "C8")
         (setq naam
           (getstring "\nGeef een bestandsnaam voor op aub: ")
         )
         (c:render naam)

;;;  "" enkel werkt niet er moet iets in staan :-s
         (arxunload "acrender")
       )
     )
   )

     )
   )
 )
)

Hier is een programma waar alles via de commando regel in te voeren is. Moest er iets niet werken laat me dit dan weten.
Sorry voor de lengte  :shock:
8) Volvo 4 Life 8)

Kenny H

Er is nog 1 nadeel.  :?
Je moet de naam van uw render textuur kennen. Maar ik denk dat dit toch vele al kan helpen :!:
8) Volvo 4 Life 8)

Kenny H

In mijn vorig  progje staat wel niets in om het in de render window te kunnen bekijken. Had daar niet veel zin voor  :D
8) Volvo 4 Life 8)

yoin