SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 162077|回复: 25
打印 上一主题 下一主题

草图中有N多个无规则的圆,如何操作可以快捷得到所有圆的圆心(对象为点)并删除圆

  [复制链接]

88

主题

310

帖子

170

金币

堂主

Rank: 4

积分
500
QQ
跳转到指定楼层
楼主
发表于 2011-4-27 16:42:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

   经典图书
草图中有N多个无规则的圆,如何操作可以快捷得到所有圆的圆心(对象为点)并删除圆
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞11146 拍砖拍砖2488
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

6

主题

226

帖子

19

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
258
QQ
沙发
发表于 2011-4-27 16:44:37 | 只看该作者
SolidWorks机械工程师论坛
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

12

主题

215

帖子

24

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
261
QQ
板凳
发表于 2011-4-27 16:44:39 | 只看该作者

   经典图书

没有理解我意思:草图有N个圆而没有每一个圆的圆心(我只圆心这个点)!?我现在要通过这些圆来获得这些圆的圆心,而不要圆,就是要获得这些圆的所有Position,也就是通过草图圆获得圆心们这个对象
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

218

帖子

25

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
260
QQ
地板
发表于 2011-4-27 16:46:02 | 只看该作者
有圆必有圆心!!!划线连接各圆圆心(自动捕捉)。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

227

帖子

39

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
288
QQ
5#
发表于 2011-4-27 16:46:44 | 只看该作者

   经典案例图书

具体如何自动捕捉??一个一个点圆心??
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

241

帖子

31

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
279
QQ
6#
发表于 2011-4-27 16:47:26 | 只看该作者
就是不明白,你为什么要先画圆,找圆点,然后又不要那个圆,就是要圆点?
直接画**点**不行吗?
你要想利用这些点去做草图,用曲线直接连接那些点不就可以了吗???
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

241

帖子

21

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
282
QQ
7#
发表于 2011-4-27 16:48:07 | 只看该作者

   经典案例图书
直白的說,全選。。。。圓心會自動標出。。。。。如果你要連接所有圓心。。那只能一個一個點。。。。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

208

帖子

125

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
364
QQ
8#
发表于 2011-4-27 16:48:58 | 只看该作者
1,写一个.
2,把草图名称改为"草图n".
Sub main()
    Dim swApp  As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swPart As SldWorks.PartDoc
    Dim swSelMgr  As SldWorks.SelectionMgr
    Dim swFeat  As SldWorks.Feature
    Dim swSketch   As SldWorks.Sketch
    Dim mySelectData As SldWorks.SelectData
    Dim skContour As SketchContour
    Dim vEdges As Variant, myEdge As SldWorks.Edge
    Dim NumArcs, uuu As Long
    Dim vArcs As Variant
    Dim vSkContours As Variant
    Dim vSkSeg  As Variant
    Dim i As Integer
    Dim boolstatus As Boolean
    Dim swSkArc As SldWorks.SketchArc
    Dim swCurve As SldWorks.Curve
    Dim skPoint As Object
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swPart = swModel
    Set swSelMgr = swModel.SelectionManager
    Set mySelectData = swSelMgr.CreateSelectData
    Set swFeat = swPart.FeatureByName("草图n")
    Set swSketch = swFeat.GetSpecificFeature
    swModel.Extension.SelectByID2 "草图n", "SKETCH", 0, 0, 0, False, 0, Nothing, 0
    swModel.EditSketch
    If Not swSketch Is Nothing Then
       NumArcs = swSketch.GetArcCount
       vSkContours = swSketch.GetSketchContours()
       For i = 0 To UBound(vSkContours)
          vArcs = swSketch.GetArcs2
          If IsEmpty(vArcs) Then Exit Sub
            Set skContour = vSkContours(i)
            If Not skContour Is Nothing Then
               If skContour.IsClosed = 1 Then
                  uuu = skContour.GetEdgesCount
                  If uuu = 1 Then
                       vEdges = skContour.GetEdges
                       Set myEdge = vEdges(0)
                       Set swCurve = myEdge.GetCurve
                       vSkSeg = swCurve.CircleParams
                        boolstatus = skContour.Select2(False, mySelectData)
                        swModel.EditDelete
                        Set skPoint = swModel.SketchManager.CreatePoint(vSkSeg(0), vSkSeg(1), 0)
                   End If
               End If
            End If
       Next i
       swModel.SketchManager.InsertSketch True
    End If
End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

208

帖子

35

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
250
QQ
9#
发表于 2011-4-27 16:50:17 | 只看该作者

谢谢,要的就是这个效果,找到知音了,代码自己写的吗
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

202

帖子

29

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
250
QQ
10#
发表于 2011-4-27 16:50:19 | 只看该作者

   经典图书
代码肯定要自己写的..
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

203

帖子

20

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
224
11#
发表于 2011-4-27 16:50:20 | 只看该作者

有做过其他开发吗?能不能把草图对象名设置成任意,不必每次手动改名。另外,能否添加一种对象不是草图而是实体面的情况?该怎么做,谢谢
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

244

帖子

28

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
294
QQ
12#
发表于 2011-4-27 16:52:33 | 只看该作者
要完全满足楼主的要求,的确只能设计一个了。
但是楼主的原意恐怕只是要将一个草图引入到异型孔的位置草图中去(见楼主的另一个帖子的22楼说明,下面是该贴的链接),那么只要用复制就行了。
SolidWorks机械工程师论坛
1、用异型孔向导在任意位置建立一个孔
2、将草图2复制进草图4(复制结果会有一个位移)
3、选定草图中全部复制过来的元素,按住shift键同步移动到远处(由于移动时不能捕捉,不能直接移到正确位置。移到远处是准备将来删除时便于框选)
4、按住Ctrl键,将这些元素复制到位(利用捕捉)
5、删除多余的元素
6、退出草图,完成任务
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

247

帖子

19

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
287
QQ
13#
发表于 2011-4-27 16:54:08 | 只看该作者

是的,就是这样的意思,总之就是为了利用虚拟异型孔草图点位置来驱动零部件的装配关系,而的利用就是由原先的草图圆阵到你给出的草图2中点阵的过程,由于SW本身不带该功能,就想到了API和QT工具,另外做完该步骤之后在装配的时候还有点小窍门,一言以蔽之,整个过程就是通过草图来虚拟的达到驱动阵列零部件的功能,整个流程还需进一步简化和完善,主要还是在草图2的产生这一过程上,试用过程中选择对象一般都是实体面或单独的曲面,当然也有上面程序中给出的草图对象。还是感谢各位,学到新的一招,Ctrl+草图对象、、、之前都是点移动工具来完成移动,谢谢!!希望得到更多交流和探讨学习!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

248

帖子

27

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
296
QQ
14#
发表于 2011-4-27 16:55:57 | 只看该作者

太容易了.
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

15

主题

224

帖子

33

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
283
QQ
15#
发表于 2011-4-27 16:59:25 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入


能给个代码分享下?敢问您平时做二次开发多吗?想详细交流下
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

198

帖子

12

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
209
16#
发表于 2011-4-27 17:00:16 | 只看该作者

   经典案例图书
上面说的是在固弄玄虚吗。用草图与表格不一样能达到上面的效果吗。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

222

帖子

15

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
251
QQ
17#
发表于 2011-4-27 17:00:48 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

要圆心何必删除圆呢 框选所有圆转成构造线就行了啊 既得到了圆心又不受圆的影响
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

241

帖子

16

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
278
QQ
18#
发表于 2011-4-27 17:05:03 | 只看该作者

   经典案例图书
楼主的这些点是用于异型孔特征的位置草图。此草图只承认其中的草图点,其它元素虽然可以存在,但系统对那些元素视而不见。 而其它草图中的圆心虽然也是草图中的一个点,但不是“草图点”,即不是在“*”记号下生成的点,因此即便将这些圆(包括它的圆心)用“转换实体引用”的功能置于位置草图中,再做异型孔时,系统仍然对它视而不见。可见楼主要的是真正的草图点,而不仅仅是圆心点。
其实我也被楼主搞糊涂了,楼主的原始目的是为了在装配体中阵列零件(见SolidWorks机械工程师论坛),如果是为了布置标准紧固件,完全可以直接用SW的智能扣件功能,自动的将合适的紧固件加到适合的孔中去。如果不是安装紧固件,考虑到通常这些孔多是用孔特征或阵列孔来实现的,孔特征和阵列可以作为装配体中特征阵列的驱动特征使用,同样可以方便地阵列零件。偏偏楼主又必须用几个孔特征来布置原始零件的孔位(我也不知是何缘故),又不想做几次孔特征,于是我给了一个用装配体中虚拟孔特征作为特征阵列的驱动特征。本来我觉得问题应该解决了,随之楼主又觉得在虚拟孔特征中一个个点出孔位来太麻烦(其实不麻烦呀,点每个孔位点,只要捕捉重合点,一点一个,很方便地,难道楼主要弄几百个点,怕手酸麽?)于是我就建议利用原零件孔特征的位置草图点进行复制的办法。现在楼主又要求空的大小是随意的,我真的搞不清楼主倒弄什么东西了。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

231

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
275
QQ
19#
发表于 2011-4-27 17:05:06 | 只看该作者

感谢关注,下面我来回答下,对于要点而不要圆的问题,分析的极是,我要的对象是点,仅仅是点,当然可以无视圆,把它们构造掉,具体原因是因为在装配体中做阵列的时候对象只能是点(这个可以自己去试下)。
对于SW智能扣件及智能特征,我之前也做过相关尝试,的确,你是不懂的,实际是有几百个点,当你做为一个设计者的时候,这个时候你倘若一个个去手动点选圆心来获得点的苦衷是不言而喻的,所以,软件自动化也是异常重要和不可或缺;“偏偏楼主又必须用几个孔特征来布置原始零件的孔位(我也不知是何缘故)”零件中本来这些位置是孔特征,在装配的时候也正是孔轴装配所以是在原有孔的位置上,我怀疑您是否进行实战设计的经验。不过讨论这些也没什么意义,能达到目的才是唯一的目的,仅仅说明SW本身的功能的确是有待开发完善,以上仅个人见解
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

232

帖子

29

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
278
QQ
20#
发表于 2011-4-27 17:06:07 | 只看该作者
楼主是不是用草图阵列?我是先画圆再在圆心上画点,再删了圆,笨办法
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2024-10-19 18:15 , Processed in 0.246657 second(s), 27 queries , Memcache On.

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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