• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как вывести символ бесконечности для передаточного числа?

Автор Николай, 12.04.16, 11:28:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Николай

Программа считает передачу. При некоторых параметрах выходной вал вращаться не будет. Как вывести символ бесконечности для передаточного числа? Хотя бы код этого символа?

Goran


Алхимик

или попробуйте: ^(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)               вообще ошибка...

Алхимик

Ну а какие нить символы вы уже вставляли? программно. Попробуйте сюда добавить свой символ и ссылаться программно на эту ячейку.

Goran

Цитата: Николай от 12.04.16, 12:48:22
....
Label11.Caption =  Chr(4571)               вообще ошибка...
А так,
Chr(221Е)


Николай

Да, не факт... Все варианты выдают синтаксический Error.
Ну, не получается бесконечность- написал простую русскую букву "Х". При вращении входного вала  выходной вращаться не будет. Типа Х вам. Ассотиативненько так... :)

Всем спасибо за расширение кругозора!

Алхимик

Цитата: Алхимик от 12.04.16, 12:56:17
Попробуйте сюда добавить свой символ и ссылаться программно на эту ячейку.
Думал отсюда компас берет символы... оказалось эта таблица для справок. Ибо изменяю или нет, символы остаются те же. Хотя наверное просто не умею их готовить :shu:

Денис СГА


Николай

А в какой среде программирования сработало? У меня  Бейсик 6, шрифт MS Sans Serif.

Денис СГА

У меня офисный VBS. Вывел значок в компасовский текст. На форме не проверял

pr0100

Vba работает
Уберите из кода строку:
Label11.Caption = "^(Arial)+8734"


Николай

Тут, наверное, картинка была? (где крестик).
Если убрать из кода строку, то как на 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 Бейсик не берёт такие символы...(А, может, где-то в глубине и есть какие-нибудь настройки). На все изыски выводит знак вопроса- знак того, что запрос не распознан.  Ещё раз всем спасибо.

pr0100

Цитата: Николай от 13.04.16, 15:59:10
Спасибо за картинку, повторил один в один, но, видно, 6 Бейсик не берёт такие символы...(А, может, где-то в глубине и есть какие-нибудь настройки). На все изыски выводит знак вопроса- знак того, что запрос не распознан.  Ещё раз всем спасибо.

Один в один не нужно было повторять, если я не ошибаюсь у VB6 другой код инициализации
Vba, как у меня:
Private Sub UserForm_Initialize()

На VB6 должно быть:
Private Sub Form_Initialize()

Если получится, сообщите результат.