BIM Coordinator Program (INT) April 22, 2024
Find the next step in your career as a Graphisoft Certified BIM Coordinator!
GDL
About building parametric objects with GDL.

Is there a way to not use GDL on another computer?

LeeJaeYoung
Virtuoso

Is there a way to not use GDL on another computer?
1. Autocad autolisp simply reads the numbering of the cpu, locks it, and compiles it. What should I do in Archicad?

2. Is communication between api and GDL possible?
It seems that GDL can lock by reading the variable values of the api.

AC27 on window 11
16 REPLIES 16
Lingwisyer
Guru

Not use? To what extent? The objects do not render? They are not modifiable? 

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

I want to know about everything you say. ^^

 

 

1. Unchangeable
2. Not displayed on the screen, etc.
However, it is not possible to communicate with the API. Is it possible?
As I said, how is it possible to read and process the numbering of the cpu in autolisp?
I'm curious about that.

AC27 on window 11

I am not sure what you are asking.

GDL is a part of Archicad and can not be turned off.

Every object, door & window is GDL.

As a user, you can choose to accept all library objects as they are or you can delve into GDL scripting and create/modify your own objects.

 

API programming is a whole other level, it is interacting with the Archicad program itself, not just GDL.

In fact, I don't think it has anything to do with GDL programming other than it can access GDL parameters in objects.

I am not sure it can affect the scripting of GDL objects.

I am not an API programmer so I am not 100% sure of this.

 

Barry.

 

One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11

You can think of GDL as locking like a program.

In the case of Autolisp, it is to read the unique number of my cpu and to operate if it is the same as the number I entered, so that the GDL I made goes directly to the END statement in other computers. Then it can't be shown!

I haven't seen it myself, but I'm interested in it because the developer says that GDL can be made visible only by running the api.
Security is of utmost importance to the company...

AC27 on window 11

However, I have yet to get an answer on whether the created object can be called as a GUID or parameter value from GDL.
Of course, Label can call one object and bring variable values with request, but...

AC27 on window 11

IF firstRun = 0 THEN              !parameter that allow to run code only once

     parameters firstRun = 1    !prevents running code again

ENDIF

I also read yours with interest. ^^

AC27 on window 11
Lingwisyer
Guru

@Ben Cohen has his objects reference a licence object which will compare your AC licence number with a pre-programed list and lock the objects if they do not match. This would be using the "Configuration_number" request. I do not think there is a way to reference a computer specifically.

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

Can you elaborate a bit more?

n = REQUEST("Configuration_number", "", stConfigurationNumber)
text2 0,0,stConfigurationNumber
When I did this, n = 1 and stConfigurationNumber = empty.

I want to know how to create and read objects reference a license object.

Thank you for your interest.

AC27 on window 11

From the GDL manual ...

 

n = REQUEST ("Configuration_number", "", stConfigurationNumber)

Returns the configuration number (as string expression) assigned to the current ARCHICAD license in case of soft license or hardware key.
Returns empty string in case of Edu, Trial or Demo licenses. Each configuration number is unique and does not change.
Expression returns 0 and contains dummy return values (emtpy string or 0) if used in parameter script, causing additional warning.

 

 

You could also try locking to the actual license number ...

 

n = REQUEST ("program_info", "", name[, version[, keySerialNumber[, isCommercial]]])
Returns information on the currently running program. Expression returns 0 and contains dummy return values (emtpy string or 0) if used in parameter
script, causing additional warning.
name: name of the program
version: version number of the program
keySerialNumber: serial number of the keyplug

 

You might want to hide the license checking in a separate macro so you can use it for many objects.

You can hide the scripts for the macro by setting a password when you save the object.

Don't forget the password or you will never be able to open the macro to edit it.

You will need to configure the macro to work with each unique configuration or license number.

 

Barry.

 

One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Learn and get certified!