SolidWorks i standardy: znaczne opóźnienie

Witajcie, SolidWorkers!

Otwieram ten temat, ponieważ coraz częściej pojawiają się pytania dotyczące SolidWorks, na które zdecydowanie zbyt często (jeśli nie zawsze) zmuszony jestem odpowiadać przecząco.

Pytania te można uogólnić za pomocą następującego wzoru:

W jaki sposób mogę dodać adnotacje/ocenić mój plan zgodnie z aktualnymi standardami za pomocą SolidWorks?

Oczywiste jest, że SolidWorks pozostaje wyraźnie w tyle w tym punkcie.
Pomiędzy brakującymi symbolami (m.in. ex. ISO 25178, ISO 10135, ISO 13715), niezgodnymi opcjami wyświetlania (ISO 124-24:2014), niemożliwymi kombinacjami adnotacji (dołączanie symbolu wykończenia powierzchni do ramki tolerancji geometrycznej (ISO 1302-ISO 1101), brakującymi klasami gwintów ISO, komponentami toolbox, których wymiary nie są zgodne (na szczęście CAD BOOSTER jest)...

Wdrożenie normy ISO 21920-1 dostępnej w wersji 2025 zajęło SolidWorks prawie 4 lata i wiele skarg.

Powoli, ale pewnie wykorzystamy ten punkt jako dźwignię negocjacyjną z naszym VAR-em podczas następnego odnowienia, aby skłonić go do dochodzenia naszego prawa do zgodnego oprogramowania, biorąc pod uwagę jego cenę...

Czy inni (firmy, użytkownicy) cierpią tak samo z powodu tych niedociągnięć i luk w tym oprogramowaniu?

6 polubień

" Solidworks i standardy; Ogromne opóźnienie "

4 polubienia

Zauważyłem, że nie odważyłeś się mówić o standardach GPS. :grinning:
ISO 14638:2014 to podstawowy standard ISO GPS.

1 polubienie

Jeśli jest 21920

1 polubienie

jest dla ciebie za silny :slight_smile:

1 polubienie

I znowu: zajęło im to ponad dziesięć lat i 3 lub 4 SR, aby skorygować błędy skoku na gwintach metrycznych, które nie są zbyt powszechne (w tym M33 z pamięci): skok podany przez Solidworks nie był zgodny z podziałką ISO.

1 polubienie

Dlatego go kochamy :crazy_face:

2 polubienia

Oczywiście niewielu, jeśli w ogóle, przedstawicieli BE, którzy czują się winni w tym temacie w korzystaniu z SolidWorks...

Szkoda: naprawdę miałem nadzieję, że uda mi się przesunąć temat w kierunku znalezienia sposobów na eskalację tego problemu do edytora w sposób bardziej efektywny niż poprzez ich TTL (z którym oni sami z pewnością muszą się pogubić), może nawet włączyć do tej dyskusji jakiś Visiativ.

Zamknę ten temat do końca miesiąca, jeśli zebrane odpowiedzi się nie zmienią lub jeśli wiadomości będą potwierdzać, że ta niezgodność ze standardami nie jest ogólnie problemem.

3 polubienia

Witam;

Myślę, że w obliczu braku mobilności wydawców oprogramowania w tym temacie mamy do czynienia z pewną formą wyrzeczenia.
Jeśli chodzi o oprogramowanie, myślę, że perspektywa płacenia przez wydawców co roku kilku tysięcy euro lub dolarów za zakup standardów, aby rok później zastosować je w swoim oprogramowaniu, nie jest zbyt " bankowa ".

Wystarczy spojrzeć na stawki Afnoru, aby zdać sobie sprawę z kwot, jakie trzeba ponieść, aby to zrealizować (właśnie odkryłem, że sprzedają, w ramach subskrypcji, system " rozszyfrowywania " własnych standardów).

Pomnóż te sumy przez liczbę norm w danym kraju, a następnie przez liczbę krajów, organizacji, komisji itp. Jest wygórowany i nieskończony.

To powiedziawszy, Solidworks powinien dołożyć starań, aby zaoferować nam godnego wydawcę symboli, a polegając na społeczności, możliwe byłoby dość szybkie posiadanie katalogu godnego tej nazwy.

ponieważ... W sposób jednoznaczny:

; 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.

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

To nie jest zbyt maniakalne...
(źródło)

Więc, cóż... tak, po stronie Przedstawiciela BE, z braku niczego lepszego, robimy... Ale nie bylibyśmy przeciwni temu, żeby mieć plusa...

4 polubienia

Pomysł na ulepszenie zgłoszony 2 lata temu: Narzędzie do tworzenia symboli

Czy myślisz, że źle by to przyjęli, gdybym napisał taką prośbę o poprawę?

Wydawaj mniej pieniędzy na wydarzenia 3DExperience World , aby inwestować w standardy i aktualizować oprogramowanie.

4 polubienia

Witam

Myślę, że SW nie jest jedynym oprogramowaniem z tym problemem. Jestem poniekąd tego samego zdania co @Maclane kwestii kosztów standardów, których trzeba przestrzegać, aby uzyskać niską rentowność dla wydawcy (jest tak wiele specyfiki w zależności od zawodu).
Moim zdaniem umieścili oni najbardziej " standardowe " (specyfikacje geometryczne, wykończenia powierzchni i symbole spawania) po tym, jak rzeczywiście pominęli niektóre symbole (krawędzie o nieokreślonych kształtach), ale nie jestem pewien, czy wszystkie zasady ISO GPS są stosowane w celu firm programistycznych docelowych przez DS.

3 polubienia

Hmmm :thinking: :thinking:... Pewien... Ale bądź ostrożny, nadal są podatne.
A potem... Jest tylko jeden sposób, aby się tego dowiedzieć. :laughing: :laughing: :laughing:

Zamierzam sprawić, że będzie to na granicy nie na temat...

Perplexity oferuje mi skrypt w Pythonie (z biblioteką ezdxf), który rzekomo byłby w stanie przekonwertować plik DXF na symbol, który może być używany z biblioteką Solidworks *.sym:

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')

Wyjaśnienia:

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.

I na tym się zatrzymuję... do tej pory nigdy nie używałem/nie stworzyłem skryptu w Pythonie i na razie nie jestem w stanie zinterpretować ani ocenić znaczenia tego skryptu.
Co więcej, jest to " bezpośrednio od AI (Zakłopotanie) " ze wszystkimi problemami nieodłącznie związanymi z tym postulatem.
Jeśli bardziej żądny przygód niż ja chcesz przetestować ten skrypt dobrze... Dziękuję i życzę powodzenia...

2 polubienia

Jeśli działa prosto ze sztuczną inteligencją, jest pięknie.

2 polubienia

Witam @Maclane
Myślę, że powinno być możliwe dostosowanie tego skryptu do vba, aby przekonwertować szkic SW na symbol.

W całym roku 2024 Dassault Systèmes wygenerował przychody w wysokości 6,21 mld euro, co oznacza wzrost o 5% przy stałych kursach walutowych, oraz zysk netto w wysokości 1,2 mld euro, co oznacza wzrost o 14% w porównaniu z 2023 rokiem.

Wreszcie, czy koszt norm może być naprawdę wymówką?

Z drugiej strony, stawiając się w sytuacji przedsiębiorcy (być może trochę szalonego), który chce zaistnieć na tym rynku z nowym oprogramowaniem CAD, czyż wszystkie te standardy (ich integracja i utrzymanie) nie są danymi wejściowymi do projektowania takiego oprogramowania?

2 polubienia

Nie do końca zgadzam się z tobą w tej kwestii i uważam, że naprawdę trudno jest ci rozmawiać z Dassault w tym temacie.

Trzeba przyznać, że zarządzanie standardami nie jest optymalne... Ale równie dobrze mogę wyjść z założenia, że ona nigdy tego nie ściska, a ja i tak nigdy nie mogę. Zbyt wiele norm specyficznych dla każdego zawodu/regionu pracy.

Z drugiej strony niefortunne jest to, że wychodząc od tego stanu rzeczy, Solidworks nie zdecydował się nieco " otworzyć " swojego oprogramowania, abyśmy mogli wdrażać autonomicznie.
Na przykład w Creo odwzorowanie spoin było naprawdę złe: ale oprogramowanie pozwalało modyfikować symbole według własnego uznania, więc problem został szybko rozwiązany.

Wydaje mi się, że bardziej istotna jest próba walki po tej stronie, niż chęć zobaczenia wszystkich standardów obecnych w Solidworks :slight_smile:

3 polubienia

Rozwiązanie jest proste; wystarczyłoby, aby SW miał dostęp do baz danych " standaryzatorów ", aby umożliwić wczytywanie używanych standardów, w tym najnowszych lub zmodyfikowanych, bez konieczności aktualizowania oprogramowania przez Dassault, jak w przypadku bibliotek modeli i producentów/dostawców danych,

2 polubienia

Wydaje mi się, że istnieje sposób na modyfikację różnych symboli za pomocą bloków? Ale jest bardzo nieprzejrzysty.
Próbowaliśmy umieścić dwie właściwości w bańce, ale nie udało się zmienić kształtu. Istnieją nieznane użytkownikom możliwości, które pozwalają nam na modyfikację kształtów. Ale pomoc ogranicza się do korzystania z oprogramowania.

1 polubienie