Programming Parameterised Geometric Objects in a Visual Design Language
Total Page:16
File Type:pdf, Size:1020Kb
PROGRAMMING PARAMETERISED GEOMETRIC OBJECTS IN A VISUAL DESIGN LANGUAGE by Omid Banyasad Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy at Dalhousie University Halifax, Nova Scotia June 2006 © Copyright by Omid Banyasad, 2006 ii DALHOUSIE UNIVERSITY DATE: June 12, 2006 AUTHOR: Omid Banyasad TITLE: PROGRAMMING PARAMETERISED GEOMETRIC OBJECTS IN A VISUAL DESIGN LANGUAGE DEPARTMENT OR SCHOOL: Faculty of Computer Science DEGREE: PhD CONVOCATION: October YEAR: 2006 Permission is herewith granted to Dalhousie University to circulate and to have copied for non-commercial purposes, at its discretion, the above title upon the request of individuals or institutions. Signature of Author The author reserves other publication rights, and neither the thesis nor extensive extracts from it may be printed or otherwise reproduced without the author’s written permission. The author attests that permission has been obtained for the use of any copyrighted material appearing in the thesis (other than the brief excerpts requiring only proper acknowledgment in scholarly writing), and that all such use is clearly acknowledged. iii Table of Contents List of Tables . .ix List Of Figures . x Abstract . xii List of Abbreviations Used . .xiii Acknowledgments . .xiv CHAPTER 1: Introduction . 1 1.1 Design Tools . 3 1.1.1 Computer-Aided Design . 3 1.1.2 Mechanical Design Versus Digital Design . 5 1.2 Design Languages . 5 1.3 Background . 7 1.4 Research Objectives . 9 1.5 Organisation . 13 CHAPTER 2: Solids in Logic . 14 2.1 Lograph Syntax and Semantics . 15 2.2 LSD . 21 2.3 Relating Lograph to LSD . 27 2.4 Design Synthesis . 28 2.4.1 Masterkeying . 28 2.4.2 Keys and Locks in LSD . 30 2.4.3 Key-Lock Graph . 33 2.4.4 Notes . .35 iv CHAPTER 3: Deterministic Lograph+C . 36 3.1 Lograph Execution Model . 36 3.1.1 Order of Transformation Rules . 38 3.1.2 Ordering Cases . 40 3.1.3 Ordering Cells in Cases and Queries . 40 3.2 Lograph+C . 41 3.2.1 Constraint Programming . 41 3.2.2 Constraint Types . 42 3.2.3 Constraint Satisfaction Techniques . 43 3.2.4 Constraint Logic Programming . 44 3.2.5 Constraints in Lograph+C . 44 3.3 Lograph Programming Environment . 47 3.3.1 Lograph Editor . 48 3.3.2 Lograph Debugger . 50 3.3.2.1 Facilitate Navigation in Execution . 52 3.3.2.2 Orientation Cues . 53 3.3.2.3 Reducing Disorientation . 55 3.4 Interpreter Engine . 56 3.4.1 Translating Lograph to Prolog . 56 3.4.2 Interpreting Lograph Programs . 58 3.4.2.1 Replacement . 59 3.4.2.2 Merge Rule . 61 3.4.2.3 Deletion Rule . 62 3.4.2.4 Backtracking . 63 3.4.3 Running Programs in Debug Mode . 65 3.4.3.1 Finding A Solution . 69 3.4.4 Finding All Solutions . 69 3.4.5 Just-in-Time Programming and User Inputs . 70 v 3.5 Implementation Considerations . 71 3.6 Discussion . 72 CHAPTER 4: Automatic Layout . 73 4.1 Mental Map . 75 4.2 Drawing Query Graphs . 76 4.2.1 Replacement . 77 4.2.2 Foresighted Wire Adjustment . 81 4.2.3 Merge and Deletion . 85 4.2.4 Automatic Layout for Run Mode . 86 4.3 Discussion . 87 CHAPTER 5: A Formal Model for Solids . 89 5.1 Formal Model . 92 5.2 Sample Look . 98 5.2.1 Factoring . 100 5.2.2 Relaxed Factoring . 110 5.2.3 Sample Value Assignment Criteria . 110 5.3 Transformation and High-level Parameterisation . 111 5.4 Reduction . ..