Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Per Makro keine Block-Skalierung = 1 möglich

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
  
SPINNER Hausausstellung
Autor Thema:  Per Makro keine Block-Skalierung = 1 möglich (880 mal gelesen)
mechanikuss
Mitglied
Konstruktion Anlagen+Werkzeug+Maschinen


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

Beiträge: 97
Registriert: 04.06.2002

MS-Windows 10 Pro
MS-Office Pro Plus 2019
DS-Solidworks 2019 Pro

erstellt am: 23. Dez. 2022 13:49    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 Gemeinde,

Noch eine Frage an die Spezialisten unter euch:

Kennt jemand das Problem, dass bei einer als "double" deklarierten Variable der Wert "1.0" sofort in "1#" umgewandelt wird?

Laut diesem Beitrag heißt es nur: "1# tells the compiler to assign a double" https://stackoverflow.com/questions/23358650/excel-vba-1-0-becomes-1

Schön und gut, nur habe ich somit keine Chance per Makro einem Block die Skalierung = 1 zu geben. 

Also im VBA-Editor wird "swBlockInst.Scale2 = 1.0 " sofort in  "swBlockInst.Scale2 = 1# " umgewandelt.
Es gibt beim ausführen zwar keinen Error, aber die "Eins Punkt Null" wird einfach nicht übernommen, alle anderen Werte wie "1.1" oder "2.0" usw. sehr wohl funktionieren.

Ich habe mir heute schon schier einen "Wolf" ausprobiert, um einen Work-Around zu finden - Aber ohne Erfolg.
Hat jemand eine Idee?

Gruß Fred

------------------
Lieber Gruß vom mechanikuss

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: 23. Dez. 2022 14:58    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 mechanikuss 10 Unities + Antwort hilfreich

Ich versteh das nicht,
Was ist der Unterschied zw. 1.0 und 1 bei der Skalierung?

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

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

mechanikuss
Mitglied
Konstruktion Anlagen+Werkzeug+Maschinen


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

Beiträge: 97
Registriert: 04.06.2002

MS-Windows 10 Pro
MS-Office Pro Plus 2019
DS-Solidworks 2019 Pro

erstellt am: 24. Dez. 2022 09:31    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 Heinz,

Es gibt keinen Unterschied. Weder 1.0 noch 1 wird umgesetzt.
Probiere es selbst, falls du die Zeit und Möglichkeit hast. Ich vermute einen Bug.
Ich behelfe mich derzeit mit Eingabe von 1.001, was nicht gerade die elegante Weise ist, aber so geht es (annähernd).


Gruß Fred

------------------
Lieber Gruß vom mechanikuss

[Diese Nachricht wurde von mechanikuss am 24. Dez. 2022 editiert.]

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

deckelmaho
Mitglied
Konstrukteur


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

Beiträge: 239
Registriert: 03.03.2020

SolidWorks 2023 SP5
Windows 10 64bit
Office 2019

erstellt am: 26. Dez. 2022 09:54    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 mechanikuss 10 Unities + Antwort hilfreich

Hallo Fred,

ich arbeite im SWXHelper auch mit Blöcken und konnte dabei keinen Bug feststellen.

Vielleicht ist wichtig zu wissen, dass die Skalierung der Blöcke in Abhängigkeit des Maßstabes stehen.
Wenn ich die Blöcke auf dem Blatt einfüge, hole ich mir vorher die Scales des Blattes

Code:

vSheetProps = swSheet.GetProperties
scalefactor = vSheetProps(3) / vSheetProps(2)

Für Blöcke in Ansichten wirst du das separat machen müssen, da diese nicht zwangsläufig dem Blattmaßstab entsprechen müssen.

Wie gesagt ich habe weder selber einen Fehler festgestellt, noch hat einer der Nutzer einen gemeldet.

Vielleicht hilft dir das ja weiter...

Beste Grüße
Kevin

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

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

mechanikuss
Mitglied
Konstruktion Anlagen+Werkzeug+Maschinen


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

Beiträge: 97
Registriert: 04.06.2002

MS-Windows 10 Pro
MS-Office Pro Plus 2019
DS-Solidworks 2019 Pro

erstellt am: 27. Dez. 2022 15:37    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 Kevin,

Danke für den Hinweis.

Genau deshalb möchte ich auch die im Zeichnungsmaßstab entsprechend erstellten Blöcke noch vor dem abspeichern auf Scale=1 stellen.
Sonst befänden sich irgendwann lauter unterschieliche Skalierungen in meiner Block-Bibliothek. Das wäre nicht schön.

Hat zum Beispiel die Zeichnung den Maßstab 1:25, dann bekommt ein Block nach dem erstellen Scale=0.04.
Und per VBA kann ich nun Scale auf alle möglichen Werte ändern, nur nicht exaxt 1.000 egal ob mit oder ohne Nullen hinterm Komma.

Gruß Fred

------------------
Lieber Gruß vom mechanikuss

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

deckelmaho
Mitglied
Konstrukteur


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

Beiträge: 239
Registriert: 03.03.2020

SolidWorks 2023 SP5
Windows 10 64bit
Office 2019

erstellt am: 28. Dez. 2022 11:36    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 mechanikuss 10 Unities + Antwort hilfreich

Unsere Bauteile verwenden sehr häufig des Zeichnungsmaßstab 1:1, daher kommt bei der Division 1/1=1 raus.
Und da passt alles.
Ich kann mir nur einen Typfehler oder ähnliches vorstellen.
Hast du etwas Code den du posten kannst?

Beste Grüße
Kevin

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

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

mechanikuss
Mitglied
Konstruktion Anlagen+Werkzeug+Maschinen


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

Beiträge: 97
Registriert: 04.06.2002

MS-Windows 10 Pro
MS-Office Pro Plus 2019
DS-Solidworks 2019 Pro

erstellt am: 28. Dez. 2022 18:07    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


Direktbereich.jpg

 
Hi Kevin,

Hier mein Test-Makro:

'***************************************************************************************************************
' Mit diesem Makro soll eine Blockdefinition, unabhängig vom aktuellen Zeichnungsmaßstab,
' mit Scale=1 in eine Datei gespeichert werden, damit beim nächsten Einfügen auch wieder Scale=1 vogegeben wird

Option Explicit

Dim swApp          As SldWorks.SldWorks
Dim swDoc          As SldWorks.ModelDoc2
Dim swSelMgr        As SldWorks.SelectionMgr
Dim swBlockInst    As SldWorks.SketchBlockInstance
Dim swBlockDef      As SldWorks.SketchBlockDefinition
Dim swBlockInstName As Variant
Dim swModel        As Object
Dim swDraw          As Object
Dim SwSketchMgr    As Object
Dim vBlockDef      As Variant
Dim BlkPath        As String
Dim BlkFile        As String
Dim BlkPathFile    As String
Dim boolStatus      As Boolean
Dim MyScale        As Double

Sub fctSaveFile()
    'Initialisierung
    Set swApp = Application.SldWorks
    Set swDoc = swApp.ActiveDoc
    Set swModel = swApp.ActiveDoc
    Set swDraw = swDoc
    Set swSelMgr = swDoc.SelectionManager
   
    'Start Skizzenmanager
    Set SwSketchMgr = swDoc.SketchManager
    vBlockDef = SwSketchMgr.GetSketchBlockDefinitions

    'Nur Wenn Blöcke vorhanden
    If Not IsEmpty(vBlockDef) Then
               
        'Name der selektierten Block-Instanz holen
        Set swSelMgr = swDoc.SelectionManager
        Set swBlockInst = swSelMgr.GetSelectedObject6(1, 0)
        Set swBlockDef = swBlockInst.Definition
   
        swBlockInstName = swBlockInst.Name
            Debug.Print "Block-Instanz: " & swBlockInstName
        frmAttEdit.txtBlockInst.Text = swBlockInstName
       
        'Daeipfad festlegen
        BlkPath = "Z:\CAD_SWX-Daten\Daten_CBC\_CBC-Tools\CBC_Blocks\000_AutoBlock"
        BlkFile = "TestBlock"
       
        'Block-Definition in Datei speichern
        If Dir(BlkPath, vbDirectory) <> "" Then
       
            'DateiPfad generieren
            BlkPathFile = BlkPath & "\" & BlkFile & ".sldblk"
            Debug.Print "Datei-Pfad: " & BlkPathFile
           
            'Aktuelle Skalierung merken
            MyScale = swBlockInst.Scale2
            Debug.Print "Block-Skalierung aktuell: " & swBlockInst.Scale2
           
            'Skalierung auf 1.0 setzen
            swBlockInst.Scale2 = 1.0001
            Debug.Print "Block-Skalierung neu: " & swBlockInst.Scale2
           
            'Datei speichern
            boolStatus = swBlockDef.Save(BlkPathFile)
           
            'Skalierung zurücksetzen
            swBlockInst.Scale2 = MyScale
            Debug.Print "Block-Skalierung restore: " & swBlockInst.Scale2
        Else
            MsgBox "Path not valid!"
            Exit Sub
        End If
    End If
End Sub

'***************************************************************************************************************

Im Anhang findest Du die Debug.Print-Ausgaben von zwei Test-Läufen mit unterschiedlichen Werten.

Grüße Fred

------------------
Lieber Gruß vom mechanikuss

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 30. Dez. 2022 02:01    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 mechanikuss 10 Unities + Antwort hilfreich

Hi,

ich hätt ja erwartet, dass Skale nur die Instanz betrifft, nicht die Definition.
Aber bei mir reagiert es genauso, wenn ich das von Hand mache.

Hast du einen kompetenten Reseller, den du drauf ansetzen kannst?

ich glaub wir haben im Makro zum Block einfügen ein skale drin. muss ich aber nächstes Jahr mal nachgucken...

Gruß, Christian

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

mechanikuss
Mitglied
Konstruktion Anlagen+Werkzeug+Maschinen


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

Beiträge: 97
Registriert: 04.06.2002

MS-Windows 10 Pro
MS-Office Pro Plus 2019
DS-Solidworks 2019 Pro

erstellt am: 30. Dez. 2022 11:43    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 Christian,

Danke, für deine Rückmeldung.

Tatsächlich ist dieses Verhalten auf allen unserer CAD-Stationen reproduzierbar. Scheint tatsächlich ein Bug zu sein.

Leider sind wir schon seit einiger Zeit aus der Wartungs raus. Somit haben wir keinen Ansproch mehr auf Support.
Der Grund war, dass wir wegen unserer Schwesterdivisionen auf CREO umsteigen mussten.

Solidworks 2019 war die letzte Version. Nur noch eine Abteilung darf Solidworks ausnahmsweise und nur im 2D-Bereich für Kreilauf-Schemata anwenden.

Gruß Fred

------------------
Lieber Gruß vom mechanikuss

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 04. Jan. 2023 14:42    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 mechanikuss 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von mechanikuss:
... darf Solidworks ausnahmsweise und nur im 2D-Bereich ...

Hallo Fred,

das nenn ich mal eine sinnvolle Entscheidung, 2D ist ja eine der größten Stärken von SolidWorks.
deshalb sollte es ja eigentlich SheetWorks heißen, glaub ich ... 

Ich muss das nochmal zu Hause probieren - da hatte ich den Effekt wie von dir beschrieben.
Hier in der Firma nicht ...   

Was ich bei Blöcken immer etwas sperrig finde, ist das Vorschaubild, das in der sldblk-Datei gespeichert wird.
da weiß ich vorher nie so recht, wie es aussieht ...

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

mechanikuss
Mitglied
Konstruktion Anlagen+Werkzeug+Maschinen


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

Beiträge: 97
Registriert: 04.06.2002

MS-Windows 10 Pro
MS-Office Pro Plus 2019
DS-Solidworks 2019 Pro

erstellt am: 10. Jan. 2023 15:01    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

Hi Christian,

zum Thema "SheetWorks" und "Block-Vorschaubild" kann ich auch nur lachen.
Die Skizzen-Blöcke waren schon immer die ungeliebten Stiefkinder in der Familie.

Konntest du schon feststellen, warum sich deine beiden CAD-Stationen unterschiedlich verhalten?

Gruß Fred

------------------
Lieber Gruß vom mechanikuss

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 17. Jan. 2023 10:06    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 mechanikuss 10 Unities + Antwort hilfreich

Hallo,

in der Firma hab ich es einfach mit bestehenden Blöcken auf einer Zeichnung probiert.
und die blieben ziemlich unberührt vom Blattmaßstab.
Wenn ich aber (wie zu Hause) ein paar neue Linien zu einem Block zusammenfasse, dann spielt der Maßstab direkt in den Skalierungsfaktor ...
Und wenn ich beim Erstellen den Blattmaßstab 1:1 habe, dann bleibt in dem Block auch der Skalierungsfaktor 1 - egal was ich dann mit dem Blattmaßstab mache. Entsprechend, wenn ich da 0,2 drin habe ...
--> erstellen in 1:1 mit möglichst wenig drumherum wegen Vorschau.
Aber ich will ja auch gerade keine Blibliothek erstellen ...
Gruß, Christian

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