Ile czasu zajęłaby wam customizacja CAD-a?

Ile czasu zajęłaby wam customizacja CAD-a?
dedicated
  • Rejestracja:około 6 lat
  • Ostatnio:około 8 godzin
  • Postów:160
0

Cześć,

Mam pytanie do seniorów, którzy rozwijali kiedyś jakiegoś CAD-a.
Ile czasu zajęłoby Wam zrobienie customowego CAD-a (np. takiego jak Sketchup) zaczynając od wersji open-sourcowej (np. od FreeCAD-a)?

Zdaję sobie sprawę, że pytanie jest zbyt ogólne. Dlatego doprecyzuję:
"Customowy CAD" to CAD, który spełnia jednocześnie następujące warunki:

  • istnieje dokładnie jedna kategoria projektu, dla którego użycie tego CAD-a jest szczególnie wygodne (przykładowe kategorie projektów: budynek, detal do wydruku 3D, produkt agd),
  • do wykonania projektu nie jest wymagane użycie innych programów (czyli można zrobić projekt od początku do końca),
  • wygoda użycia nie jest istotnie gorsza od najwygodniejszego CAD-a w danej kategorii.

Dodam też pytania pomocnicze.

  1. Czy istnieje CAD opensourcowy który jest na tyle dobrze napisany, że można do niego po prostu "dopisywać" kolejne featury?

  2. Jak często trzeba pisać low-levelowy kod (renderowanie, triangulacje, itp.)?

  3. Ile średnio ficzerów trzeba dopisać, by CAD stał się "customowym CAD-em".

  4. Czy często zdarzają się nieoczekiwane performance dropy w związku z dopisaniem jakiegoś featura?

  5. Jakiej wielkości byłaby gra komputerowa wymagająca tego samego nakładu pracy, co customizacja CAD-a?

  6. Jakie są najczęstsze problemy na jakie natrafimy podczas takiego projektu?

    Gorąco zachęcam do podzielenia się doświadczeniami.
    Pozdrawiam.

edytowany 1x, ostatnio: dedicated
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
2

Ciężkie osobo-lata w mieszanym zespole.

Pytasz bo ???


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
dedicated
Próbuję oszacować koszt. BTW. Co to znaczy w "mieszanym zespole"?
ZD
Programiści / dziedzina
dedicated
Hmmm... Czy taki projekt wymaga specjalistów z więcej niż jednej dziedziny?
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6630
1
  1. Sądzę, że Blender by się nadał do tego, żeby z niego zrobić CAD'a. Można tam w Pythonie pisać różne skrypty, dodatki itd. Nawet już ktoś na to wpadł i są takie rzeczy porobione. Np. https://blender-addons.org/cad-like-transform-addon/

🕹️⌨️🖥️🖱️🎮
edytowany 3x, ostatnio: Spine
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
3

@Spine:

Pytanie na ile program graficzny, nawet zaawansowany, ma wspólnego z CAD.
Zrobienie z niego - na przykład, bo to znam - CAD-a do elektroniki przewyższa zasoby potrzebne do jego powstania.

Pełny projekt mostu - bez użycia innych programów - ? Śmiech na sali.

Hmmm... Czy taki projekt wymaga specjalistów z więcej niż jednej dziedziny? — dedicated dziś, 16:14

intryguje mnie - już pytałem - powód zadania tego pytania. Bo pojęcie masz jak (zdolny???) nastolatek o rakiecie księżycowej.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
edytowany 1x, ostatnio: ZrobieDobrze
flowCRANE
@several: nie mam dowodów. Ale tego typu bóldupców w internecie na pęczki.
several
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 11 godzin
3

@ZrobieDobrze: Twoje komentarze w stylu.

Śmiech na sali.
Bo pojęcie masz jak (zdolny???) nastolatek o rakiecie księżycowej.

psują ogólno merytoryczny wydźwięk Twoich postów, nikogo nie interesują Twoje personalne komentarze w kierunku innych osób. Nie jesteś Linusem Torvaldsem żeby mieć wolną kartę na bycie dupkiem.

@dedicated:

Mam pytanie do seniorów, którzy rozwijali kiedyś jakiegoś CAD-a.

No co za zbieg okoliczności, bo wg tytułu w umowie jestem seniorem i rozwijam od czterech lat CADa zbudowanego od zera.

Ile czasu zajęłoby Wam zrobienie customowego CAD-a (np. takiego jak Sketchup) zaczynając od wersji open-sourcowej (np. od FreeCAD-a)?

Zależy od zagadnienia/domeny w której CAD ma operować, ale załóżmy, że chcemy zrobić różnicę, jesteś już specjalistą w danej domenie i jesteś też bardzo wydajnym programistą, z takim optymistycznym założeniem po dwóch latach miałbyś coś używalnego, taki Proof of Concept a pewnie po pięciu doszedłbyś do jako takiej formy, którą prawdopodobnie masz teraz w głowie. Stąd taka estymata?

Otóż CAD przy którym obecnie pracuję miał pierwsze wydanie w pierwszej połowie lat dziewięćdziesiątych i w pierwszej postaci był po prostu takim domenowym kalkulatorem. Został założony przez doktora matematyki i domenowego eksperta. Tak jakoś w pierwszej połowie lat dwutysięcznych, po dziesięciu latach prac, zyskał pierwszy, zauważalny wzrost popularności z tymże po drodze pojawiali się dodatkowi programiści. Także zakładam, że gdyby wtedy mieli tyle software'u z którego mogliby kraść czerpać wiedzę to może jeszcze pod koniec lat dziewięćdziesiątych zyskałby większą uwagę.

A i tak "ojciec założyciel", który wciąż kontrybuje kod, twierdzi, że wzrost popularności zawdzięczamy zmianie nazwy produktu i marketingowi. Teraz odpowiem na pomniejsze pytania.

Czy istnieje CAD opensourcowy który jest na tyle dobrze napisany, że można do niego po prostu "dopisywać" kolejne featury?

Co znaczy dobrze napisany? Jeżeli chcesz twardo bazować na jakiejś platformie to wtedy piszesz plugin do autocada. Jeżeli chcesz mieć coś faktycznie swojego to bazowanie na jakimś gotowcu nie musi być koniecznie złym pomysłem, ale i tak pierwszym krokiem byłoby wycięcie prawie wszystkiego by został Ci taki szablon do którego zaczniesz dodawać swój toolset. Także nie patrzysz czy ten opensourcowy CAD jest dobrze napisany tylko co oferuje renderer i jak wyglada praca z UI.

Jak często trzeba pisać low-levelowy kod (renderowanie, triangulacje, itp.)?

Często, szczególnie triangulacje, chyba że piszesz plugin to autocada to w sumie nie wiem. U mnie w projekcie mamy programistę, który co drugi tydzień robi coś związanego z triangulacją.

Ile średnio ficzerów trzeba dopisać, by CAD stał się "customowym CAD-em".

Czyli nawet nie wiesz co chcesz zrobić? Co tu mam Ci odpisać niby? "Dokładnie 74." ? To najgorzej jak trzeba przyznać rację takiemu @ZrobieDobrze. Trzeba dodać tyle ficzerów by przyspieszał rozwiązanie problemu w danej domenie. CAD to pojemne pojęcie, program do symulacji działania bramek logicznych w celu osiągnięcia jakiegoś sygnału można by nazwać CADem.

Czy często zdarzają się nieoczekiwane performance dropy w związku z dopisaniem jakiegoś featura?

To jest bardzo konkretne pytanie, którego odpowiedź nic Ci nie da bo w każdym zespole to będzie wyglądało inaczej. U nas jak zrobimy release i wrzucamy ficzery na kolejny release do głównego brancha mamy zazwyczaj spory drop Zamroziliśmy release na to p.... Zazwyczaj trwa to jakiś tydzień lub dwa i wszystko wraca do normy.


dedicated
@several: Dzięki za odpowiedź. Dała mi ona dosyć klarowny obraz sytuacji.
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
1

@several:

Podjąłes bardziej ciekawy aspekt "osobo-lat".

Tak jak dziewięć kobiet nie urodzi dziecka w 1mc, tak trudno wytworzyć KOMPLEKSOWY produkt bez konfrontacji z użytkownikami, które ficzery są pozytywnie ważne, które warto ulepszyć, a które są tylko mrzonką "jak nam się wydawało". Testy, potknięcia, błędy projektowe itd ... Nawet zatrudniając obszerny zespól.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
edytowany 2x, ostatnio: ZrobieDobrze
Zobacz pozostałe 2 komentarze
dedicated
@ZrobieDobrze: dwóch smutnych panów?
several
@dedicated: Wystarczy zrobić klona 1:1 chętnie zbadałbym przypadek, w którym taki model udał się komercyjnie.
several
Podkradanie pomysłów albo kopiowanie funkcjonalności to nie klonowanie 1:1
dedicated
@several: W sumie racja. 1:1 to zaokrąglenie.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)