Перейти к содержимому


Выбор опций в командной строке


Сообщений в теме: 12

#1 СтанІслав

    Посетитель

  • Пользователи
  • PipPip
  • 16 сообщений
  • Пол:Мужчина
  • Город:Кривий Ріг

Отправлено 21 Август 2012 - 16:21

Есть ли возможность силами VBS реализовать выбор опций в командной строке мышкой, как во встроенных функциях Нанокада, или необходимо прописывать только вручную?
И если всё же можно, то дайте, пожалуйста, хотя бы ссылку на пример кода.

Прикрепленные файлы


Сообщение отредактировал СтанІслав: 21 Август 2012 - 16:21


#2 ISL

    Клуб разработчиков

  • nanoSoft
  • PipPipPipPip
  • 364 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:Разработка САПР

Отправлено 21 Август 2012 - 16:52

Такой возможности нет, ключевые слова программно выбираются только текстом.

Из-за чего возникла необходимость создания полилинии при помощи команды POLYLINE? Штатным для скриптов подходом является вызов AddLightWeightPolyline.

Dim PntLst(5)
PntLst(0) = 0
PntLst(1) = 0
PntLst(2) = 100
PntLst(3) = 100
PntLst(4) = 200
PntLst(5) = 0

ThisDrawing.ModelSpace.AddLightWeightPolyline PntLst

Пишешь приложения под САПР на С++, .NET, COM, Lisp? Вступай в Клуб разработчиков nanoCAD.

#3 СтанІслав

    Посетитель

  • Пользователи
  • PipPip
  • 16 сообщений
  • Пол:Мужчина
  • Город:Кривий Ріг

Отправлено 21 Август 2012 - 18:39

Просмотр сообщенияISL (21 Август 2012 - 16:52) писал:

Такой возможности нет, ключевые слова программно выбираются только текстом.
Из-за чего возникла необходимость создания полилинии при помощи команды POLYLINE? Штатным для скриптов подходом является вызов AddLightWeightPolyline.
По поводу выбора - понял. :)
По поводу ПОЛИЛАЙН - за совет спасибо, но это был скрин во время обычной ручной работы в НаноКаде. Просто выбирал инструмент, который мог бы показать тот метод выбора о котором спрашивал :))

#4 Lion007

    Разработчик nanoCAD

  • Клуб разработчиков
  • PipPipPipPip
  • 452 сообщений
  • Пол:Мужчина

Отправлено 21 Август 2012 - 19:02

На самом деле, все не совсем так. Если речь идет о выборе кейвордов, то это делается через метод InitializeUserInput. примерно вот так :
Dim ut, answer
Set ut = ThisDrawing.Utility
ut.InitializeUserInput 4, "one two" ' первый параметр - набор битовых флагов
answer = ut.GetKeyword("А ну-ка выбирай!")
ut.Prompt answer
К сожалению, работает этот фокус только для GetKeyword - остальные Get-ы все эти вкусности игнорируют. Это связано с механизмом возврата значений из этих Get-ов.

#5 СтанІслав

    Посетитель

  • Пользователи
  • PipPip
  • 16 сообщений
  • Пол:Мужчина
  • Город:Кривий Ріг

Отправлено 22 Август 2012 - 16:42

Просмотр сообщенияLion007 (21 Август 2012 - 19:02) писал:

Если речь идет о выборе кейвордов, то это делается через метод InitializeUserInput.
Ага, понял, посмотрю, может даже этот вариант меня устроит :) Жаль, что слово "или" в строке запроса присутствует :unsure:

#6 Lion007

    Разработчик nanoCAD

  • Клуб разработчиков
  • PipPipPipPip
  • 452 сообщений
  • Пол:Мужчина

Отправлено 22 Август 2012 - 16:54

Просмотр сообщенияСтанІслав (22 Август 2012 - 16:42) писал:

Ага, понял, посмотрю, может даже этот вариант меня устроит :) Жаль, что слово "или" в строке запроса присутствует :unsure:
это самое "или" тоже можно задавить. равно как и вклячить список кейвордов в произвольное место запроса - достаточно в нужное место вставить [%s]. вот так, скажем :
answer = ut.GetKeyword("А ну-ка [%s] выбирай!")
или
answer = ut.GetKeyword("А ну-ка выбирай! [%s]")


#7 СтанІслав

    Посетитель

  • Пользователи
  • PipPip
  • 16 сообщений
  • Пол:Мужчина
  • Город:Кривий Ріг

Отправлено 23 Август 2012 - 08:43

Цитата

это самое "или" тоже можно задавить. равно как и вклячить список кейвордов в произвольное место запроса - достаточно в нужное место вставить [%s].
О, отлично просто! Спасибо!!! :D

#8 ich-frau

    Участник

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 04 Октябрь 2012 - 14:12

Почему не работает:


Dim ut, answer, fio_str
Set ut = ThisDrawing.Utility
option_str="One two"
ut.InitializeUserInput 4, option_str
answer = ut.GetKeyword("А ну-ка выбирай!")
ut.Prompt answer

Если все открыть пути, куда идти, зачем идти?

#9 Lion007

    Разработчик nanoCAD

  • Клуб разработчиков
  • PipPipPipPip
  • 452 сообщений
  • Пол:Мужчина

Отправлено 04 Октябрь 2012 - 14:36

Какая-то засада со стрингами в переменных. в чем дело - пока не понятно, но есть незатейливый воркэраунд :
ut.InitializeUserInput 4, "" + option_str ' как вариант - "" & option_str
или
ut.InitializeUserInput 4, CStr(option_str)


#10 ich-frau

    Участник

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 05 Октябрь 2012 - 09:26

Спасибо большое! )
Если все открыть пути, куда идти, зачем идти?

#11 ISL

    Клуб разработчиков

  • nanoSoft
  • PipPipPipPip
  • 364 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:Разработка САПР

Отправлено 16 Октябрь 2012 - 19:01

Это баг, записан в Клубе разработчиков под номером 39.
Пишешь приложения под САПР на С++, .NET, COM, Lisp? Вступай в Клуб разработчиков nanoCAD.

#12 v-oz

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 03 Август 2017 - 14:59

Какого типа/класса объект возвращается этим методом?
Где, в какой библиотеке определены эти классы?
Полилиния строится, но дальнейшая работа с ней возможна только через объект.
Если как в акаде - LightweightPolyline., то такого типа нет. Описания методов в моделспейсе нет. Или я его не вижу, а оно есть? ;)
Попытался в клуб пролезть, так письмо не пришло - клуб закрылся?

Помогите с полновесным описанием под версию 5.1. плз.

Просмотр сообщенияISL (21 Август 2012 - 16:52) писал:

Штатным для скриптов подходом является вызов AddLightWeightPolyline.

ThisDrawing.ModelSpace.AddLightWeightPolyline PntLst

сам отвечу ...
чуден VBA :) Можно не связываться с типами
   Dim pl
	Set pl = ThisDrawing.ModelSpace.AddLightWeightPolyline(vl1)
	pl.Closed = True
	pl.Update

Сообщение отредактировал v-oz: 03 Август 2017 - 15:15


#13 Kreator

    Активист

  • Пользователи
  • PipPipPipPip
  • 687 сообщений
  • Пол:Мужчина
  • Город:Краснодар

Отправлено 04 Сентябрь 2017 - 10:56

Просмотр сообщенияv-oz (03 Август 2017 - 14:59) писал:

чуден VBA :) Можно не связываться с типами
Поэтому ну его нафиг :D
Полховский А.В. Проектирование железнодорожных путей
nanoCAD Plus 10.1.4468.1506; MultiCAD.NET; Печатаем просто и быстро





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей