Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by SamIWas

  1. I use a texture with a glow applied, assign the lens object to the lens class, then assign the lens class to take on spotlight fill colors.
  2. I'm more curious about getting different drop-down values conditionally based upon a different drop-down's value. Looks like something else to have fun learning!
  3. Man...I've been so busy, I forgot to check the forum. I'll give this a go and see if it does anything. What I'd really love is an option in the "override environment lighting" or whatever it is in the texture, for there to be an option to multiply the amount of lighting the texture puts out. But it wouldn't affect the visibility of the texture itself. An example from cinema is attached. Two squares backlit by the same brightness light, with exactly the same texture settings, except one texture has GI boosted up to 2000%. Teh squares appear identical, but the amount of light put out is different.
  4. Yeah...this was an option I thought about. But with the way everything moves and tilts and the lights inside change colors depending on the set, etc, it would be a lot of extra work to maintain the area lights. I was hoping for an option in the indirect lighting. It's not show crucial or anything.
  5. Hmmm...that is an interesting thought...going to try that one. Nope...It appears that environment lighting doesn't pay attention to and texture's shadow casting properties.
  6. I've been wondering for quite a while...is there any real way to control the amount of global illumination a texture creates without affecting the actual rendering of the texture itself? Cinema4D has an option in the material for how much global illumination to generate, but it doesn't affect the rendering of the material itself. In the attached image, the light boxes render very well and look realistic, but there is almost no actual light being generated onto the truck. If I up the backlit part of the texture to from 100 to 250, I get the right amount of light onto the truck, but the boxes just blow out white. My goal is to get the boxes to look like the first image, and the floor and truck to look like the second image.
  7. Awesome! Thank you! That got me going in the right direction.
  8. I am working on a set plan which will have a bunch of ring ribs forming the backbone for a tunnel. I am trying to figure out the best way to create the tunnel portion in between the ribs. In Cinema 4D, this is simple...create multiple circle splines, then put them in a loft, and it will connect them in 3D. I do a lot of 3D in vectorworks, but this one is beyond what I'm familiar with. If the circles were parallel to each other, it could be done with matrix extrude. But the circles are not parallel and are at different heights. Any leads on the best way to accomplish this?
  9. Man, I'm glad I found this topic. This was driving me crazy today. I don't know how this "feature" is supposed to work, but it works very badly.
  10. I managed to get the PIO to draw the pipe and apply all of the relevant info into the fields to make the pipe act how I want. But, yeah, I don't think it can be detected inside the PIO as a rigging object. I don't even care about rigging analysis...I just want the lighting device to pick up the position name and move if the PIO is moved. That's a bummer.
  11. I was just coming to respond that I got it started with CreateCustomObject. I managed to get it to draw a pipe, but only 1m long no matter what I assigned to the record fields. It also wouldn't take on a diameter from 'Lighting Pipe','PipeW' (which is what I got from the worksheet as the parameter name. So, I will look into the createcustomobjectPath. I'm not quite sure what you mean by "the profile group" however. What's odd, and this may be related to what you are talking about here, is that no other objects draw in the plugin. I have a few random extrudes just as test pieces, and they do not draw. I'm guessing this has to do with the profile group thing you mention. I will also look into this debugview. I have read about it on other posts, so maybe that is something I need.
  12. Hmmm...okay. I'll have to look into that and how to create the lighting pipe inside a PIO and make it invisible. That would absolutely work for everything I want to do. Because I also want to create my own pipe PIO because you can't texture the Lighting Pipe or the straight truss tool, unless the texture is a class texture (and then, you can't turn it off!). You also can't just apply a generic color to the pipe, and a grid of bright white pipes looks ridiculous. If either of these are possible, I haven't found it. Very annoying, and I want to fix that!
  13. Trying to get more info for this. @Sam Jones, did you ever get this working? I'm looking to make some very simple PIOs that can automatically be hanging positions, but still be editable using the PIO fields. An example would be a truss with an Ibeam along the bottom (used a lot in film sets) where I can draw the truss, and the beam, and have the beam portion be a hanging position. Or the whole thing is fine I guess as long as I draw it correctly and the fixtures will snap to the bottom center of the PIO.
  14. As Michael said, it's about the parameters. In my provided example, I can change the shape of the red end pieces and the angle of the four arms. I have others that allow a huge amount of customization to some very large and complex objects like boom lifts and scissor lifts.
  15. And my code...my code is fairly simple and not meant to be a complex, event-enabled object. This was more about just the code to draw the parts. Took about 75 minutes from start to finish to write and test the whole thing. I'd really love to see how others code this kind of thing to see if what I've done is in line with more established programmers. Particularly in the way that sweeps and extrudes are created and then constantly rotated into the right orientation. {IllumiViz VW Challenge Plug-In Version 1.0 Last Updated 10/16/23 6:15pm EST} PROCEDURE VWChallenge; VAR objname : STRING; result, markertest : BOOLEAN; oh,rh,wh : HANDLE; count, subtract, addition : INTEGER; armang,nub : REAL; ctan, cgreen, crust, cred, cblue, cgrey : LONGINT; s1, s2, s3, a1, a2, a3, part1, part2, armg : HANDLE; BEGIN {--------------------SYMBOL INFO-----------------------} PushAttrs; {--------------------MENU INFO-----------------------} nub:=PNUBSIZE; IF nub<0.5" THEN BEGIN nub:=0.5"; SetRField(oh,objname,'NubSize',num2strf(nub)); END; IF nub>8" THEN BEGIN nub:=8"; SetRField(oh,objname,'NubSize',num2strf(nub)); END; armang:=PARMANGLE; IF armang<0 THEN BEGIN armang:=0; SetRField(oh,objname,'ArmAngle',num2str(2,armang)); END; IF armang>75 THEN BEGIN armang:=75; SetRField(oh,objname,'ArmAngle',num2str(2,armang)); END; {-------------COLOR AND TEXT DEFINITIONS-------------} FPatByClass; FillColorByClass; OpacityByClass; LSByClass; LWByClass; PenColorByClass; markertest:=SetDefaultBeginningMarker(1,15,0.25",0.125",1,1,FALSE); markertest:=SetDefaultEndMarker(1,15,0.25",0.125",1,1,FALSE); Closepoly; RGBtoColorIndex(53500,43500,34000,ctan); RGBtoColorIndex(16500,33000,16500,cgreen); RGBtoColorIndex(30500,16500,16500,crust); RGBtoColorIndex(65535,5000,5000,cred); RGBtoColorIndex(5000,5000,65535,cblue); RGBtoColorIndex(20000,20000,20000,cgrey); {--------------------CREATE 3D-----------------------} NameClass('None'); FillFore(ctan);FillBack(ctan); BeginSweep(0,360,10,0); {main circle} Locus(0",0"); Poly(0",0", 9",0", 9",5", 7",5", 7",2", 0",2", 0",0"); EndSweep; s1:=LNewObj; Set3DRot(s1,90,0,0, 0",0",0"); BeginSweep(0,360,22.5,0); {indented circle} Locus(0",0"); Poly(0",0", 1",0", 1",0.75", 0",0.75", 0",0"); EndSweep; s2:=LNewObj; Move3DObj(s2,0",-9",2"); subtract:=SubtractSolid(s1,s2,s3); DelObject(s1); DelObject(s2); BeginXtrd(-0.75",0.75"); {arch} Poly(-6.75",0", -5.25",0", -5.25",10.5", 5.25",10.5", 5.25",0", 6.75",0", 6.75",12", -6.75",12", -6.75",0"); EndXtrd; a1:=LNewObj; Set3DRot(a1,90,0,0, 0",0",0"); Move3DObj(a1,0",0",2"); BeginXtrd(-0.75",0.75"); {arch} Poly(-6.75",0", -5.25",0", -5.25",10.5", 5.25",10.5", 5.25",0", 6.75",0", 6.75",12", -6.75",12", -6.75",0"); EndXtrd; a2:=LNewObj; Set3DRot(a2,90,0,90, 0",0",0"); Move3DObj(a2,0",0",2"); addition:=AddSolid(a1,a2,a3); DelObject(a1); DelObject(a2); FillFore(cgreen);FillBack(cgreen); part1:=NIL; BeginXtrd(-0.5",0.5"); {side triangles} Poly(0",0", 1.5",0", 0",3.5", 0",0"); EndXtrd; part1:=LNewObj; Set3DRot(part1,90,0,0, 0",0",0"); Move3DObj(part1,8.9",0",0"); Set3DRot(part1,0,0,15, 0",0",0"); FOR count:=1 to 11 DO BEGIN part2:=NIL; part2:=HDuplicate(part1,0",0"); Set3DRot(part2,0,0,count*30, 0",0",0"); END; FillFore(crust);FillBack(crust); BeginSweep(0,360,22.5,0); {post collar} Locus(0",0"); Rect(0.3",0", 0.55",2"); EndSweep; Set3DRot(LNewObj,90,0,0, 0",0",0"); Move3DObj(LNewObj,0",0",2"); BeginSweep(0,360,22.5,0); {post} Locus(0",0"); Poly(0",0", 0.25",0", 0.25",14", 0",14", 0",0"); EndSweep; Set3DRot(LNewObj,90,0,0, 0",0",0"); Move3DObj(LNewObj,0",0",2"); BeginSweep(0,360,10,0); {wheel ring} Locus(0",0"); Oval(1.625",-0.375", 2.375",0.375"); EndSweep; Set3DRot(LNewObj,90,0,0, 0",0",0"); Move3DObj(LNewObj,0",0",16"); BeginXtrd(-0.25",0.25"); {wheel ribs} Poly(0.783",1.857", 1.217",1.607", 0.289",0.000", 1.217",-1.607", 0.783",-1.857", -0.144",-0.250", -2.000",-0.250", -2.000",0.250", -0.144",0.250"); EndXtrd; Move3DObj(LNewObj,0",0",16"); FillFore(cgrey);FillBack(cgrey); part1:=NIL; BeginXtrd(-1",1"); RegularPolygon(0",0",12.7,6,1); SetPolyClosed(LNewObj,TRUE); EndXtrd; part1:=LNewObj; Set3DRot(part1,90,0,0, 0",0",0"); Move3DObj(part1,6",0",13.25"); part2:=NIL; part2:=HDuplicate(part1,0",0"); Set3DRot(part2,0,0,90, 0",0",0"); part2:=NIL; part2:=HDuplicate(part1,0",0"); Set3DRot(part2,0,0,180, 0",0",0"); part2:=NIL; part2:=HDuplicate(part1,0",0"); Set3DRot(part2,0,0,270, 0",0",0"); BeginGroupN(armg); BeginXtrd(0",6"); {arm} Rect(-0.5",-0.5", 0.5",0.5"); EndXtrd; SetFillFore(LNewObj,cblue);SetFillBack(LNewObj,cblue); BeginSweep(0,360,10,0); {nubbin} Locus(0",0"); IF PNUBSHAPE='Pointed' THEN Poly(0",0", nub,0", nub,0.5", 0",2", 0",0"); IF PNUBSHAPE='Rounded' THEN BEGIN BeginPoly; MoveTo(0.000",0.000"); LineTo(nub,0.000"); Add2dVertex(nub,nub+0.500",3,nub); LineTo(0.000",nub+0.500"); LineTo(0.000",0.000"); EndPoly; END; {rounded} IF PNUBSHAPE='Stepped' THEN Poly(0",0", nub,0", nub,0.5", nub/2,0.5", nub/2,1", 0",1", 0",0"); EndSweep; SetFillFore(LNewObj,cred);SetFillBack(LNewObj,cred); Set3DRot(LNewObj,90,0,0, 0",0",0"); Move3DObj(LNewObj,0",0",6"); EndGroup; {armg} Set3DRot(armg,0,90-armang,0, 0",0",0"); Move3DObj(LNewObj,6.25",0",9"); part1:=NIL; part1:=armg; part2:=NIL; part2:=HDuplicate(part1,0",0"); Set3DRot(part2,0,0,90, 0",0",0"); part2:=NIL; part2:=HDuplicate(part1,0",0"); Set3DRot(part2,0,0,180, 0",0",0"); part2:=NIL; part2:=HDuplicate(part1,0",0"); Set3DRot(part2,0,0,270, 0",0",0"); PopAttrs; END; Run(VWChallenge);
  16. Okay, so, if anyone does want to have a go at it, here is the final object with some reference dimensions. I'll post my code in the next comment.
  17. With the film industry shut down right now, I am full of bandwidth!
  18. I do indeed intend on selling some of the stuff I have made. I'm trying to get them "beta tested" right now, and then I need to figure out how to build a selling platform, in which case I might contact you and some others about how you set up your sales portals. I don't think I intend to go so far as to lock the plugins to a serial number (even thought that would probably lose a few sales), because I have no idea how that would even work and it seems daunting.
  19. So, this is an object full of random parts that I'm thinking about using. I'll spit out the code sometime tonight and provide some more info.
  20. A lot of the PIOs I make in Vectorscript are for building objects I use extensively, but need to change depending on inputted variables. I have my way of coding the construction of those objects, but I'm wondering if whatI'm doing is best practice, or if there are ways I haven't thought of. I have learned so much from this forum, I thought it might be fun to see how others might code the building of a mildly complex object. The attached picture is of a lighting stand that is built entirely in Vectorscript using a series of sweeps, extrudes, Solid Additions, Solid Subtractions, etc. It works exactly as planned. But, is it done "right"? Would anyone be interested in a quick little "challenge" to have a provided object that needs to be built in Vectorscript using a few different methods? Nothing nearly as complicated as the attached stand, but using a lot of the same ideas. Something that others could look at and learn from or maybe find out how what they are currently doing isn't the most efficient way? If so, I'll whip up a little example object and post it here.
  21. I was days away from asking this exact question (except not in 2024). I have never created an encrypted version of a plugin, but as I plan on distributing soon, I need to know how to do that.
  22. I have a layer called "Titleblock" which contains show logos of varying sizes for different sheets, and various blocks for keys, notes, etc. I can update the stuff in that design layer, and then it reflects in every viewport that goes with my title blocks. Not automatic for title blocks themselves, but versatile for lots of different situations.
  • Create New...