This is the start of an application note about creating arbitrary output waveforms with analog outputs. For square or rectangular waveforms you would typically use a timer (digital output).
First, determine if the bandwidth of the DAC (digital to analog converter, or analog output) channel hardware can handle your desired maximum signal frequency. As of this writing, the -3 dB cutoff frequency of U3 and U6 is about 16 Hz and 500 Hz respectively.
If the hardware can handle the signal frequency you want, the next question is whether you can update the DAC fast enough to build your desired waveform. You need to determine your required DAC update rate. Take the max signal frequency you want to make, and multiply it by how many updates per cycle you require (i.e. how smooth you need the signal to be).
The typical method of updating the DAC is command/response mode. Best case timing information can be found in Section 3.1 of the U3, U6, or UE9 Users Guide. For example, in Section 3.1 of the U3 Users Guide it says that with a USB high-high connection it takes about 0.6 ms to update one or both DACs, which is about 1600 updates/second. Whether you can make a program that can iterate a loop at that interval has to do with many factors.
The UE9 has a feature called Stream-DAC that allows DAC channels to be updated in stream mode. You specify a buffer of 1-128 update values, and the UE9 will step through this buffer (continuously rolling back to the start) sending each value to a DAC at the stream scan rate (which can be up to 50 kscans/second or even more).