allow caller to specify gdsii logical unit
This commit is contained in:
		
							parent
							
								
									3b3ee216c2
								
							
						
					
					
						commit
						583dd7b018
					
				| @ -21,7 +21,8 @@ __author__ = 'Jan Petykiewicz' | ||||
| 
 | ||||
| def write(pattern: Pattern, | ||||
|           filename: str, | ||||
|           meters_per_unit: float): | ||||
|           meters_per_unit: float, | ||||
|           logical_units_per_unit: float = 1): | ||||
|     """ | ||||
|     Write a Pattern to a GDSII file, by first calling .polygonize() on it | ||||
|      to change the shapes into polygons, and then writing patterns as GDSII | ||||
| @ -44,12 +45,16 @@ def write(pattern: Pattern, | ||||
| 
 | ||||
|     :param pattern: A Pattern to write to file. Modified by this function. | ||||
|     :param filename: Filename to write to. | ||||
|     :param meters_per_unit: Written into the GDSII file, meters per length unit. | ||||
|     :param meters_per_unit: Written into the GDSII file, meters per (database) length unit. | ||||
|         All distances are assumed to be an integer multiple of this unit, and are stored as such. | ||||
|     :param logical_units_per_unit: Written into the GDSII file. Allows the GDSII to specify a | ||||
|         "logical" unit which is different from the "database" unit, for display purposes. | ||||
|         Default 1. | ||||
|     """ | ||||
|     # Create library | ||||
|     lib = gdsii.library.Library(version=600, | ||||
|                                 name='masque-write_dose2dtype'.encode('ASCII'), | ||||
|                                 logical_unit=1, | ||||
|                                 logical_unit=logical_units_per_unit, | ||||
|                                 physical_unit=meters_per_unit) | ||||
| 
 | ||||
|     # Get a dict of id(pattern) -> pattern | ||||
| @ -95,7 +100,9 @@ def write(pattern: Pattern, | ||||
| 
 | ||||
| def write_dose2dtype(pattern: Pattern, | ||||
|                      filename: str, | ||||
|                      meters_per_unit: float) -> List[float]: | ||||
|                      meters_per_unit: float, | ||||
|                      logical_units_per_unit: float = 1 | ||||
|                      ) -> List[float]: | ||||
|     """ | ||||
|     Write a Pattern to a GDSII file, by first calling .polygonize() on it | ||||
|      to change the shapes into polygons, and then writing patterns as GDSII | ||||
| @ -120,14 +127,18 @@ def write_dose2dtype(pattern: Pattern, | ||||
| 
 | ||||
|     :param pattern: A Pattern to write to file. Modified by this function. | ||||
|     :param filename: Filename to write to. | ||||
|     :param meters_per_unit: Written into the GDSII file, meters per length unit. | ||||
|     :param meters_per_unit: Written into the GDSII file, meters per (database) length unit. | ||||
|         All distances are assumed to be an integer multiple of this unit, and are stored as such. | ||||
|     :param logical_units_per_unit: Written into the GDSII file. Allows the GDSII to specify a | ||||
|         "logical" unit which is different from the "database" unit, for display purposes. | ||||
|         Default 1. | ||||
|     :returns: A list of doses, providing a mapping between datatype (int, list index) | ||||
|                 and dose (float, list entry). | ||||
|     """ | ||||
|     # Create library | ||||
|     lib = gdsii.library.Library(version=600, | ||||
|                                 name='masque-write_dose2dtype'.encode('ASCII'), | ||||
|                                 logical_unit=1, | ||||
|                                 logical_unit=logical_units_per_unit, | ||||
|                                 physical_unit=meters_per_unit) | ||||
| 
 | ||||
|     # Get a dict of id(pattern) -> pattern | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user