Is het mogelijk om via lisp materialen toe te wijzen aan objecten, en daarnaa te laten renderen ?
Zoja, hoe moet dit ?
Alvast bedankt
Tom
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
)
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 )
)
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")
Hopelijk zijt ge hier al iets mee. :)
ALs ge wilt dat render telkens sluit na het progje
Citeer(arxunload "acrender")
dat dan onderaan het programma bijvoegen :wink:
Bedankt voor al deze informatie.
Ik denk wel dat ik hier mee verder kan.
Bedankt
Tom
Citaat van: Kenny HCiteer(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
Dat bestaat inderdaad. Ik ga het eerst eens uitschrijven en dan posten als het werkt :wink:
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
CS
IAâ€"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.
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")
)
Bedankt, het werkt echt perfect nu.
Tom
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:
Er is nog 1 nadeel. :?
Je moet de naam van uw render textuur kennen. Maar ik denk dat dit toch vele al kan helpen :!:
In mijn vorig progje staat wel niets in om het in de render window te kunnen bekijken. Had daar niet veel zin voor :D
Beste heren, is het eventueel mogelijk om te renderen via VBA? Of kan dit enkel via Lisp? Dit omdat ik mijn eindwerk in VBA moet maken en geen verstand heb van Lisp (helemaal niet zelfs). Het is de bedoeling dat ik mijn textures toewijs aan layers, maar kan dit wel via VBA?