SolidWorks en standaarden: een aanzienlijke vertraging

Gegroet SolidWorkers!

Ik open dit onderwerp omdat er steeds vaker vragen zijn over SolidWorks en waar ik veel te vaak (zo niet altijd) gedwongen ben om ontkennend te antwoorden.

Deze vragen kunnen worden gegeneraliseerd met de volgende formule:

Hoe kan ik mijn plan annoteren/scoren volgens de huidige normen met SolidWorks?

Het is duidelijk dat SolidWorks op dit punt duidelijk achterloopt.
Tussen ontbrekende symbolen (o.a. ex. ISO 25178, ISO 10135, ISO 13715), niet-conforme weergave-opties (ISO 124-24:2014), onmogelijke annotatiecombinaties (het bevestigen van een oppervlakteafwerkingssymbool aan een geometrisch tolerantiekader (ISO 1302-ISO 1101), ontbrekende ISO-schroefdraadklassen, toolboxcomponenten waarvan de afmetingen niet conform zijn (gelukkig is CAD BOOSTER er)...

Het kostte SolidWorks bijna 4 jaar en veel klachten om de ISO 21920-1 te implementeren die beschikbaar is in versie 2025.

We zullen dit punt langzaam maar zeker gebruiken als onderhandelingshefboom met onze VAR tijdens de volgende verlenging om hem ertoe te brengen ons recht op een conforme software te doen gelden gezien de prijs...

Hebben anderen (bedrijven, gebruikers) evenveel last van deze tekortkomingen en hiaten in deze software?

6 likes

" Solidworks en standaarden; de enorme vertraging "

4 likes

Ik merk op dat je het niet durfde te hebben over GPS-standaarden. :grinning:
ISO 14638:2014 is een basis ISO GPS-standaard.

1 like

Als er de 21920 is

1 like

is te sterk voor je :slight_smile:

1 like

En nogmaals: het duurde meer dan tien jaar en 3 of 4 SR's voordat ze pitchfouten op metrische schroefdraad corrigeerden die niet erg gebruikelijk zijn (inclusief de M33 uit het geheugen): de toonhoogte die door Solidworks werd gegeven, was niet in overeenstemming met de ISO-pitch.

1 like

Daarom houden we van hem :crazy_face:

2 likes

Het is duidelijk dat er maar weinig of geen vertegenwoordigers zijn die zich op dit gebied schuldig voelen aan het gebruik van SolidWorks...

Jammer: ik hoopte echt het onderwerp te verplaatsen naar het vinden van manieren om dit probleem op een efficiëntere manier naar de redacteur te escaleren dan via hun TTL (waarmee ze zelf zeker verloren moeten gaan), misschien zelfs wat Visiativ in deze discussie opnemen.

Ik zal het onderwerp tegen het einde van de maand sluiten als de verzamelde antwoorden niet veranderen of als het nieuws de neiging heeft om te bevestigen dat deze verkeerde afstemming op de normen over het algemeen geen probleem is.

3 likes

Hallo;

Ik denk dat we ons meer moeten bezighouden met een vorm van verzaking in het licht van de immobiliteit van software-uitgevers op dit gebied.
Aan de softwarekant denk ik dat het vooruitzicht dat uitgevers elk jaar enkele duizenden euro's of dollardollars betalen om standaarden te kopen om ze een jaar later op hun software toe te passen, niet erg " rendabel ".

Je hoeft alleen maar naar de tarieven van Afnor te kijken om de bedragen te realiseren die moeten worden gemaakt om dit te realiseren (ik heb zelfs net ontdekt dat ze, door middel van inschrijving, een systeem verkopen om hun eigen normen te " ontcijferen ").

Vermenigvuldig deze sommen met het aantal normen per land en vervolgens met het aantal landen, organisaties, commissies, enz. Het is exorbitant en eindeloos.

Dat gezegd hebbende, zou Solidworks zich moeten inspannen om ons een waardige uitgever voor de symbolen aan te bieden en door te vertrouwen op de gemeenschap zou het mogelijk zijn om vrij snel een catalogus te hebben die die naam waardig is.

omdat... In niet mis te verstane bewoordingen:

; Format:
;;
;; #<Name of library>,<Description of library>
;; *<Name of symbol>,<Description of symbol>
;; A,LINE xStart,yStart,xEnd,yEnd
;; A,CIRCLE xCenter,yCenter,radius
;; A,ARC xCenter,yCenter,radius,startAngle,endAngle
;; A,SARC xCenter,yCenter,radius,startAngle,endAngle
;; A,TEXT xLowerLeft,yLowerLeft,<letter(s)>
;; A,POLY x1,y1,x2,y2,x3,y3
;; A,BOUND x1,x2
;;
;; Units:
;;
;; All x, y, and radius values are in the symbols grid space (0.0 to 1.0),
;; where 0,0 is the lower left corner and 1,1 is the upper right corner.
;; The grid space is considered to be the height of a character squared.
;; All angle values are in degrees.

-------------------------------------------------------------------------------

Het is niet erg gebruikersvriendelijk...
(bron)

Dus, tja... Ja, aan de kant van de BE-vertegenwoordiger, bij gebrek aan iets beters, doen we het... Maar we zouden er niet tegen zijn om een plus te hebben...

4 likes

Verbeteridee nu 2 jaar geleden ingediend: tool voor het maken van symbolen

Denk je dat ze het slecht zouden vinden als ik zo'n verbeterverzoek zou schrijven?

Geef minder geld uit aan uw 3DExperience World-evenementen om te investeren in standaarden en uw software up-to-date te houden.

4 likes

Hallo

Ik denk dat SW niet de enige software is met dit probleem. Ik ben enigszins dezelfde mening toegedaan als @Maclane over de kosten van de normen die moeten worden gevolgd voor een lage winstgevendheid voor de uitgever (er zijn zoveel specifieke kenmerken, afhankelijk van het beroep).
Naar mijn mening hebben ze de meest " standaard " (geometrische specificaties, oppervlakteafwerkingen en lassymbolen) geplaatst na het ontbreken van enkele symbolen (randen van ongedefinieerde vormen), maar ik ben er niet zeker van dat alle ISO GPS-principes worden toegepast in het doel van SW-bedrijven die het doelwit zijn van DS.

3 likes

Hmmm :thinking: :thinking:... onzeker... Maar wees voorzichtig, ze zijn nog steeds vatbaar.
En dan... Er is maar één manier om daar achter te komen. :laughing: :laughing: :laughing:

Ik ga het borderline off-topic maken...

Perplexity biedt me een Python script aan (met de ezdxf library) dat zogenaamd een DXF bestand zou kunnen omzetten in een symbool dat gebruikt kan worden met de Solidworks *.sym library:

import ezdxf

# Fonction pour normaliser une valeur selon l'étendue min-max à l'intervalle [0,1]
def normalize(value, min_val, max_val):
    return (value - min_val) / (max_val - min_val) if max_val > min_val else 0.0

# Fonction principale de conversion DXF -> fichier .sym
def dxf_to_sym(dxf_path, sym_path):
    # Charger le fichier DXF
    dwg = ezdxf.readfile(dxf_path)
    msp = dwg.modelspace()

    # Récupérer toutes les coordonnées (x,y) pour une normalisation correcte
    coords_x = []
    coords_y = []
    for e in msp:
        if e.dxftype() == 'LINE':
            coords_x.extend([e.dxf.start.x, e.dxf.end.x])
            coords_y.extend([e.dxf.start.y, e.dxf.end.y])
        elif e.dxftype() in ('CIRCLE', 'ARC'):
            coords_x.append(e.dxf.center.x)
            coords_y.append(e.dxf.center.y)
        elif e.dxftype() == 'TEXT':
            coords_x.append(e.dxf.insert.x)
            coords_y.append(e.dxf.insert.y)

    # Définir les bornes min et max
    min_x, max_x = min(coords_x), max(coords_x)
    min_y, max_y = min(coords_y), max(coords_y)

    with open(sym_path, 'w', encoding='utf-8') as file:
        file.write(";; Bibliothèque de symboles générée automatiquement\n")
        file.write("#MySymbols, Bibliothèque personnelle\n")

        # Parcourir les entités pour exporter en format .sym
        for e in msp:
            if e.dxftype() == 'LINE':
                x1 = normalize(e.dxf.start.x, min_x, max_x)
                y1 = normalize(e.dxf.start.y, min_y, max_y)
                x2 = normalize(e.dxf.end.x, min_x, max_x)
                y2 = normalize(e.dxf.end.y, min_y, max_y)
                file.write(f"*LineSymbol,Ligne simple\n")
                file.write(f"A,LINE {x1:.3f},{y1:.3f},{x2:.3f},{y2:.3f}\n")

            elif e.dxftype() == 'CIRCLE':
                cx = normalize(e.dxf.center.x, min_x, max_x)
                cy = normalize(e.dxf.center.y, min_y, max_y)
                # Normalisation du rayon approximative selon largeur (ajustable)
                r = e.dxf.radius / (max_x - min_x) if max_x != min_x else 0
                file.write(f"*CircleSymbol,Cercle simple\n")
                file.write(f"A,CIRCLE {cx:.3f},{cy:.3f},{r:.3f}\n")

            elif e.dxftype() == 'ARC':
                cx = normalize(e.dxf.center.x, min_x, max_x)
                cy = normalize(e.dxf.center.y, min_y, max_y)
                r = e.dxf.radius / (max_x - min_x) if max_x != min_x else 0
                start_angle = int(e.dxf.start_angle)
                end_angle = int(e.dxf.end_angle)
                file.write(f"*ArcSymbol,Arc simple\n")
                file.write(f"A,ARC {cx:.3f},{cy:.3f},{r:.3f},{start_angle},{end_angle}\n")

            elif e.dxftype() == 'TEXT':
                x = normalize(e.dxf.insert.x, min_x, max_x)
                y = normalize(e.dxf.insert.y, min_y, max_y)
                text = e.text.replace(',', '')  # enlever virgules
                file.write(f"*TextSymbol,Texte simple\n")
                file.write(f"A,TEXT {x:.3f},{y:.3f},<{text}>\n")

if __name__ == "__main__":
    dxf_to_sym('votre_fichier.dxf', 'symboles.sym')

Uitleg:

ezdxf charge et lit les entités 2D du fichier DXF à partir du "modelspace".

On collecte toutes les coordonnées X et Y de toutes les entités pour calculer les bornes min/max, ce qui permet de normaliser chaque coordonnée entre 0 et 1. Cette normalisation est nécessaire car SolidWorks attend des coordonnées relatives dans la grille de symbole.

On traite les types essentiels : LINE, CIRCLE, ARC, TEXT ; pour chacun, on écrit une ligne dans le format lisible par SolidWorks.
Le rayon d’un cercle ou d’un arc est normalisé aussi, approximativement selon la largeur du dessin.
Le texte est nettoyé pour éviter les virgules incompatibles.
Le fichier .sym produit peut être ajouté à la bibliothèque de SolidWorks et utilisé directement.

En daar stop ik... tot op heden heb ik nog nooit een Python-script gebruikt/gemaakt en ben ik op dit moment niet in staat om de relevantie van dit script te interpreteren of te evalueren.
Bovendien is het een " direct van AI (Perplexity) " met alle problemen die inherent zijn aan dit postulaat.
Als meer avontuurlijk dan ik willen dit script goed te testen ... Bedankt en veel succes...

2 likes

Als het rechtstreeks met AI werkt, is het prachtig.

2 likes

Hallo @Maclane
Ik denk dat het mogelijk moet zijn om dit script aan te passen naar vba om een SW-schets om te zetten in een symbool.

Voor het volledige jaar 2024 genereerde Dassault Systèmes een omzet van € 6,21 miljard, een stijging van 5% bij constante wisselkoersen, en een nettowinst van € 1,2 miljard, een stijging van 14% ten opzichte van 2023.

Tot slot, kunnen de kosten van normen echt een excuus zijn?

Aan de andere kant, door in de huid te kruipen van een ondernemer (misschien een beetje gek) die zich op deze markt wil plaatsen met een nieuwe CAD-software, zijn al deze standaarden (hun integratie en onderhoud) niet inputgegevens voor het ontwerpen van dergelijke software?

2 likes

Ik ben het niet echt met je eens over de kwestie, en ik vind dat je het heel moeilijk hebt met Dassault over dit onderwerp.

Toegegeven, het beheer van normen is niet optimaal ... Maar ik kan net zo goed uitgaan van het uitgangspunt dat ze er nooit in zal knijpen en dat ik dat ook nooit kan zijn. Te veel normen die specifiek zijn voor elk beroep/werkregio.

Aan de andere kant, wat jammer is, is dat Solidworks, uitgaande van deze stand van zaken, niet heeft besloten om zijn software een beetje te " openen ", zodat we autonoom kunnen implementeren.
In Creo bijvoorbeeld was de weergave van de lassen erg slecht: maar met de software kon je de symbolen naar wens aanpassen, dus het probleem was snel opgelost.

Het lijkt mij relevanter om te proberen aan deze kant te vechten in plaats van alle normen in Solidworks te willen zien :slight_smile:

3 likes

De oplossing is simpel; het zou voldoende zijn voor SW om toegang te hebben tot de databases van de " standaardiseerders " om het laden van de gebruikte standaarden mogelijk te maken, inclusief de meest recente of gewijzigde, zonder dat Dassault SW hoeft bij te werken, zoals voor bibliotheken van modellen en gegevensfabrikanten/leveranciers,

2 likes

Het lijkt mij dat er een manier is om verschillende symbolen via blokken aan te passen? Maar het is erg ondoorzichtig.
We hebben geprobeerd twee eigenschappen in een bubbel te stoppen, maar het was onmogelijk om de vorm te veranderen. Er zijn mogelijkheden die onbekend zijn bij gebruikers en waarmee we vormen kunnen wijzigen. Maar de hulp beperkt zich tot het gebruik van de software.

1 like