Тема: Как достать "Global Scale Factor"?
Подскажите как в VBA достать Global Scale Factor, и есть ли етот коэфф. в блоке когда вставляешь его из другого файлаю Спасибо
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как достать "Global Scale Factor"?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите как в VBA достать Global Scale Factor, и есть ли етот коэфф. в блоке когда вставляешь его из другого файлаю Спасибо
Неужели никто не знает, очень надо.
Именно в блоке есть XScaleFactor, YScaleFactor и ZScaleFactor. При масштабировании блока производится установка именно этих свойств. Для размера, например, может быть ScaleFactor, соответствующий dimscale для этого размера. Для штриховки - PatternScale и PatternSpace, для линий - LineTypeScale. А добираться как до любых других свойств объекта. Как конкретно - см.справку.
Sub Example_XScaleFactor() ' This example creates a block containing a circle. ' It then inserts the block and changes the XScaleFactor. ' Create the block Dim blockObj As AcadBlock Dim insertionPnt(0 To 2) As Double insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0# Set blockObj = ThisDrawing.Blocks.Add(insertionPnt, "CircleBlock") ' Add a circle to the block Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 0: center(1) = 0: center(2) = 0 radius = 1 Set circleObj = blockObj.AddCircle(center, radius) ' Insert the block Dim blockRefObj As AcadBlockReference insertionPnt(0) = 2#: insertionPnt(1) = 2#: insertionPnt(2) = 0 Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0) ' Find the current XScaleFactor for the block reference Dim currXScaleFactor As Double currXScaleFactor = blockRefObj.XScaleFactor ZoomAll MsgBox "The current XScaleFactor for the block reference is " & blockRefObj.XScaleFactor, , "XScaleFactor Example" ' Change the XScaleFactor for the block reference blockRefObj.XScaleFactor = currXScaleFactor + 2 ZoomAll MsgBox "The new XScaleFactor for the block reference is " & blockRefObj.XScaleFactor, , "XScaleFactor Example" End Sub
спасибо конечно, но это обычный масштабный коэфф. по X Y Z, это я знаю. А есть еще общий масштабный кофф. для типа линий. Вот его то мне и надо.
Так определись, чего надо-то? В начале разговор был про блок... А масштаб линии - это свойство LineTypeScale. Только перед этим надо еще заодно проверить значение системной переменной ltscale - там могут быть тонкости.
Кстати, читаем внимательнее:> kpblc (2005-12-06 12:11:10)
<...>для линий - LineTypeScale<...>
LineTypeSсale - это масштаб типа линии, а есть еще Global Scale Factor который является общим для всех типов линии в данном чертеже, и хранится в файле чертежа. Его можно изметить Menu Format LineType будет внизу справа. Вот его мпне нужно взять в VBA
> MegaMozg
Смотри переменную LTSCALE - ее и нужно будет читать/писать.
Это конечно так тока как ее прочитать в VBA?
thisdrawing.GetVariable "ltscale"
Спасибо вот выручил. Все получилось.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как достать "Global Scale Factor"?
Форум работает на PunBB, при поддержке Informer Technologies, Inc