乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 74|回复: 4

块插入麻烦

[复制链接]

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2006-4-13 00:13:19 | 显示全部楼层 |阅读模式
您好,
我在块插入例程中有一个附加的代码段,我不知道如何从paperspace中的活动视口将块插入模型空间。当前,如果您在具有活动模型空间视口的paperspace中,它将在paperspace的某个位置插入块。有人能用这个引导我走向新的方向吗?感谢…
如果VAR=1,则
设置blkObj=ThisDrawing.ModelSpace。插入块(PNT、blkname、ScaleVal、ScaleVal、ScaleVal、ANG)
或者
设置blkObj=ThisDrawing.PaperSpace。插入块(PNT,blkname,ScaleVal,scalevar,ScaleVal,ANG)
结束If

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-4-13 00:57:09 | 显示全部楼层
没有足够的信息,但我支持你的var是在说谎。
将以下内容放入此绘图中
‘感谢Glenn R
Public Property Get current space()As acad block
If Me。GetVariable("CVPORT") = 1,然后
设置当前空间= Me。Set CurrentSpace = Me。如果End属性设置blkObj = ThisDrawing,则模型空间结束。CurrentSpace.InsertBlock(PNT,blkname,ScaleVal,ScaleVal,ScaleVal,ANG)
回复

使用道具 举报

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2006-4-13 01:26:35 | 显示全部楼层
感谢您的回复,请原谅我的新手能力,这是我模块的总代码,我在应用之前发布的代码时遇到问题…
选项显式
全局布局作为AcadLayer
全局图层名称作为字符串
Global layercolor作为OLE_COLOR
Dim clayer作为AcadLayer
作为字符串的全局blkname
将ANGVARNAME作为字符串的Dim ANG作为字符串的<br>将sysvarname作为字符串<br>将变量作为字符串的Dim ScaleVal作为字符串的
将变量的Dim PNT作为变量的<br>Dim blkObj作为字符串的AcadBlockReference<br>公共静态属性将CurrentSpace()作为AcadBlock<br>如果Me.GetVariable(“CVPORT”)=1,则<br>设置CurrentSpace=Me.PaperSpace<br>否则<br>将CurrentSpace=Me.ModelSpace<br>结束,如果<br>结束属性<br>则公共静态函数blockin()<br>出现错误,请继续下一步<br>设定clayer=ActiveDocument。ActiveLayer<br>设置Layoubj=ThisDrawing.Layers。项目(layername)
如果错误0,则
设置Layoubj=ThisDrawing.Layers。添加(layername)
布局bj。Color=layercolor<br>如果<br>是活动文档,则结束。ActiveLayer=Layoubj
ANGVARNAME=“SNAPANG”
ANG=ThisDrawing。GetVariable(ANGVARNAME)
sysvarname=“tilemode”
VAR=ThisDrawing。如果blks.fullscale,则GetVariable(sysvarname)
。如果blks.tenscale,则该值为True,则ScaleVal=1。如果值为True,则ScaleVal=10<br>如果为blks.twentyscale。如果值为True,则ScaleVal=20<br>如果为blks.thirtyscale。如果值为True,则ScaleVal=30<br>如果为blks.fortyscale。如果值为True,则ScaleVal=40<br>如果为blks.fiftyscale。如果值为True,则ScaleVal=50<br>如果为blks.sixtyscale。如果值为True,则ScaleVal=60<br>如果为blks.onexxscale。Value=True,然后ScaleVal=100<br>从用户获取点数<br>PNT=ThisDrawing.Utility。GetPoint_
(,vbCrLf&“插入点:”)
设置blkObj=ThisDrawing.CurrentSpace。InsertBlock(PNT,blkname,ScaleVal,scalevar,ANG)
“如果VAR=1,则
”设置blkObj=ThisDrawing.ModelSpace。InsertBlock(PNT、blkname、ScaleVal、ScaleVal、ANG)
'Else
'设置blkObj=ThisDrawing.PaperSpace。插入块(PNT、blkname、ScaleVal、ScaleVal、scalewal、ANG)
,如果
是ActiveDocument,则结束。ActiveLayer=clayer
设置layoubj=Nothing
设clayer=nothings
设定PNT=nothine
将blkObj=Nothing设置为结束函数
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-4-13 01:45:01 | 显示全部楼层
别担心。
“Me”只能在thisdrawing模块或表单中使用。所以如果你把函数放在一个标准模块里,用这张图代替me。
公共静态属性Get current space()As acad block
If this drawing。GetVariable("CVPORT") = 1,然后
设置CurrentSpace = ThisDrawing。Set CurrentSpace = ThisDrawing。model space
End If
End Function
看起来您对它的使用是正确的。
注释掉“找出”旁边的“错误”。
设置layobj = ThisDrawing。Layers.Item(layername)
如果Err  0,则
设置layobj = ThisDrawing。layers . Add(layer name)
layobj。如果不需要,则替换为Set layobj = ThisDrawing。Layers.Add(layername)(这对于层来说永远不会出错,而现有块会出错)
回复

使用道具 举报

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2006-4-13 15:28:41 | 显示全部楼层
非常好!! 这很完美。 谢谢!!!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 12:26 , Processed in 0.756552 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表