This paper presents a planner that can automatically find an optimal assembly sequence for a dual-arm robot to assemble the soma blocks. The planner uses the mesh model of objects and the final state of the assembly to generate all possible assembly sequence and evaluate the optimal assembly sequence by considering the stability, graspability, assemblability, as well as the need for a second arm. Especially, the need for a second arm is considered when supports from worktables and other workpieces are not enough to produce a stable assembly. The planner will refer to an assisting grasp to additionally hold and support the unstable components so that the robot can further assemble new workpieces and finally reach a stable state. The output of the planner is the optimal assembly orders, candidate grasps, assembly directions, and the assisting grasps if any. The output of the planner can be used to guide a dual-arm robot to perform the assembly task. The planner is verified in both simulations and real-world executions.