找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 18936|回复: 11
打印 上一主题 下一主题

[求助] 如果知道一个面角点的X,Y,Z坐标, 那么怎样自动才能选择这个角点?

[复制链接]
跳转到指定楼层
1
发表于 2008-7-10 21:45:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
如果知道一个面角点的X,Y,Z坐标, 那么怎样自动才能选择这个角点?
SOLIDWORKS有没有类似的命令?

[ 本帖最后由 slayerran 于 2008-7-10 21:46 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2008-7-10 22:15:27 | 只看该作者
自动的不会
3
发表于 2008-7-10 22:27:02 | 只看该作者
是否指二次开发内的指令?
4
发表于 2008-7-11 11:04:47 | 只看该作者
是不是需要做一个基准点啊,通过坐标来做出来。
5
发表于 2008-7-13 08:15:37 | 只看该作者
感谢大家回复。

并不是创造一个点,而是这个点是一个已经存在的点,我想选取它………………
6
发表于 2008-7-13 08:23:36 | 只看该作者
闷大,我指的就是二次开发的

现在编程遇到一点麻烦的事情。主要是一个面和一个实体相交,现在我想选择面边线为相交线的边线(-_-||| 貌似比较拗口………………)。我可以画出一个3D sketch来表示边线,但是这仅仅是一个3Dsketch,我想要选择那条真正的边线………………

10月份答辩,时间有点紧,现在卡在这个地方编不下去了,烦死了………………
7
发表于 2008-7-14 23:52:20 | 只看该作者
帖子沉了顶一下
8
发表于 2008-7-15 00:55:51 | 只看该作者
在二次开发中选取任何几何要素的最好方法是在生成这个几何体(点、线、面、特征、实体)的时候把它赋予一个变量,以后用的时候,直接调用这个变量。

如果你错过了在它出生的时候记住它,会很麻烦。

二次开发的时候,最好的老师,是二次开发帮助文件,里面有很多例子可以借鉴。
9
发表于 2008-7-15 01:02:26 | 只看该作者
“但是这仅仅是一个3Dsketch,我想要选择那条真正的边线”

在帮助里有一个例子,找到这个Sketch后,SW自动给所有的边、点都命了名,可以抓出来的。你好好读读help。还有一个方法,写程序的时候,当你输入点之后,程序自动给出所有的关于此对象的方法。根据这些提示,你进一步去找help。
10
发表于 2008-7-15 01:12:06 | 只看该作者

类似于这种例子,瞎找的

Get Sketch Segment and Curve Data Example (VB)
This example shows how to get data about a sketch segment and curve.



'---------------------------------------------

'

' Preconditions:

'             (1) Model document is open.

'             (2) Sketch segment is selected.

'

' Postconditions: None

'

'---------------------------------------------

Option Explicit

Public Enum swSkSegments_e

    swSketchLINE = 0

    swSketchARC = 1

    swSketchELLIPSE = 2

    swSketchSPLINE = 3

    swSketchTEXT = 4

    swSketchPARABOLA = 5

End Enum

' Define two types

Type DoubleRec

    dValue As Double

End Type

Type Long2Rec

    iLower As Long

    iUpper As Long

End Type

' Extract two integer values from of a single double value

' by assigning a DoubleRec to the double value and

' copying the value to a Long2Rec and

' extracting the integer values

Function ExtractFields _

( _

    ByVal dValue As Double, _

    iLower As Long, _

    iUpper As Long _

)

    Dim dr                      As DoubleRec

    Dim i2r                     As Long2Rec

    ' Set the double value

    dr.dValue = dValue

    ' Copy the values

    LSet i2r = dr

    ' Extract the values

    iLower = i2r.iLower

    iUpper = i2r.iUpper

End Function

Sub ProcessCurve _

( _

    swApp As SldWorks.SldWorks, _

    swModel As SldWorks.ModelDoc2, _

    swCurve As SldWorks.curve _

)

    Dim nStartParam             As Double

    Dim nEndParam               As Double

    Dim bIsClosed               As Boolean

    Dim bIsPeriodic             As Boolean

    Dim vStartEval              As Variant

    Dim vEndEval                As Variant

    Dim nSuccessStart           As Long

    Dim nEndStart               As Long

    Dim nDummy                  As Long

    Dim bRet                    As Boolean

   

    bRet = swCurve.GetEndParams(nStartParam, nEndParam, bIsClosed, bIsPeriodic): Debug.Assert bRet

    vStartEval = swCurve.Evaluate(nStartParam)

    vEndEval = swCurve.Evaluate(nEndParam)

   

    ExtractFields vStartEval(6), nSuccessStart, nDummy

    ExtractFields vEndEval(6), nEndStart, nDummy

   

    Debug.Print "    IsClosed       = " & bIsClosed

    Debug.Print "    IsPeriodic     = " & bIsPeriodic

    Debug.Print "    IsTrimmed      = " & swCurve.IsTrimmedCurve

    Debug.Print "    Start"

    Debug.Print "      Point        = (" & vStartEval(0) * 1000# & ", " & vStartEval(1) * 1000# & ", " & vStartEval(2) * 1000# & ") mm"

    Debug.Print "      Tangent      = (" & vStartEval(3) & ", " & vStartEval(4) & ", " & vStartEval(5) & ")"

    Debug.Print "      Success      = " & nSuccessStart

    Debug.Print "    Finish"

    Debug.Print "      Point        = (" & vEndEval(0) * 1000# & ", " & vEndEval(1) * 1000# & ", " & vEndEval(2) * 1000# & ") mm"

    Debug.Print "      Tangent      = (" & vEndEval(3) & ", " & vEndEval(4) & ", " & vEndEval(5) & ")"

    Debug.Print "      Success      = " & nEndStart

End Sub

Sub main()

    Dim sSkSegmentsName(5)      As String

    Dim swApp                   As SldWorks.SldWorks

    Dim swModel                 As SldWorks.ModelDoc2

    Dim swSelMgr                As SldWorks.SelectionMgr

    Dim swSkSeg                 As SldWorks.SketchSegment

    Dim swCurve                 As SldWorks.curve

    Dim swSkFeat                As SldWorks.feature

    Dim swSketch                As SldWorks.sketch

    Dim vID                     As Variant

    Dim bRet                    As Boolean

   

    sSkSegmentsName(swSketchLINE) = "swSketchLINE"

    sSkSegmentsName(swSketchARC) = "swSketchARC"

    sSkSegmentsName(swSketchELLIPSE) = "swSketchELLIPSE"

    sSkSegmentsName(swSketchSPLINE) = "swSketchSPLINE"

    sSkSegmentsName(swSketchTEXT) = "swSketchTEXT"

    sSkSegmentsName(swSketchPARABOLA) = "swSketchPARABOLA"

   

    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc

    Set swSelMgr = swModel.SelectionManager

    Set swSkSeg = swSelMgr.GetSelectedObject5(1)

    Set swCurve = swSkSeg.GetCurve

    Set swSkFeat = swSkSeg.GetSketch

    Set swSketch = swSkFeat.GetSpecificFeature

   

    vID = swSkSeg.GetId

   

    Debug.Print "Feature = " & swSkFeat.Name & " [" & swSketch.Is3D & "]"

    Debug.Print "  Sketch segment data"

    Debug.Print "    ID = [" & vID(0) & "," & vID(1) & "]"

    Debug.Print "      Type                 = " & sSkSegmentsName(swSkSeg.GetType)

    Debug.Print "      ConstGeom            = " & swSkSeg.ConstructionGeometry

   

    Debug.Print "  Curve data"

    ProcessCurve swApp, swModel, swCurve

End Sub

'---------------------------------------------
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-31 06:03 , Processed in 0.030019 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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