cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 
Developer forum
GDL coding questions, Python and add-on development using the API Dev Kit.

How do I use the Profile parameter in a GDL script.

Anonymous
Not applicable
I'm new to GDL, I can create basic shapes and write basic code, like IF statements, but I can't figure out how to create a shape using the Profile parameter to inform the geometry. Any help would be most appreciated.
1 ACCEPTED SOLUTION
4 REPLIES 4

Solution
Lingwisyer
Hero
If GLOB_SCRIPT_TYPE = 2 or GLOB_SCRIPT_TYPE = 3 or GLOB_SCRIPT_TYPE = 4 or GLOB_SCRIPT_TYPE = 5 then
	_nComponents = 0
	dim _componentTypes[]

	n = REQUEST{2} ("Profile_components", myProfileIdx, _nComponents, _componentTypes)

	n2 = REQUEST ("Profile_default_boundingbox",  myProfileIdx, _xMin, _yMin, _xMax, _yMax)

	n3 = REQUEST{4} ("Profile_component_info", myProfileIdx, _nComponents, "gs_profile_surface", bMat_profile)
	
	If GLOB_SCRIPT_TYPE <> 5 then
		If rafPro = "Complex" then
				ProWidth = abs(_xMax - _xMin)
				ProHeight = abs(_yMax - _yMin)
				SquareV2 = ProHeight / ( cos(phi) )
		endIf
	endIf

	if n then
		dim _bShowPart[]
		_needRequestDetails = 0
	
		for _i = 1 to _nComponents
			_bShowPart[_i] = 1    
			  if GLOB_STRUCTURE_DISPLAY = 1 AND _componentTypes[_i] <> COMPTYPE_CORE then _bShowPart[_i] = 0   ! GLOB_STRUCTURE_DISPLAY: 0 – entire structure, 1 – core only, 2 – without finishes
			  if GLOB_STRUCTURE_DISPLAY = 2 AND _componentTypes[_i] = COMPTYPE_FINISH then _bShowPart[_i] = 0
			  if _bShowPart[_i] then _needRequestDetails = 1
		next _i
	
		if _needRequestDetails then
			dim _profileGeometryRawData[]
			n = REQUEST ("Profile_default_geometry", myProfileIdx, _profileGeometryRawData)		! n1, n2, ..., nn, x11, y11,s11 
	
			dim _contStartPoints[]
			dim _contEndPoints[]
			_contStartPoints[1] = _nComponents + 1
			for _i = 2 to _nComponents
				_contStartPoints[_i] = _contStartPoints[_i - 1] + _profileGeometryRawData[_i - 1] * 5
				_contEndPoints[_i-1] = _contStartPoints[_i] - 1
			next _i
			_contEndPoints[_nComponents] = vardim1(_profileGeometryRawData)
		endif
	endif
endif

There is a sample object somewhere by Graphisoft, but it appears to be alluding me...

There is also an object shared in this thread which is in regards to having multiple Complex Profiles in a single object.



Ling.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660 

David Maudlin
Virtuoso
Lingwisyer wrote:
There is a sample object somewhere by Graphisoft, but it appears to be alluding me...
Check out this thread: Profiles in GDL.

David
David Maudlin / Architect

www.davidmaudlin.com

Digital Architecture

AC26 USA • iMac 27" 4.0GHz Quad-core i7 | 24 gb ram • MacBook Pro 2.8GHz | 16 gb ram • OSX10.15.7

Anonymous
Not applicable
Thanks for the help. Lingwisyer, I couldn't get the code you posted to work but the one in the link regarding 'multiple Complex Profiles' works great. Thank you:
Lingwisyer wrote:
There is also an object shared in this thread which is in regards to having multiple Complex Profiles in a single object.

Lingwisyer
Hero
For the script I posted, you need to add myProfileIdx as a profile variable into the parameters list.

I also accidentally left in a section that was specific to my script...

Ignore:

	If GLOB_SCRIPT_TYPE <> 5 then
		If rafPro = "Complex" then
				ProWidth = abs(_xMax - _xMin)
				ProHeight = abs(_yMax - _yMin)
				SquareV2 = ProHeight / ( cos(phi) )
		endIf
	endIf



Ling.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660 

Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!