社区
Inventor 产品技术应用讨论区
欢迎访问欧特克Inventor论坛!分享知识,发帖提问,浏览Inventor热帖
取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Inventor 複製貼到原始座標(位置)

8 条回复8
已解决
回复
1 条消息(共 9 条)
pointed_idea
1135 次查看, 8 条回复

Inventor 複製貼到原始座標(位置)

在組立iam下組合件到新的檔案按右鍵貼上;無法和autocad一樣有選項貼到原始座標位置,請問有啥方法來完成 謝謝

8 条回复8
2 条消息(共 9 条)

3 条消息(共 9 条)

除了楼上所说的两种方法之外,使用“放置”命令时可以右键选择“在原点放置”

QQ截图20230904091337.jpg

 

4 条消息(共 9 条)

謝謝提供的方法;我沒說清楚;舉例:我在機台上面配置一個顯示螢幕;位置和機台鎖付固定;我要顯示螢幕複製到一個新開組合件(iam)貼上;而位置點須和原機台上所付的位置相同,類似autocad的功能 剪貼簿 複製 貼上選項 貼到原始座標

5 条消息(共 9 条)

这个好像没有现成的操作方法,实现起来比较麻烦,使用ilogic编写规则代码或许可行。

多问一句:你这个需求的最终意图是什么呢?


If my post answers your question, please click the "Accept as Solution" button. This helps everyone find answers more quickly!
如果我的回帖解决了您的问题,请点击 "接受为解决方案" 按钮. 这可以帮助其他人更快的找到解决方案!


王 承之
Autodesk AGN [Inventor 俱乐部] Leader
Inventor Club | Bilibili


AGN L    EESignature

6 条消息(共 9 条)

謝謝您的訊息;最主要是位置點不變;在組裝的過程中方便操作及可以把次組立再貼上原iam的位置點上

7 条消息(共 9 条)

@pointed_idea 可以考虑用ilogic添加新的右键菜单来实现这个功能(设置外部规则自动运行,打开部件或者其他触发条件)

可以复制1个或者同时复制多个(但不会保留约束)

GIF 2023-9-5 17-03-57.gif

Class ThisRule
	Private button_CopyOcc, button_PasteOcc As ButtonDefinition
	Dim keyValuePairs As New List(Of KeyValuePair(Of String, Matrix))
	Sub main
		If SharedVariable.Exists("ContextMenu") Then Return
		SharedVariable("ContextMenu") = "ContextMenu"
		addNewButton()
		AddHandler ThisApplication.CommandManager.UserInputEvents.OnContextMenu, AddressOf OnContextMenu
	End Sub
	
	Sub addNewButton()
		button_CopyOcc = ThisApplication.CommandManager.ControlDefinitions.AddButtonDefinition(
                         "复制(原始位置)","IneternalName_copyocc", CommandTypesEnum.kNonShapeEditCmdType)
		button_PasteOcc = ThisApplication.CommandManager.ControlDefinitions.AddButtonDefinition(
                         "粘贴(原始位置)","IneternalName_pasteocc", CommandTypesEnum.kShapeEditCmdType)
		AddHandler button_CopyOcc.OnExecute, AddressOf CopyOcc_OnCLick
		AddHandler button_PasteOcc.OnExecute, AddressOf PasteOcc_OnCLick
	End Sub
	
	Private Sub OnContextMenu(SelectionDevice As SelectionDeviceEnum, AdditionalInfo As NameValueMap, CommandBar As CommandBar)
        If Not TypeOf ThisApplication.ActiveEditDocument Is AssemblyDocument Then Return
		Dim oselectset As SelectSet = ThisApplication.ActiveDocument.selectset
		If oselectset.OfType(Of ComponentOccurrence).Count <> 0 Then
		   CommandBar.Controls.AddButton(button_CopyOcc, 2)
	    Else If oselectset.Count = 0 Then
		   If SelectionDevice <> SelectionDeviceEnum.kGraphicsWindowSelection Then Return
		   If keyValuePairs.count = 0  Then Return
		   CommandBar.Controls.AddButton(button_PasteOcc, 2)
		End If
    End Sub
	
	Private Sub CopyOcc_OnCLick
		Dim oselectset As SelectSet = ThisApplication.ActiveDocument.selectset
		For Each occ As ComponentOccurrence In oselectset.OfType(Of ComponentOccurrence)
			Dim occDocumentName As String = occ.Definition.Document.FullDocumentName
			Dim position As Matrix = occ.Transformation
			keyValuePairs.Add(New KeyValuePair(Of String, Matrix)(occDocumentName, position))
		Next
    End Sub

	Private Sub PasteOcc_OnCLick
		Dim asmDef As AssemblyComponentDefinition = ThisApplication.ActiveEditDocument.ComponentDefinition
		For Each kvp In keyValuePairs
		Dim key As String = kvp.Key
		Dim value As Matrix = kvp.Value
		asmDef.Occurrences.Add(key,value)
		Next
		keyValuePairs.clear()
	End Sub
End Class
8 条消息(共 9 条)

謝謝您的解答

9 条消息(共 9 条)

这个好,学习一下


If my post answers your question, please click the "Accept as Solution" button. This helps everyone find answers more quickly!
如果我的回帖解决了您的问题,请点击 "接受为解决方案" 按钮. 这可以帮助其他人更快的找到解决方案!


王 承之
Autodesk AGN [Inventor 俱乐部] Leader
Inventor Club | Bilibili


AGN L    EESignature

找不到想要的内容?向社区提问或分享您的知识。

到论坛发帖  

”