This seems to work with or without using intersect_with
model = Sketchup.active_model
entities = model.entities
entities.clear!
#Create a group to collect all entities for base cube
basegroup=entities.add_group
basegroupentities=basegroup.entities
base_trans=basegroup.transformation
p1 = Geom;;Point3d.new(0, 0, 0)
p2 = Geom;;Point3d.new(9, 0, 0)
p3 = Geom;;Point3d.new(9, 4, 0)
p4 = Geom;;Point3d.new(0, 4, 0)
points = [p1,p2,p3,p4]
base = basegroupentities.add_face points
base.reverse! if base.normal.z < 0
base.pushpull 1
cutgroup = entities.add_group()
cut_trans = cutgroup.transformation
cutgroup.entities.add_3d_text('Bob', TextAlignCenter, "Arial", true, false, 3.0, 0.0, 0.0, true, 1)
transform = Geom;;Transformation.new(Geom;;Point3d.new(0.5,0.5,0))
cutgroup.transform! transform
#intersections = cutgroup.entities.intersect_with true, cut_trans, basegroup.entities, base_trans , true, basegroup
basegroup.explode
dmp=cutgroup.explode;#erase the top and bottom of the letters
dmp.each{|f| f.erase! if f.is_a?(Sketchup;;Face) && f.normal.z.abs>0.5}
#add faces to 'holes' in the letters
dmp.each{|e| e.find_faces if e.is_a?(Sketchup;;Edge) && e.faces.length==1}
model.active_view.zoom_extents