Программа считает передачу. При некоторых параметрах выходной вал вращаться не будет. Как вывести символ бесконечности для передаточного числа? Хотя бы код этого символа?
Попробуйте Alt 8734
или попробуйте: ^(Arial)+8734~
макрос на запись текста с таким символом получился:
Цитировать# -*- coding: cp1251 -*-
#|11231
import Kompas10API5 as KAPI
import Kompas10API7 as KAPI7
import pythoncom
from win32com.client import Dispatch
import LDefin2D
import LDefin3D
import ksConstants as CONST2D7
import ksConstants3D as CONST3D7
import MiscellaneousHelpers as MH
iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)
MH.iKompasObject = iKompasObject
iApplication = Dispatch('KOMPAS.Application.7')
iApplication = KAPI7.IApplication(iApplication)
MH.iApplication = iApplication
iDocument2D = iKompasObject.ActiveDocument2D()
iDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)
iParagraphParam = KAPI.ksParagraphParam(iKompasObject.GetParamStruct(LDefin2D.ko_ParagraphParam))
iParagraphParam.Init()
iParagraphParam.x = 43.12708333333
iParagraphParam.y = -23.54791666666
iParagraphParam.ang = 0.0
iParagraphParam.height = 4.99506902694
iParagraphParam.width = 8.40452003479
iParagraphParam.hFormat = 0
iParagraphParam.vFormat = 0
iParagraphParam.style = 1
iDocument2D.ksParagraph(iParagraphParam)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 1
iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))
iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = "^(Arial)+8734"
iTextItemParam.type = 0
iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0
iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
iTextLineParam.SetTextItemArr(iTextItemArray)
iDocument2D.ksTextLine(iTextLineParam)
obj = iDocument2D.ksEndObj()
~ - знак не ставил и без него макрос сработал.
Итак и сяк- не берёт... Бейсик.
Label11.FontName = Arial
Label11.Caption = "^(Arial)+8734"
Label11.Caption = Chr(4571) вообще ошибка...
Ну а какие нить символы вы уже вставляли? программно. Попробуйте сюда добавить свой символ и ссылаться программно на эту ячейку.
Цитата: Николай от 12.04.16, 12:48:22
....
Label11.Caption = Chr(4571) вообще ошибка...
А так,
Chr(221Е)
Наверно так:
ChrW(8734)
хотя не факт.
https://msdn.microsoft.com/en-us/library/613dxh46(v=vs.90).aspx (https://msdn.microsoft.com/en-us/library/613dxh46(v=vs.90).aspx)
Да, не факт... Все варианты выдают синтаксический Error.
Ну, не получается бесконечность- написал простую русскую букву "Х". При вращении входного вала выходной вращаться не будет. Типа Х вам. Ассотиативненько так... :)
Всем спасибо за расширение кругозора!
Цитата: Алхимик от 12.04.16, 12:56:17
Попробуйте сюда добавить свой символ и ссылаться программно на эту ячейку.
Думал отсюда компас берет символы... оказалось эта таблица для справок. Ибо изменяю или нет, символы остаются те же. Хотя наверное просто не умею их готовить :shu:
У меня сработало
ChrW(8734)
А в какой среде программирования сработало? У меня Бейсик 6, шрифт MS Sans Serif.
У меня офисный VBS. Вывел значок в компасовский текст. На форме не проверял
Vba работает
Уберите из кода строку:
Label11.Caption = "^(Arial)+8734"
(https://forum.ascon.ru/proxy.php?request=http%3A%2F%2Fcs636627.vk.me%2Fv636627934%2F8e3%2F4taVybnRX_E.jpg&hash=4e403a6af770edc329c49601a29cae5f5dea3b85)
Тут, наверное, картинка была? (где крестик).
Если убрать из кода строку, то как на Label.Caption вообще что-нибудь назначить?
Цитата: Николай от 12.04.16, 12:48:22
Label11.FontName = Arial
Label11.Caption = "^(Arial)+8734" СТРОКА №1
Label11.Caption = Chr(4571) СТРОКА №2
Просто у вас идет дублирование, что Строкой №1, что строкой №2 Вы пытаетесь получить знак бесконечности, но программа останавливает выполнение на строке №1. И для бейсика она не корректна.
Может и ошибусь, но посмотрите на пример Про100. Одному лейблу соответствует 1 номер. Т.е. вы добавляете избыточные ограничения.
Функция Chr - работает с типом байт - 0...255.
Функция ChrW - работает с типом слово - 0...65535.
Поэтому Chr(4571) - 100% ошибка.
Алхимику: это- строки разных вариантов, что пробовались, а не цельный кусок кода. :)
Вот, pr0100 что-то прислал в виде картинки, наверное, а мой браузер отобразить не может. Чёрный квадратик с крестиком... Может, кто-нибудь, перешлёт, что там в натуре? :shu:
Вот картинка.
Спасибо за картинку, повторил один в один, но, видно, 6 Бейсик не берёт такие символы...(А, может, где-то в глубине и есть какие-нибудь настройки). На все изыски выводит знак вопроса- знак того, что запрос не распознан. Ещё раз всем спасибо.
Цитата: Николай от 13.04.16, 15:59:10
Спасибо за картинку, повторил один в один, но, видно, 6 Бейсик не берёт такие символы...(А, может, где-то в глубине и есть какие-нибудь настройки). На все изыски выводит знак вопроса- знак того, что запрос не распознан. Ещё раз всем спасибо.
Один в один не нужно было повторять, если я не ошибаюсь у VB6 другой код инициализации
Vba, как у меня:
Private Sub UserForm_Initialize()
На VB6 должно быть:
Private Sub Form_Initialize()
Если получится, сообщите результат.
Сообщаю результат:
Конечно, не один в один. :)
Но результат- прежний: символ не распознан.
Попытка вставки в инициализацию- лишь проба способа. Ведь символ должен появляться по ходу расчёта в различных "Private Sub..." Но не работает нигде.
Судя по картинке, пишете в VB6.
Его стандартные компоненты напрямую Юникод не выводят, вместо этого появляется знак вопроса. Есть пользовательские компоненты, которые позволяют это сделать. Один из вариантов лежит здесь:
http://www.vbforums.com/showthread.php?500026-VB6-UniControls-Summer-Release-2008-06-19
Суть в том, что вы добавляете в свой проект нужный компонент, например, UniLabel, и используете его вместо стандартного Label. В нем нормально сработает ChrW (8734). Проверял на Win10 и VB6.
Сложноватенько... Но коллеги из АСУП помогли и появилась БЕСКОНЕЧНОСТЬ ! :)
(Спасибо Алексею)
Решением не поделитесь? Ну для общего развития :shu:
А сообщите в личке адрес эл.почты. Возможно, объём немаленький, зачем загромождать Форум.