%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% phiCAD2NC %%% %%% Demo %%% %%% Michael Sintek First Version: August 1991 %%% %%% Harold Boley, Markus Perling Current Version: June 1997 %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% show(Headline,X) :- rf-format("~%~A~%~%",Headline), pretty-print(X), rf-terpri(), rf-terpri() & X. headline(Headline,X) :- rf-format("~%~A~%~%",Headline) & X. cwp2anc(Cwp) :& headline("ANC program (for Abstract NC-lathe turning):", gen-anc-plan(headline("Qualitative simulation:", show("Skeletal plan:", skeletal-plan(show("Classified workpiece:", Cwp)))))). rng2cwp(Wp-rng) :& cwp-rng2p(show("Classified workpiece in rng notation:", class-feat(show("Workpiece in rng notation (for raw CAD data):", Wp-rng)))). cad2nc(Cad) :& new-once(cwp2anc(rng2cwp(Cad))). exa() :& [rng[0,0,25], % A rng[40,25,20], % B rng[50,20,25], % C rng[60,40,40], % D rng[70,40,30], % E rng[110,30,20], % F rng[120,20,25], % G rng[150,25,0]]. % H exl() :& [rng[0,0,25], % A rng[40,25,20], % B rng[50,20,25], % C rng[60,40,40], % D rng[70,40,0]]. % E exr() :& [rng[0,0,40], % A rng[70,40,30], % E rng[110,30,20], % F rng[120,20,25], % G rng[150,25,0]]. % H exm() :& [rng[10,0,20], % a rng[40,20,20], % b rng[60,40,40], % c rng[70,40,30], % d rng[110,30,20], % e rng[120,20,25], % f rng[150,25,0]]. % g % | c d % 40 +---+ % | /. | % 35 / . | % | / . | e % 30 / . +---------------+ % | / . . | f g % 25 / . . | +-----------+ % | a / . . | | | % 20 +-----------+ b . . +---+ | % | | . . . . . | % 15 | . . . . . | % | | . . . . . | % 10 | . . . . . | % | | . . . . . | % 5 | . . . . . | % | | . . . . . | % 0_______________________________________________________________ % 010 020 030 040 050 060 070 080 090 100 110 120 130 140 150