QR Code Output ru - kuvbur/AddOn_SomeStuff GitHub Wiki

Создание QR кода на основе значения свойств

Видео с примером от Александра Пушкарёва Rutube

Аддон осуществляет подготовку данных для отрисовки QR кода отдельным макросом. Вызов данного макроса можно добавить в 2д или 3д скрипты своих библиотечных элементов, либо воспользоваться готовыми объектом и выносной надписью из этой библиотеки.

Для перевода значения свойства в QR код необходимо создать свойство с типом данных Строка, в описании указать Sync_from{QRCode:Property:ИМЯ_СВОЙСТВА}.

При использовании выносной надписи указать это свойство в качестве источника данных.

Для передачи данных в объект необходимо создать IFC свойство с именем QRCode и типом ifcText и задать ему в качестве правила свойство, куда аддон вывел подготовленную строку. Пример

Код для вставки в объект (пример, выводит QR код в интерактивный каталог в случае, если в ПМВ включен показ маркеров окон и дверей):

!!!!Для отрисовки в 3д добавить в объект текстовый параметр macro_qr_txt и код:
!!!---------------------------------------------
!!!-----------Основной скрипт (в начало)--------
!!!---------------------------------------------
!if strlen(macro_qr_ifc_property_name)<1 then macro_qr_ifc_property_name = "QRCode"
!
!if strlen(macro_qr_ifc_property_name)>0 then
!	DIM parNamesArray[]
!	n = APPLICATION_QUERY ("OwnCustomParameters", "GetParameterNames(IFC.Folder)", parNamesArray)
!	ifc_id = ""
!	for i=1 to vardim1(parNamesArray) step 3
!		if parNamesArray[i+1]=macro_qr_ifc_property_name then
!			ifc_id = parNamesArray[i]
!			i=vardim1(parNamesArray)
!		endif
!	next i
!	if strlen(ifc_id)>0 then
!		ifc_id = "GetParameter("+ifc_id+")"
!		n = APPLICATION_QUERY ("OwnCustomParameters", ifc_id , parValue)
!		macro_qr_txt = parValue
!	endif
!endif
!if strlen(macro_qr_txt)>0 then parameters macro_qr_txt=macro_qr_txt
!!!---------------------------------------------
!!!-----------3д скрипт (в начало)--------
!!!---------------------------------------------
!show=0 : n = REQUEST ("window_show_dim", "", show)
!if show and GLOB_PREVIEW_MODE=2 and GLOB_SCRIPT_TYPE=3 then
!	CALL "macro_qrcode" parameters macro_qr_txt = macro_qr_txt, macro_qr_A = 1, is_show3d=1
!	end
!endif

!!!!Для отрисовки в 2д добавить код, дополнительные параметры можно не создавать
!!!---------------------------------------------
!!!-----------2д скрипт (в начало)--------
!!!---------------------------------------------
!show=0 : n = REQUEST ("window_show_dim", "", show)
!if show and GLOB_PREVIEW_MODE=2 then
!	CALL "macro_qrcode" parameters all, is_show3d=1
!	end
!endif