Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Block einfügen aber nicht positionieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Beyond SOLIDWORKS - Wie Dassault Systèmes Ihre Business-Hürden aus dem Weg räumt
Autor Thema:  Block einfügen aber nicht positionieren (1498 mal gelesen)
Stefan65
Mitglied
Werkzeugkonstrukteur


Sehen Sie sich das Profil von Stefan65 an!   Senden Sie eine Private Message an Stefan65  Schreiben Sie einen Gästebucheintrag für Stefan65

Beiträge: 48
Registriert: 14.02.2014

Dell Precision 5820
Windows 10 Enterprise 64bit
Intel Xeon W-2123 @ 3.60GHz
16GB RAM
NVIDIA Quadro P2000
SolidWorks 2018 SP5
DBWorks-R17 SP2.5

erstellt am: 09. Dez. 2016 11:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,
gibt es über die API von Solidworks die Möglichkeit einen Block in eine Skizze einzufügen, ihn aber nicht auf einer bestimmten Position in der Skizze zu Platzieren, sondern den Block am Cursor zu behalten um ihn mehrfach zu Platzieren. Für das Einfügen an eine bestimmte Position gibt es ja einen API Befehl nur habe ich nichts für mein Problem gefunden.

Gruß Stefan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 13. Dez. 2016 07:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan65 10 Unities + Antwort hilfreich

Hallo Stefan,

wieso willst du das per Macro lösen, legt dir deine Blöcke doch in der Konstruktionsbibliothek ab, von hier aus kannst du sie dann schön per Drag 'n' Drop in die Zeichnung ziehen.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nahe
Ehrenmitglied



Sehen Sie sich das Profil von nahe an!   Senden Sie eine Private Message an nahe  Schreiben Sie einen Gästebucheintrag für nahe

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 13. Dez. 2016 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan65 10 Unities + Antwort hilfreich

Hallo Stefan,

gute Frage, so etwas hätte ich auch gern
leider habe ich bis jetzt keine, für mich einfache, Lösung dafür gefunden.
Eine Möglichkeit, wäre das über die Events zu bewerkstelligen,
das scheint mir aber doch ziemlich aufwendig.
(ev. über DMouseEvents_MouseMoveNotifyEventHandler)

@Bernd
das wäre z.B. dann sinnvoll, wenn das Makro selbst einen neuen Block generiert

------------------
Grüße
Heinz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stefan65
Mitglied
Werkzeugkonstrukteur


Sehen Sie sich das Profil von Stefan65 an!   Senden Sie eine Private Message an Stefan65  Schreiben Sie einen Gästebucheintrag für Stefan65

Beiträge: 48
Registriert: 14.02.2014

Dell Precision 5820
Windows 10 Enterprise 64bit
Intel Xeon W-2123 @ 3.60GHz
16GB RAM
NVIDIA Quadro P2000
SolidWorks 2018 SP5
DBWorks-R17 SP2.5

erstellt am: 13. Dez. 2016 18:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd, hallo Heinz,
wir müssen bei uns nun Sartbohrungen in den Teilen mit einbringen und so sollen alle User immer den selben Block benutzen und nicht irgendwelche. Außerdem sollte es eine Hilfe sein, einfach das Makro starten und sich keine Gedanken machen wo der Block liegt.

Nach einigen Recherchen im Internet habe ich ein Makro gefunden was ungefähr das macht was ich suche. Der User klickt einen Punkt an und dort wird dann der Block eingefügt, nächster Punkt wird geklickt und an der Stelle wird dann der Block eingefügt usw usw. Das läuft so lange bis über die ESC Taste das Makro gestoppt wird.
Hier mal der Code des Makros.

Option Explicit
Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Const VK_ESCAPE As Long = &H1B ' Esc Key
Dim swApp          As SldWorks.SldWorks
Dim swModel        As SldWorks.ModelDoc2
Dim swDraw          As SldWorks.DrawingDoc
Dim swSelMgr        As SldWorks.SelectionMgr
Dim swMathUtility  As SldWorks.MathUtility
Dim swMathPoint    As SldWorks.MathPoint
Dim swSktManager    As SldWorks.SketchManager
Dim swSktBlkDef    As SldWorks.SketchBlockDefinition
Dim scl            As Double
Dim angle          As Double
Dim inPtA          As Variant
Dim swSketchResult  As SketchSegment
Dim swSketchMgr    As SldWorks.SketchManager
Dim swBlockInst    As SldWorks.SketchBlockInstance
Dim lSng_Start As Single, lSng_End As Single

Sub GetPoint()
On Error Resume Next
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swDraw = swModel


    If swModel Is Nothing Then
        swApp.SendMsgToUser2 "Es ist kein Einzelteil geöffnet!", swMbInformation, swMbOk
        Exit Sub
    End If
   

Set swSktManager = swModel.SketchManager
Set swMathUtility = swApp.GetMathUtility

' Clear prior buffers, selections and points
GetAsyncKeyState VK_ESCAPE
swModel.ClearSelection2 True
inPtA = Empty ' Clear pick point

Do While GetAsyncKeyState(VK_ESCAPE) = 0
Pause 1 ' Pause to give time to click point
If swDraw Is Nothing Then ' This is a Part or Assembly
inPtA = swSelMgr.GetSelectionPoint2(1, -1)
Else ' This is a Drawing
inPtA = swSelMgr.GetSelectionPointInSketchSpace2(1, -1)
End If
If IsEmpty(inPtA) Then ' Point not selected
' Continue Loop
Else
Set swSketchMgr = swModel.SketchManager
Set swMathPoint = swMathUtility.CreatePoint(inPtA)
scl = 1
angle = 0

Set swSktBlkDef = swSktManager.MakeSketchBlockFromFile(swMathPoint, "V:\SW_Templates\2185\Blöcke\Sartbohrung ø6,8mm.SLDBLK", False, scl, angle)

'Do something with collected point
swApp.SendMsgToUser2 "Point Coords" & vbCrLf & _
"X: = " & inPtA(0) & vbCrLf & _
"Y: = " & inPtA(1) & vbCrLf & _
"Z: = " & inPtA(2), swMbWarning, swMbOk
inPtA = Empty ' Clear pick point
swModel.ClearSelection2 True ' Clear selection
End If
Loop

' If no pick point then Exit routine
If IsEmpty(inPtA) Then
swModel.ClearSelection2 True
swApp.SendMsgToUser2 "Das Makro wird nun beendet", swMbWarning, swMbOk
End If
End Sub

' Pause Event
Public Sub Pause(ByVal pSng_Secs As Single)
'Wait for the number of seconds given by pSng_Secs
On Error GoTo Err_Pause
lSng_Start = Timer
lSng_End = Timer + pSng_Secs
Do While Timer < lSng_End
'' Correction if the timer moves over to a new day (midnight)
'' 86400-num of secs in a day
If Timer < lSng_Start Then lSng_End = lSng_End - 86400
DoEvents ' Yield to other processes
Loop
Err_Pause:
Exit Sub
End Sub


Gruß Stefan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 14. Dez. 2016 07:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan65 10 Unities + Antwort hilfreich

[OT]

Zitat:
'' Correction if the timer moves over to a new day (midnight)
'' 86400-num of secs in a day

Was ein vorbildlicher Programmierer der sogar die Nachtschicht berücksichtigt  .
[/OT]

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz