⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 door.clp

📁 毕业设计时做的CLIPS生成UG模型代码的源代码
💻 CLP
📖 第 1 页 / 共 2 页
字号:



(defrule question1
	(declare (salience 280))
	=>
	(printout t "do you want to build a door-model? yes or no" crlf)
	(bind ?response1 (explode$ (readline)))
	(assert (answer1 ?response1)))



(defrule question2
	(declare (salience 270))
	(answer1 yes)
	=>
	(printout t "Is your door a single-door or a double-door? single or double" crlf)
	(bind ?response2 (explode$ (readline)))
	(assert (answer2 ?response2)))


(defrule question3
	(declare (salience 260))
	(answer1 yes)
	=>
	(printout t "what's your door's height? Unit:mm (for example:2000)" crlf)
	(bind ?doorheight (explode$ (readline)))
	(assert (doorheight ?doorheight)))

(defrule question4
	(declare (salience 250))
	(answer1 yes)
	=>
	(printout t "what's your door's Width? Unit:mm (for example:900)" crlf)
	(bind ?doorwidth (explode$ (readline)))
	(assert (doorwidth ?doorwidth)))



(defrule question5
	(declare (salience 240))
	(answer1 yes)
	=>
	(printout t "what's your door's thickness? Unit:mm (for example:25)" crlf)
	(bind ?doorthickness (explode$ (readline)))
	(assert (doorthickness ?doorthickness)))


(defrule question6
	(declare (salience 230))
	(answer1 yes)
	=>
	(printout t "what's your doorframe's Width? Unit:mm (for example:45)" crlf)
	(bind ?doorframewidth (explode$ (readline)))
	(assert (doorframewidth ?doorframewidth)))


(defrule question7
	(declare (salience 220))
	(answer1 yes)
	=>
	(printout t "what's your doorframe's length? Unit:mm (for example:45)" crlf)
	(bind ?doorframelength (explode$ (readline)))
	(assert (doorframelength ?doorframelength)))


(defrule question8
	(declare (salience 210))
	(answer1 yes)
	=>
	(printout t "How high is your doorknob? Unit:mm (for example:900)" crlf)
	(bind ?doorknobheight (explode$ (readline)))
	(assert (doorknobheight ?doorknobheight)))


(defrule question9
	(declare (salience 200))
	(answer1 yes)
	=>
	(printout t "Do you want to have windows in your door? yes or no" crlf)
	(bind ?windows (explode$ (readline)))
	(assert (windows ?windows)))


(defrule question10
	(declare (salience 190))
	(answer1 yes)
	(answer2 single)
	(windows yes)
	=>
	(printout t "How many windows do you want in your door? 1 or 2" crlf)
	(bind ?windowsNum (explode$ (readline)))
	(assert (windowsNum ?windowsNum)))


(defrule question11
	(declare (salience 180))
	(answer1 yes)
	(windows yes)
	=>
	(printout t "what's your window's width? Unit:mm (for example:300)" crlf)
	(bind ?windowwidth (explode$ (readline)))
	(assert (windowwidth ?windowwidth)))


(defrule question12
	(declare (salience 170))
	(answer1 yes)
	(windows yes)
	=>
	(printout t "what's your window's height? Unit:mm (for example:300)" crlf)
	(bind ?windowheight (explode$ (readline)))
	(assert (windowheight ?windowheight)))


(defrule question13
	(declare (salience 160))
	(answer1 yes)
	=>
	(printout t "Do you want to have upperwindows in your door? yes or no" crlf)
	(bind ?upperwindows (explode$ (readline)))
	(assert (upperwindows ?upperwindows)))


(defrule question14
	(declare (salience 150))
	(answer1 yes)
	(upperwindows yes)
	=>
	(printout t "what's your upperwindow's height? Unit:mm (for example:350)" crlf)
	(bind ?upperwindowheight (explode$ (readline)))
	(assert (upperwindowheight ?upperwindowheight)))


(defrule question15
	(declare (salience 140))
	(answer1 yes)
	(upperwindows yes)
	=>
	(printout t "what's your middleframe's height? Unit:mm (for example:50)" crlf)
	(bind ?middleframeheight (explode$ (readline)))
	(assert (middleframeheight ?middleframeheight)))


(defrule question16
	(declare (salience 130))
	(answer1 yes)
	(upperwindows yes)
	=>
	(printout t "what's your upperwindowframe's width? Unit:mm (for example:50)" crlf)
	(bind ?upperwindowframewidth (explode$ (readline)))
	(assert (upperwindowframewidth ?upperwindowframewidth)))


(defrule question17
	(declare (salience 125))
	(answer1 yes)
	=>
	(printout t "Please give me a path to place the DFA_FILE! (for example: f:\\MyDoor.dfa)" crlf)
	(bind ?path (explode$ (readline)))
	(assert (path ?path)))


(defrule step1
	(declare (salience 120))
	(answer1 yes)
	(doorheight ?doorheight)
	(doorwidth ?doorwidth)
	(doorthickness ?doorthickness)
	(doorframewidth ?doorframewidth)
	(doorframelength ?doorframelength)
	(doorknobheight ?doorknobheight)
	(path ?path)
	=>
	(open ?path door_set "w")
	(printout door_set "#! UG/KF 17.0" crlf)
	(printout door_set "DefClass: Door (ug_base_part);" crlf)
	(printout door_set "(Point Parameter) DoorOrigin: point(0,0,0);" crlf)
	(printout door_set "(Number Parameter) DoorHeight: " ?doorheight ";" crlf)
	(printout door_set "(Number Parameter) DoorWidth: " ?doorwidth ";" crlf)
	(printout door_set "(Number Parameter) DoorThickness: " ?doorthickness ";" crlf)
	(printout door_set "(Number Parameter) DoorFrameWidth: " ?doorframewidth ";" crlf)
	(printout door_set "(Number Parameter) DoorFrameLength: " ?doorframelength ";" crlf)
	(printout door_set "(Number Parameter) KnobHeight: " ?doorknobheight ";" crlf))


(defrule step2
	(declare (salience 110))
	(answer1 yes)
	(windows yes)
	(windowwidth ?windowwidth)
	(windowheight ?windowheight)
	(path ?path)
	=>
	(printout door_set "(Number Parameter) WindowWidth: " ?windowwidth ";" crlf)
	(printout door_set "(Number Parameter) WindowHeight: " ?windowheight ";" crlf))


(defrule step3
	(declare (salience 100))
	(answer1 yes)
	(upperwindows yes)
	(upperwindowheight ?upperwindowheight)
	(middleframeheight ?middleframeheight)
	(upperwindowframewidth ?upperwindowframewidth)
	(path ?path)
	=>
	(printout door_set "(Number Parameter) UpperWindowHeight: " ?upperwindowheight ";" crlf)
	(printout door_set "(Number Parameter) MiddleFrameHeight: " ?middleframeheight ";" crlf)
	(printout door_set "(Number Parameter) UpperWindowFrameWidth: " ?upperwindowframewidth ";" crlf))


(defrule step4
	(declare (salience 90))
	(answer1 yes)
	(answer2 single)
	(path ?path)
	=>
	(printout door_set "(Child) Door: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set "	Length; DoorThickness:;" crlf)
	(printout door_set "	Width; DoorWidth:;" crlf)
	(printout door_set "	Height; DoorHeight:;" crlf)
	(printout door_set "	Origin; DoorOrigin:;" crlf)
	(printout door_set "	};" crlf))


(defrule step5
	(declare (salience 80))
	(answer1 yes)
	(answer2 single)
	(windows yes)
	(windowsNum 1)
	(path ?path)
	=>
	(printout door_set "(Child) window: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set "	length; Doorthickness:;" crlf)
	(printout door_set "	width; WindowWidth:;" crlf)
	(printout door_set "	Height; WindowHeight:;" crlf)
	(printout door_set "	Origin; DoorOrigin: +" crlf)
	(printout door_set "	vector(0," crlf)
	(printout door_set "	(DoorWidth:-WindowWidth:)/2," crlf)
	(printout door_set "	DoorHeight:-child:height:-100);" crlf)
	(printout door_set "	Operation; Subtract;" crlf)
	(printout door_set "	Target; {Door:};" crlf)
	(printout door_set "	};" crlf))


(defrule step6
	(declare (salience 70))
	(answer1 yes)
	(answer2 single)
	(windows yes)
	(windowsNum 2)
	(path ?path)
	=>
	(printout door_set "(Child) window1: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set "	Length; DoorThickness:;" crlf)
	(printout door_set "	Width; WindowWidth:;" crlf)
	(printout door_set "	Height; WindowHeight:;" crlf)
	(printout door_set "	Origin; DoorOrigin: +" crlf)
	(printout door_set "	vector(0," crlf)
	(printout door_set "	(DoorWidth:-2*WindowWidth:)/3," crlf)
	(printout door_set "	DoorHeight:-child:height:-100);" crlf)
	(printout door_set "	Operation; Subtract;" crlf)
	(printout door_set "	Target; {Door:};" crlf)
	(printout door_set "	};" crlf)
	(printout door_set "(Child) window2: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set "	Length; DoorThickness:;" crlf)
	(printout door_set "	Width; WindowWidth:;" crlf)
	(printout door_set "	Height; WindowHeight:;" crlf)
	(printout door_set "	Origin; DoorOrigin: +" crlf)
	(printout door_set "	vector(0," crlf)
	(printout door_set "	(DoorWidth:-2*WindowWidth:)" crlf)
	(printout door_set "	*2/3+WindowWidth:," crlf)
	(printout door_set "	DoorHeight:-child:height:-100);" crlf)
	(printout door_set "	Operation; Subtract;" crlf)
	(printout door_set "	Target; {Door:};" crlf)
	(printout door_set "	};" crlf))


(defrule step7
	(declare (salience 60))
	(answer1 yes)
	(answer2 single)
	(upperwindows yes)
	(path ?path)
	=>
	(printout door_set "(Child) door_frame: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set " 	Length; DoorFrameLength:;" crlf)
	(printout door_set "	Width; DoorWidth: + 4.0 + 2.0 * 35.0;" crlf)
	(printout door_set " 	Height; DoorHeight: + 3 * 2.0" crlf)
	(printout door_set "	+ MiddleFrameHeight: - 20.0" crlf)
	(printout door_set "	+ UpperWindowHeight:+ 35.0;" crlf)
	(printout door_set "	Origin; DoorOrigin: + Vector(DoorThickness:-DoorFrameLength:,-2.0" crlf)
	(printout door_set "	-35.0,0);" crlf)
	(printout door_set "	};" crlf)
	(printout door_set "(Child) door_frame_block1: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set "	Length; DoorThickness: + 2;" crlf)
	(printout door_set "	Width; DoorWidth: + 4;" crlf)
	(printout door_set "	Height;" crlf)
	(printout door_set "	DoorHeight: + 3 * 2.0 + MiddleFrameHeight: - 20.0" crlf)
	(printout door_set "	+ UpperWindowHeight:;" crlf)
	(printout door_set "	Origin; DoorOrigin: + Vector(-2,-2,0);" crlf)
	(printout door_set "	Operation; Subtract;" crlf)
	(printout door_set "	Target; {door_frame:};" crlf)
	(printout door_set "	};" crlf)
	(printout door_set "(Child) door_frame_block2: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set "	Length; 90 - (DoorThickness: + 2);" crlf)
	(printout door_set "	Width; DoorWidth: - 2 * 8;" crlf)
	(printout door_set "	Height;" crlf)
	(printout door_set "	DoorHeight: + 3 * 2.0 + MiddleFrameHeight: - 20.0" crlf)
	(printout door_set "	+ UpperWindowHeight:+ 35.0 - 45.0;" crlf)
	(printout door_set "	Origin; DoorOrigin: + Vector(DoorThickness:-DoorFrameLength:,8,0);" crlf)
	(printout door_set "	Operation; Subtract;" crlf)
	(printout door_set "	Target; {door_frame:};" crlf)
	(printout door_set "	};" crlf)
	(printout door_set "(Child) MiddleFrame_frame: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set " 	Length; DoorFrameLength:;" crlf)
	(printout door_set "	Width; DoorWidth: + 4.0;" crlf)
	(printout door_set "	Height; MiddleFrameHeight:;" crlf)
	(printout door_set "	Origin; DoorOrigin: + Vector(DoorThickness: - DoorFrameLength:," crlf)
	(printout door_set "					-2.0,DoorHeight: - 8.0);" crlf)
	(printout door_set "	};" crlf)
	(printout door_set "(Child) MiddleFrame_block1: {" crlf)
	(printout door_set "	class; ug_block;" crlf)
	(printout door_set "	Length; DoorThickness: + 2;" crlf)
	(printout door_set "	Width; DoorWidth: + 4;" crlf)
	(printout door_set "	Height; 10;" crlf)
	(printout door_set "	Origin; DoorOrigin: + Vector(-2.0,-2.0,DoorHeight: - 8.0);" crlf)
	(printout door_set "	Operation; Subtract;" crlf)
	(printout door_set "	Target; {MiddleFrame_frame:};" crlf)
	(printout door_set "	};" crlf)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -