Конвертирование строкового значения в 1 или 0
(defun ru-conv-value-to-wordbool (value / type_val)
;;; преобразует значение любого типа в 1 или 0
;;; это требуется для совместимости с COM-серверами
;|
(ru-conv-value-to-wordbool 1) >1
(ru-conv-value-to-wordbool 0) >0
(ru-conv-value-to-wordbool T) >1
(ru-conv-value-to-wordbool nil) >0
(ru-conv-value-to-wordbool "N") >0
(ru-conv-value-to-wordbool "Y") >1
(ru-conv-value-to-wordbool "Да") >1
(ru-conv-value-to-wordbool "Строка") > 0
|;
(cond
((= (setq type_val (type value)) 'INT) value)
((= type-val 'REAL)
(if (/= value 0.0)
1
0
) ;_ end of if
)
((= type_val 'STR)
(if (ru-conv-str-to-bool value)
1
0
) ;_ end of if
)
((= type-val 'variant)
(if (= (vlax-variant-value value) :vlax-true)
1
0
) ;_ end of if
)
(t
(if value
1
0
) ;_ end of if
) ;_ end of t
) ;_ end of cond
) ;_ end of defun