You are not logged in.
Pages: 1
It is unfortunate, I expected to see support generator working better on MAC at-least compare to Linux.
Actually one of the reasons we have not worked on support generator earlier was we have not expect WebGL works this good. But still here and there we see the issues.
Hopefully WebGL get used by more applications so these kind of bugs get sorted out soon.
have you considered using Three.js ?
https://github.com/mrdoob/three.js/
I believe it is a type of Binary logic or Boolean Logic, it's pretty easy to implement in most programming languages. You can even do this with Excel in the formula box.
EDIT:
@TIMBOLOGIST it's possible to do what you want manually, but would be a real pain to make it automated, especially if you want it to be "content aware".
Let's say you want to have three different layer heights for a soldier model.
100u layer height for all layers below his tool belt
20u layer for his tool belt and gun
50u for chest
20u for head
you would need to slice the model 3 times, convert to PNGs, pull just the layers you need to a new folder, zip them, upload them, create a formula for dynamic cure time to accommodate for what layer is at layer height, create a formula for dynamic lift and lower.
this would always need to be changed for every model.
@Shahin, I think it may actually be possible to automate the slicing if you nest the images in to named folders
Folder - Plate 1
-------------------Folder -20
--------------------------------------1.png
--------------------------------------2.png
-------------------------------------- ....
-------------------Folder -50
--------------------------------------1.png
--------------------------------------2.png
-------------------------------------- ...
-------------------Folder -100
--------------------------------------1.png
--------------------------------------2.png
-------------------------------------- ...
Then add a field "Dynamic Layer Height" which is a comma separated list of micron sizes and some new variables for setting and getting in formulas
[[SetDynamicHeight 20]] to set it, and [[DynamicHeight]] to check it
then be used like this for cure time
{(
([[DynamicHeight]]==20)*5+([[DynamicHeight]]==50)*7+([[DynamicHeight]]==100)*9
)}
and for setting Dynamic Layer Height in Before Each Layer field
{(
(([[LayerNumber]]<=100)*[[SetDynamicHeight 100]])+(([[LayerNumber]]>=101)*[[SetDynamicHeight 50]]*([[LayerNumber<250))+(([[LayerNumber]]>=251)*[[SetDynamicHeight 20]])
)}
of course, whenever you set the new DynamicHeight it adjusts the [[LayerPosition]].
What size model is that? It appears that there's a large flat surface that you're trying to print and those are notoriously difficult with Bottom up printers. Have you considered using incredibly slow lift speeds for that section? something like 1mm per minute might leave more detail, if you're noticing it's separating.
Just note that you wont see any detail smaller than your XY res. consider it like this
you can try using this template, substituting your own values for the place holders. This should be a fair starting point and replicates a similar function to how Kudo3Ds determines cure time by layer height.
{(
(([[LayerNumber]]<=21)*Burn_in_Cure_Time)+
(([[LayerNumber]]>=22)*Support_Cure_Time*([[LayerNumber]]<=35))+
(([[LayerNumber]]>=36)*Detail_Point_Cure_Time*([[LayerNumber]]<=40))+
(([[LayerNumber]]>=41)*Layer_Cure_Time)
)}
if you want to use a formula for calculating who long you should cure based on area you'll need to do some experimentation.
first check to see how long it takes to cure a small area (5 mm x 5 mm for example) then check to see how long it takes to cure a much larger area ( 15 x 15, maybe).
if you can provide me with observed cure times and size of cured slices I can whip up a formula for you like I showed above.
If your curious, this is the formula I've settled on for most of my printing lately.
FunToDo Deep Black Resin
50 micron z
65 micron xy
without projector bulb compensation (~60% life left)
{(([[LayerNumber]]<=3)*45)+(ceil(2*(-1.345 * log([[TotalSolidArea]]) + 15.5))/2)}
with projector bulb compensation
{(([[LayerNumber]]<=3)*45)+(ceil(2*(-1.345 * log([[TotalSolidArea]]) + 13))/2)}
I have an issue with how to write the formulas for this especific part, i divided the printing process on 5 steps, i need to adjust the formulas, our fellows could help me with some example? thanks
what are you going to base splits on? layer position, current height, LargestArea, SmallestArea, something else?
I can write out a couple of templates if you give me an idea of how you want it broken up.
fair point Shahin.
Though, it is less about sturdy structure and more about sturdy connection to the model. With this setup it might be possible to use smaller tip diameter for supports, this should mean cleaner models.
we may have an alternative to a time based mask. Shahin, is it possible to have models loaded in with supports, and then just the support structures? this way we get stronger supports while keeping detail of the model.
look at it like this timeline:
Layer 1 - exposes both support structure and model
Layer 2 - exposes just support structure
cycle z axis
Layer 3 - exposes both support structure and model
Layer 4 - exposes just support structure
cycle z axis
as far as I know, no system I've ever heard of implements that for SLA, however it is pretty similar to how FDM printers handle multiple materials.
It's less dynamic than going completely on surface area, but at least it ensures sturdy supports.
name the slices with prefix to differentiate them ie model-1.png, support-1.png, or seperate them into 2 folders, create some logic that only requires you to display support slices if they exist.
I've taken to using a slightly better solution. the B9 Creator Software has a useful Hatching pattern support base.
new workflow is
1.) Import into Blender to smooth model (Optional)
2.) import into to Netfab Basic or Print Studio to repair model. Not sure which is better at this point, and most models don't need it.
3.) import into meshmixer to optimize orientation
4.) import into B9 Creator Software for support and foundation. (the support doesn't branch, similar to Creation Workshop supports)
5.) Import into Asiga Stomp for slicing
6.) import into NanoDLP
7.) Print.
Hi Sacha, in the Setup Panel there are some options for the servo.
if you directly attach the servo to the Pi you can set these to whatever Open and Close values move your shutter to the right place. This takes some trial and error to get right.
here are my settings for starters.
Let me know how your results turn out, I'm happy someone else was able to get some use from my research.
So, it must be said, that while my formula works for ~80% of my prints, it can sometimes under cure the support structure. so if your prints have a support structure with hundreds of tiny dots and one huge [LargestArea] it's not going to be as useful. and for that I would think just using the Pixel dimming feature might be better, but I've never managed to get a decent print while using it.
Ideally, if we could load up the model file or slices, and then load up the support structure model or slices and then print both of them with alternating times, similar to how the calibration feature works that would give us the best of both worlds: Higher curing times for the small pin prick supports that don't need detail, and a slightly under cured model to preserve the most detail.
but, if your interested in my cure formulas, I whipped up a google spreadsheet with everything in it. Only change data in the blue cells.
https://drive.google.com/open?id=1OMntn … nJwcsa0btY
the process is fairly simple to determining your magic number. Print a cube or other object with a singular, known layer size(you can even use the calibration function), find the minimum cure time for that layer size and input it and the [LayerArea] or [LargestArea] into the spreadsheet. (I find using [LargestArea] makes more sense)
once thats worked out, you can just copy the formula to the right and paste it right into the Dynamic Cure time in your profile.
Note: LayerArea and LargestArea are calculated when the layers get processed by Nanodlp, because of that, the 2 functions are only available for use when you upload your model as a STL or a slice file.
I replaced the Red calibration pattern with a white grid pattern
https://drive.google.com/file/d/0B9o6me … sp=sharing
I show this pattern for 30-50 seconds and cycle the z axis.
The pattern seems to add more surface area to the base layers and doesn't use much resin. so far seems like it could work well for people with issues with build plate adhesion.
I'm now testing a formula that's based more on the Kudo3d method of cure rate based on layer, not on area.
this is my Dynamic Cure Time formula
{((([[LayerNumber]]<6)*15+(([[LayerNumber]]/[[TotalNumberOfLayers]])<2)*15*([[LayerNumber]]/[[TotalNumberOfLayers]])>0))+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<11)*15*([[LayerNumber]]/[[TotalNumberOfLayers]])>1))+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<26)*4*([[LayerNumber]]/[[TotalNumberOfLayers]])>10))+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<51)*3*([[LayerNumber]]/[[TotalNumberOfLayers]])>25))+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<101)*2*([[LayerNumber]]/[[TotalNumberOfLayers]])>50)))}
the first 5 layers, and any layers less than 2% of total layers get the burn in cure time of 15+15 seconds. then 1% to 10% get a 15 second time, then 11% to 25% get a 4, 26% to 50% get 3 and the last half gets my normal cure rate of 2 seconds.
this along with a dynamic lift rate formula make for some decent results.
G1 Z{[[LayerPosition]]+[[ZLiftDistance]]}
F{((([[LayerNumber]]/[[TotalNumberOfLayers]])>0)*25)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>10)*5)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>20)*10)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>30)*15)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>40)*10)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>50)*10)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>60)*10)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>70)*10)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])>80)*10))};
or alternatively something like this would function similarly.
{((([[LayerNumber]]/[[TotalNumberOfLayers]])<101)*2)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<75)*1)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<50)*2)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<25)*5)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<10)*10)+
(([[LayerNumber]]/[[TotalNumberOfLayers]])<2)*30))}
Hi All,
so far this is the closest I've managed to get a dynamic cure time. As for with most things found in nature, the rate is logarithmic at it's core, so I tried to capture that in the formula. Larger area requires less energy and there for less time, smaller areas more energy so more time.
this is my cure formula for a .04 mm layer height
{(([[LayerNumber]]<6)*12.25)+(([[LayerNumber]]<76)*6.125)+((912/[[LargestArea]])<2)*2+((912/[[LargestArea]])>4.1)*4.1+((912/[[LargestArea]])>2)*((912/[[LargestArea]]))*((912/[[LargestArea]])<4.1)}
this gives me a range of cure times with from 2 seconds up to 4.1 for my normal layers, and ~20 seconds for my first 5 layers ~ 8 seconds for the next 70 layers.
the "912" is calculated by measuring minimum cure time for an area. so in my case the area was 456 mm^2 and then multiplying that number by the cure time.
it can really be broken down like this
(Known Cure time*Known Cure Area)/Layer Area
then add in some hard upper and lower boundaries so you don't cure a small area for too long, or a large area for too little.
Note: Make sure Pixel Dimming is off, it kind of works against dynamic cure.
Install these
sudo apt-get install ssmtp mailutils mutt
and make sure you have your raspi cam installed.
update /etc/ssmtp/ssmtp.conf to the following replacing the AuthUser with your email address you want to use and the AuthPass with its password
root=postmaster
mailhub=smtp.gmail.com:587
AuthUser=[USERNAME@GMAIL.COM]
AuthPass=[PASSWORD]
useSTARTTLS=YES
# The full hostname
hostname=rasbperrypi
turn on access for less secure apps here ( I suggest creating a burner account for this! )
https://www.google.com/settings/security/lesssecureapps
create a folder to store the photo in, I used:
mkdir "/home/pi/camera"
now for the good part place this code in your Execute - End of Print section.
raspistill -n -w 1296 -h 972 --timeout 700 --awb sun -o "/home/pi/camera/out.jpg"; sudo chmod 664 "/home/pi/camera/out.jpg"; echo "Your print has finished" | sudo mutt -a "/home/pi/camera/out.jpg" -- 1234567890@vzwpix.com; sudo rm -r "/home/pi/camera/out.jpg"
make sure the part is in view, adjust the timeout to give you more time to move the part.
number 1234567890@vzwpix.com only works for Verizon, if your using another provider you can try this site
http://www.slipstick.com/outlook/send-s … ar-phones/
alternatively, you can just as easily replace the ##@vzwpix.com with any email address.
Pages: 1