proc ICON_sine_voltage args {
  icon_setup $args {{origin {0 0}} {orient R0} {name V} {dc_voltage 0V} {peak_voltage 1V} {frequency 1K}}
icon_term -type inout -origin {0 40} -name v_minus
icon_term -type inout -origin {0 -40} -orient RY -name v_plus
  icon_line 0 -20 0 -40
  icon_line 0 40 0 20 0 20
  icon_property -origin {-200 180} -type fixed -name spice -text {$name $v_plus $v_minus sin('$dc_voltage' '$peak_voltage' '$frequency')}
  icon_property -origin {-100 70} -type user -name name -default V
  icon_property -origin {-100 90} -type user -name dc_voltage -default 0V
icon_property -origin {30 0} -label {peak_voltage = $peak_voltage}
  icon_arc -20 -20 20 20 -start 0 -extent 359
icon_property -origin {-20 -30} -anchor e -label {$name}
  icon_arc -20 -10 0 10 -start 0 -extent 181
  icon_arc 0 -10 20 10 -start 180 -extent 181
icon_property -origin {30 -20} -label {dc_voltage = $dc_voltage}
icon_property -origin {30 20} -label {frequency = $frequency}
  icon_property -origin {-100 110} -type user -name peak_voltage -default 1V
  icon_property -origin {-100 130} -type user -name frequency -default 1K
}

