找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1901|回复: 37

[求助]:CreateLineElement1后如何修改线型比例“属性”

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2004-4-23 13:51:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我用VBA:Set oLineElement = CreateLineElement1(Nothing, ptArr)创建线,但线型比例不对,不知道该如何设置?
或者如何修改线的比例“属性”
我用手工绘的智能线是0.5比例的,但用程序绘的是1.0的,

!!!我如何用程序绘0.5比例的线!!!

图中白色是手绘的,兰色是程序创建的

我是新手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-4-23 16:21:10 | 显示全部楼层
把你的比例因子改掉就可以了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-23 16:29:41 | 显示全部楼层
看图就知道了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-23 16:37:00 | 显示全部楼层

不对呀!(附:我的代码)

不对呀!!!
我用手工绘的智能线是0.5比例的,但用程序绘的是1.0的,我想用程序绘0.5比例的线
如果楼上的对,那怎样用VBA设置线形的比例呢?LineStyle Object只有四个属性,没有可以设置比例的?

谢谢!

  CadInputQueue.SendCommand "PLACE SMARTLINE "
    iLayer = IIf(Trim(rs.Fields("LayerNew").Value) <> "", Trim(rs.Fields("LayerNew").Value), 0)
    CadInputQueue.SendCommand "ACTIVE LEVEL " & iLayer
    CadInputQueue.SendCommand "ACTIVE COLOR " & CInt(rs.Fields("ColorNum").Value)
    sLinetypeObj = UCase(sLinetypeObj)
    If sLinetypeObj = "CONTINUOUS" Then
        sLinetype = "0"
    Else
        sLinetype = IIf(Trim(rs.Fields("LTypeNew").Value) <> "", Trim(rs.Fields("LTypeNew").Value), "0")
    End If
    CadInputQueue.SendCommand "ACTIVE STYLE " & sLinetype
    For i = 0 To UBound(ptArr)
        CadInputQueue.SendDataPoint ptArr(i), ActiveDesignFile.Views(1)
    Next
    CadInputQueue.SendReset
用上面的方法,如果SEED比例为0.5的话可绘0.5的线,但特别慢(因为要不停的设置层、线形等)

用下面的方法速度比较快,但同样的SEED也不能绘0.5的线
'    '生成线
   Set oLineElement = CreateLineElement1(Nothing, ptArr)
    iLayer = IIf(Trim(rs.Fields("LayerNew").Value) <> "", Trim(rs.Fields("LayerNew").Value), 0)
    Set oLineElement.Level = currentdgnDesignFile.Levels.FindByCode(iLayer)
    oLineElement.Color = CInt(rs.Fields("ColorNum").Value)
    oLineElement.LineWeight = 0
    sLinetypeObj = UCase(sLinetypeObj)
    If sLinetypeObj = "CONTINUOUS" Then
        sLinetype = "0"
    Else
        sLinetype = IIf(Trim(rs.Fields("LTypeNew").Value) <> "", Trim(rs.Fields("LTypeNew").Value), "0")
    End If
    Set oLineStyle = currentdgnDesignFile.LineStyles.Find(sLinetype)
    Set oLineElement.LineStyle = oLineStyle
'    '添加到新建的文件中
    currentdgnDesignFile.DefaultModelReference.AddElement oLineElement
    oLineElement.Redraw
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-23 17:11:47 | 显示全部楼层
比例因子应该是SCALE FACTOR=“你需要输入的数字”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-23 20:42:12 | 显示全部楼层
用CadInputQueue.SendCommand 的方式绘出来是对的
但用CreateLineElement1,不管SCALE FACTOR是几,绘出来的比例总是1.0。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-23 22:22:09 | 显示全部楼层
使用LTSCALE命令也可以达到用户所要的效果。不过那是从整体上针对一套图纸的。
这个问题其实我也搞得不是很清楚,经常在这两个方面多试几次。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-23 22:42:23 | 显示全部楼层
拜托啦,那LTSCALE好象是ACAD的命令。
我都快急死啦!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-24 10:50:51 | 显示全部楼层
有个比较笨的方法:那你就生成以后再用Chang Element对它统一修改!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-24 21:15:26 | 显示全部楼层
laixc66 :
    用你的办法 我创建LINE后,如何进行Chang Element,能具体些吗?先谢过啦!Chang Element我还不知道怎样给它一个射定的比例系数呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-25 15:49:55 | 显示全部楼层
針對你的問題也可說明這是 MS VBA的一個缺陷吧.我曾爲此大傷腦筋,至今還沒有打到一個理想的方法.希望各位高手賜教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-26 13:04:50 | 显示全部楼层
MS 会流这么大一个缺陷?也许有别的解决办法吧!救救我吧,我测试了用CreateLineElement1速度是那种方法的4-5倍,
!!!!!!但没法创建比例系数为0.5的线(至少我不会)!!!!!!!
那种方法速度实在无法忍受。我的机器是P42.8,512DDR的,项目上的机器甚至还在用P3(400/500),他们就更没法忍受啦。怎么解决
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-26 13:25:28 | 显示全部楼层
那你就用CreateLineElement1好了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-27 09:59:25 | 显示全部楼层
你试试在vba中调用mdl 中相应函数吧。
vba本身提供的功能很有限。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2004-4-27 11:20:57 | 显示全部楼层
我是处学者,能详细说一下我将很感激!谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-24 01:45 , Processed in 0.225728 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表