Тема: Привязка к канве автокада

Здравствуйте, на месте преддипломной практики меня попросили сделать базу данных условных обозначений КИП и А. Написал программку, которая, при нажатии на соответствующе имэджи и ввод текста в соответствующие текстбоксы, создаёт требуемое обозначение в виде блока из примтивов и текста, но есть одно неудобство. Я не знаю как сделать так, чтобы вставлялся блок не в центр координат, а в то место где человек работает, для больших проектов это очень важно. Т.е. в идеале начальник хочет получить следующее - нажимает куда надо на моей форме и ... прямо перед собой видит готовое обозначение(форма анлоадится), сочетание Ctrl+W и тоже самое.

Re: Привязка к канве автокада

Сей час программно посылаю команду _insert в командную строку и, впринципе, требуемый эффект достигается, но тогда пользователю придётся нажимать ОК, а это лишняя трата времени. Если не подскажете с первым, то подскажите со вторым, как сделать так, чтобы "инсертить блоки", но блоки не устанавливались на конкретную точку, а "висели" у пользователя на курсоре. Т.е. когда я нажимаю insertblock, то появляется диалог и там галочка Specify On-Screen.
Нажимаю злополучный ОК и курсором указываю требуемую точку.

Re: Привязка к канве автокада

Попробуй такой вариант:

ThisDrawing.SendCommand "-insert" & vbCr & "MyBlockName" & vbCr

Re: Привязка к канве автокада

Спасибо, Леонид, ваш пример работает, хотя всего лишь изменилась чёрточка, была _insert, а стала -insert. Но теперь возникла следующая задача, блок добавляется и весит на курсоре, но когда вы устанавливаете его на чертёж, то он просит вас установить Xscale,Yscale и т.д. Сразу же говорю, у меня вопросы глупые потому что я неделю назад увидел этот самый Autocad. Итак каким образом можно это решить? Если конкретнее он пишет:
Specify insertion point or [Scale/X/Y/Z/Rotate/PScale/PX/PY/PZ/PRotate]:

Re: Привязка к канве автокада

Да, чтобы Вы не подумали, что я врун, то на самом деле на 2 курсе я всё таки с ним встречался, на черчении надо было пару вещей начертить. :)
Хочу ещё добавить вопросик, как мне из командной строки или программно запускать конкретный макрос, vbarun даёт только диалог. :(

Re: Привязка к канве автокада

> Устинов Юрий
он просит вас установить Xscale,Yscale и т.д. ... Итак каким образом можно это решить?
Да никаки не надо решать. Пусть Пользователь нажмет пару раз Enter. Ничего, палец не отсохнет.

> Устинов Юрий
Хочу ещё добавить вопросик, как мне из командной строки или программно запускать конкретный макрос, vbarun даёт только диалог. :(

Для "добавления ..." надо открывать новую тему, вообще-то. Но, похоже, вы новичок на форуме и поэтому я дам вам один но ОЧЕНЬ ХОРОШИЙ СОВЕТ - "Читайте Help!". Вот что там написано по вашему "вопросику":

Sub Example_RunMacro()
    ' This example loads a DVB file into AutoCAD the VBA system and runs a macro
    ' contained in the file using the RunMacro method.
    '
    ' For this example we will use one of the sample files installed
    ' with the system, so the filename used in this example may
    ' have to be modified for this example to work.
    '
    ' * Note: If the he drawline DVB is already open, there will be an error
    ' when trying to unload the drawline DVB.
    Dim FileName As String
    FileName = "c:\program files\autocad 2000i\sample\vba\drawline.dvb"
    ' Load a sample VBA project DVB file
    LoadDVB FileName
    ' Run the drawline sample macro
    RunMacro "Module1.Drawline"
    ' Unload the drawline VBA project DVB file now that we are done
    UnloadDVB FileName
    MsgBox "We just loaded, ran, and unloaded a VBA sample from code!"
End Sub

Удачи!

Re: Привязка к канве автокада

Итак, спасибо с первым разобрался, надо было лишь
ThisDrawing.SendCommand "-insert" & vbCr & blockName & vbCr
ThisDrawing.SendCommand "s" & vbCrLf & "1" & vbCrLf & "r" & vbCrLf & "0" & vbCrLf

Пусть Пользователь нажмет пару раз Enter. Ничего, палец не отсохнет.

Всем приятно когда комфортно, а тем более начальству :)
За второй ответ тоже спасибо, без хелпа я бы далеко не дошёл конечно.
Всего Вам хорошего! Постараюсь больше вопросов не задавать.

Re: Привязка к канве автокада

> Устинов Юрий
Постараюсь больше вопросов не задавать.

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

Re: Привязка к канве автокада

Да, я ошибся, у меня программно всё нормально работало, а вот из командной строки никак не получалось. Хотел сделать Toolbar свой. А он макрос не вызывал писал D:, что думаю за смайлик автокад ставит, видимо надо мной так шутит :) Там надо было просто слэши поменять, сейчас всё нормально работает. Начальство довольно, даже согласилось индивидуальный договор со мной заключить. Спасибо ветку можно закрывать.