Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E是美國參數(shù)化公司(PTC)研制的CAD/CAM軟件包,,Pro/TOOLKIT是PTC公司專門提供的Pro/E二次開發(fā)工具,。在 Pro/TOOLKIT中,,PTC向用戶提供了大型的C語言函數(shù)庫,,通過調(diào)用這些底層函數(shù),用戶能方便,、安全地訪問Pro/E的數(shù)據(jù)庫及內(nèi)部應(yīng)用程序,,進行二次開發(fā),擴展一些特定的功能,。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計
從功能而言,,系統(tǒng)各模塊只是對Pro/E的主要功能利用面向?qū)ο蟮乃枷胨鞯倪M一步封裝,其目的在于簡化人機交互的次數(shù),,使系統(tǒng)更易于操作和學習,。各模塊間的相互關(guān)系如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
所有模塊均為各自獨立的Pro/TOOLKIT應(yīng)用程序,,模塊間的通訊由Pro/TOOLKIT提供的接口函數(shù)實現(xiàn),,相關(guān)參數(shù)的傳遞利用Pro/TOOLKIT函數(shù)和相關(guān)指針實現(xiàn)。
整個零件的設(shè)計和加工信息都存儲在Pro/E的數(shù)據(jù)庫中,,由于Pro/E是基于單一數(shù)據(jù)庫的軟件系統(tǒng),,因此在任一處的修改都將引起所有相關(guān)參數(shù)的變化,這使模型的修改非常方便,。
當系統(tǒng)在仿真環(huán)節(jié)發(fā)現(xiàn)問題時,,用戶可以通過修改工藝設(shè)置或直接修改產(chǎn)品幾何模型,然后再經(jīng)仿真環(huán)節(jié)驗證設(shè)計的合理性,,在加工軌跡仿真結(jié)果符合設(shè)計要求之后,,即可經(jīng)后處理模塊生成NC加工代碼。
2 各功能模塊的設(shè)計及其實現(xiàn)
2.1 造型模塊
該模塊的功能是實現(xiàn)零件的結(jié)構(gòu)設(shè)計,其目標在于生成一個存儲零件整體信息的文件,。
該模塊的核心是建立特征庫,。首先依據(jù)生產(chǎn)的實際情況,,按照GT技術(shù)的方法對零件的結(jié)構(gòu)及加工條件進行分析和歸納,,最終確定特征的種類和數(shù)量。特征的分類如圖2所示,。
圖2 特征分類圖
幾何特征的建立是采用Pro/E提供的用戶自定義特征功能實現(xiàn)的 [2,,3]。對每個幾何特征的建立過程是類似的,,即首先手工構(gòu)建產(chǎn)品模型,,將要創(chuàng)建的特征附著在模型的上面,然后選擇菜單項進行幾何特征的創(chuàng)建,。一個幾何特征的定義中要包括參考基準,、可變尺寸及可變尺寸的記號,通過在程序中修改可變參數(shù)的數(shù)值,,即可獲得所需要的特征衍生件,,在建模的過程中也可利用鼠標點選標注尺寸,利用尺寸驅(qū)動技術(shù)修改這些參數(shù),。對非幾何特征則以特征碼的方式存放,,最后將所有的特征以相同的格式(.gph)存放在同一根目錄下,形成特征庫 (UDFLibrary),,作為造型的基本工具,。
在應(yīng)用中,首先利用特征庫進行幾何型的建立,,然后根據(jù)對各幾何特征加工要求的不同,,將非幾何特征附加到各特征上,從而形成對零件信息的完整描述,。在幾何特征和非幾何特征之間通過指針的方式實現(xiàn)通信,。
模型的建立采用與Pro/E系統(tǒng)建模思想完全吻合的特征拼裝技術(shù)。首先選擇幾何模型的主特征,,并以其作為整個模型的父特征,,其余特征依次從特征庫中選取并附加到主特征上,形成模型的基本形狀,;然后對各特征的可變尺寸根據(jù)設(shè)計要求進行修改,,完成零件的幾何模型的建立;最后,,實現(xiàn)非幾何特征的附加,。方法是:1)用鼠標選取定制菜單中“添加非幾何特征”項,彈出設(shè)置對話框并將其固定在桌面上;2)依次用鼠標選取幾何特征,,使它的相關(guān)指針項指向?qū)υ捒颍?)對對話框中各項參數(shù)進行賦值,,這個過程也即對選中特征相關(guān)參數(shù)的賦值。至此,,零件的建模工作結(jié)束,,將所有的設(shè)置以文件的方式存放在指定位置,作為 CAPP部分的輸入?yún)?shù),。
2.2 工藝處理模塊及加工仿真
工藝處理模塊的主要功能是CAM對系統(tǒng)加工參數(shù)的自動獲取,,其目標是在加工仿真完成后生成刀位數(shù)據(jù)文件,以其作為后處理的輸入,。其基本構(gòu)成及相互關(guān)系如圖3所示,。
圖3 工藝處理模塊框圖
顯然,制造模型的建立是整個工作的起點,,首先制造模型建立模塊通過自身的指針函數(shù)讀取造型模塊所產(chǎn)生的文件,,然后根據(jù)毛坯選擇規(guī)則庫的相關(guān)規(guī)則自動從毛坯庫中選取毛坯,并自動完成制造模型的建立,,從而實現(xiàn)了制造模型建立的完全自動化操作,。
工藝規(guī)劃為該部分的核心,也是整個二次開發(fā)的難點所在,。鑒于Pro/E系統(tǒng)本身缺乏CAPP的信息集成,,用戶對各加工特征的設(shè)定、加工方法的選擇,、刀具的選擇,、切削參數(shù)的設(shè)定等均需人機交互完成,這些操作對操作人員的要求高,、交互復雜,,是限制Pro/E的CAM功能廣泛應(yīng)用的主要原因之一,為此,,系統(tǒng)提出了如下的解決方案,。
首先用交互的方式輸入工藝裝備信息,如夾具,、機床信息等,。然后進入推理環(huán)節(jié),推理步驟為:1)讀取造型文件,,根據(jù)針對每個特征所建立的工藝推理規(guī)則自動產(chǎn)生每個特征加工的工序,;2)結(jié)合制造模型的輸出信息,自動對所有特征的加工工序進行整合和排序,,生成整個零件加工的刀位文件,。其中,在推理環(huán)節(jié)完成粗加工、半精加工,、精加工等各工序的加工參數(shù),、刀具選擇、切削參數(shù)的確定,,在排序過程中確定加工的退刀面,、走刀方式和進退刀方式、走刀次數(shù)等,。將推理的結(jié)果輸入Pro/NC CHECK模塊進行刀具軌跡的仿真,,以檢查設(shè)置是否合理,,是否出現(xiàn)干涉等情況,。用戶可以通過修改幾何模型或修改加工參數(shù)的設(shè)置使仿真結(jié)果更符合設(shè)計要求。在仿真結(jié)果滿足加工要求后,,即生成最終的刀位文件,。
2.3 后處理
利用Pro/E的后處理功能模塊,將刀位文件轉(zhuǎn)化為機床能夠識別的NC代碼,。
3 用戶界面的開發(fā)
因為Pro/E一直是以工作站的UNIX作為開發(fā)和使用環(huán)境,,所以界面風格更類似于XWINDOWS,而不像AutoCAD那樣與Windows 風格完全一致,,同時Pro/E提供的對話框控件也非常有限,。為此,系統(tǒng)采用VC++6.0的MFC類庫對用戶界面進行二次開發(fā)[1,,3],,同時也利用 VC++開發(fā)相關(guān)的數(shù)據(jù)庫,開發(fā)的實質(zhì)是在Pro/E系統(tǒng)中調(diào)用MFC應(yīng)用程序,。在開發(fā)中使用動態(tài)連接庫(DLL)方式實現(xiàn)Pro/E系統(tǒng),、Pro /TOOLKIT應(yīng)用程序、MFC應(yīng)用程序三者之間的通信,,因為通信是通過直接調(diào)用函數(shù)實現(xiàn)的,,故有執(zhí)行速度快的特點[4]。三者之間的相互關(guān)系如圖4所示,。
圖4 Pro/TOOLKIT與MFC連接的示意圖
在系統(tǒng)中為每個Pro/TOOLKIT應(yīng)用程序都開發(fā)了對話框界面,,在應(yīng)用程序加載到Pro/E系統(tǒng)后,點擊定制菜單項即可調(diào)用二次開發(fā)模塊及其界面,,從而使設(shè)計過程更加符合設(shè)計人員的思維習慣,。
4 實例
為說明系統(tǒng)的運行情況,制作了一個階梯軸的例子,,這樣的階梯軸由形狀特征(圓柱體和圓錐體)經(jīng)過多次調(diào)用拼裝而成,,造型過程不再論述。在修改過程中,通過添加不同的非幾何特征,,可以得到不同的加工方案,,其運行框圖如圖5所示。
圖5 零件加工流程圖
5 結(jié)論
在充分利用Pro/E系統(tǒng)提供的資源的情況下,,應(yīng)用Pro/E提供的二次開發(fā)工具Pro/TOOLKIT以及VC++6.0集成開發(fā)環(huán)境實現(xiàn)了 CAD/CAPP/CAM的集成,,簡化了Pro/E系統(tǒng)CAM模塊的操作,為專用CAD/CAPP/CAM的集成研究提供了一定的經(jīng)驗,。
致謝:本文得到蘭州理工大學特色研究方向基金的資助,,在此表示感謝。
參考文獻:
[1] Kruglinski DJ. Visual C++6.0 技術(shù)內(nèi)幕[M],。北京:希望電子出版社,,1998.
[2] 黃圣杰,張益三.Pro/Engineer 2001高級開發(fā)實例[M],。北京:電子工業(yè)出版社,,2002.
[3] 賴朝安,李振南,,孫延明,,等.Pro/E二次開發(fā)的關(guān)鍵技術(shù)[J].機械設(shè)計與制造,2001,,(1):43 45.
[4] 鐘建琳.Pro/Engineer數(shù)控加工實用教程[M].北京:機械工業(yè)出版社,,2002.
[5] 王 政,黨軍峰,,許文濤.基于Pro/E的WFCAD系統(tǒng)菜單的開發(fā)[J].甘肅工業(yè)大學學報,,2003,29(1):26 28.
[6] 胡赤兵,,閻樹田,,鄔再新.齒輪加工參數(shù)自動編程[J].機械工藝師,1998,,(7):18 19.
[7] 楊 萍,,張淑珍,李鶴岐,,等.基于Pro/E軟件平臺的混流式水輪機轉(zhuǎn)輪葉片形狀擬合及實體模型的建立[J].機械設(shè)計與制造,,2002,(6):62 63.