You can draw arbitrary shapes for cycle~, it uses a sine wave by default but it can be anything, just make a buffer~ with 512 samples and draw into it using waveform~. All the info you need is in the help files for each :)
As I've been very vocal on this forum recently, I'd like to sing leafcutter's praises for this gen code, which allows one to vary the width between cycles. I hope he doesn't accuse me of being an in-formant
however, i´d like to second seejayjames suggestion to start from cycle~ or wave~ and not from these modern all-in-one oscillator objects, which, in my opinion, are only getting you sidetracked from the fact that maxmsp is a programming language (and not a modular synth).
it will cause some headache at first when you build a PWM-able cycle-based oscillator yourself, but you will end up with a solution which works with ANY thinkable waveform - plus you will learn a lot from doing so.