Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Vytvorenie Sweep with draft direction

Kompletní přehled příspěvků v tématu Vytvorenie Sweep with draft direction řazený podle data jejich publikace na fóru.

UživatelPříspěvek
jukom

Poslat zprávu | Profil
Datum: 30.5. 2016 | Zobrazeno: 9027x
Konfigurace CATIA: V5R24

Text dotazu:
Dobrý deň,
potreboval by som poradiť ako vo Visual Basicu 2010 vytvoriť sweep with draft direction. Na prvý pohľad mi to prišla jednoduchá záležitosť, v Catscript to nie je problém. Vo Visuali sa o to však pokúšam už dlhšiu dobu, dokonca aj s iným typom sweepu a problém je pri zadefinovaní modu (Subtype) a draft direction. Posielam v prílohe aj kód a chybnú hlášku

Za každú radu vopred ďakujem

Přiložené obrázky:

Ing Jan Cinert

Poslat zprávu | Profil
[#5831] | Publikováno: 30.05. 2016 - 14:44
Není to tím, že používáte příkaz AddNewSweep místo AddNewSweepLine? Tam bych viděl problém, jinak se to zdá být OK.

Není mi úplně jasné co je ve spodní části obrázku? Další možnost co jste zkoušel?

Jinak pokud něco funguje v CATScriptu, většinou to jede i ve Visualu.

Doporučuju podívat se při debugu do vlastností objektu Sweepu, jestli se vytvořil tak jak měl, tj. jestli opravdu obsahuje vlastnost Mode atd.

jukom

Poslat zprávu | Profil
[#5832] | Publikováno: 30.05. 2016 - 15:10
Uživatel odpovídá na příspěvek #5831:

Práveže tento príkaz som použil tiež a neprešlo to tak som skúšal rôzne kombinácie, dokonca aj nezadať typ objektu a neprešlo to.
Ako prvé som skúsil príkaz AddNewSweepLine, tento obsahoval vlastnoť Mode. Aj som sa dopátral k hodnotám aké môže obsahovať. Pre mňa .Mode = 6. Tu mi však vždy hodilo hlášku ako som priložil vyššie v prílohe "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."

Potom som skúsil teda príkaz AddNewSweepLine pri ktorej už vlastnosť Mode nebola k dispozícii, napriek tomu som ju zadal. Prešlo to čo som sa čudoval, že nehodilo chybové hlásenie. No aj tak som sa zastavil pri definovaní Draft direction. To nešlo ani v jednom prípade navoliť. Aj keď som skúsil pri oboch prípadoch vyvolať AppendHybridShape do geometrického setu, aby som sa pozrel čo všetko je definované, tak vo sweepe chýbal Draft Direction. Keď som ho manuálne ešte navolil a dal Preview, tak sa tento sweep choval, akoby to nebol vôbec sweep - posielam obrázok v prílohe. Ale keď som spustil makro na tento vytvorený sweep o aký typ sa jedná, tak mi vypísalo že je to HybridShapeSweepLine.

Přiložené obrázky:

Ing Jan Cinert

Poslat zprávu | Profil
[#5833] | Publikováno: 30.05. 2016 - 15:34
A není tedy chyba v referenci pro DraftDirection? Musí to být typ plane nebo line.

Pokud se sweep nevytvoří ani manuálně, tak je chyba v geometrii.
jukom

Poslat zprávu | Profil
[#5834] | Publikováno: 30.05. 2016 - 16:10
Uživatel odpovídá na příspěvek #5833:

Určite aj tam bude niečo chybné, ale vychádzal som z Catscriptu, ktorý som si pred tým spravil a ktorý ide. DraftDirection musí byť typu HybridShapeDirection, čo mám a je vytvorený z referencie HybridShapeLineExplicit, čo je mŕtva úsečka. Pri tvorbe sweepu manuálne aj cez Catscript mi to všetko prešlo. Skúšam však ďalej prísť na chybu, ale zatiaľ neúspešne.

Ešte by som upresnil, sweep manuálne vytvoriť šiel. Nejde však vytvoriť, ak som cez AppendHybridShape vyvolal do geometrického setu nedotvorený sweep - teda len s definovaním vodiacej krivky a do neho manuálne "dovybral" umrtvenú krivku...

Už jediné čo ma napadá, skúsiť makro v nižšej verzii catie V5R19 a nie V5R24
Ing Jan Cinert

Poslat zprávu | Profil
[#5835] | Publikováno: 30.05. 2016 - 17:59
V tom bych problém neviděl - pokud tedy máte odpovídající knihovny. Zrovna knihovna pro HybridShapeDesign se tady hodně liší, resp. asi od R22 se jmenuje úplně jinak. Tady pak musí být pro každý release samostatná kompilace.

Jestli máte víc instalovaných Catií, tak si ověřte jakou máte registrovanou - z té si Visualko tahá knihovny. Jestli máte puštěný jiný release než registrovaný, tak je to jasné.

Další úvaha:
Jestli vzniká chyba už při nastavení typu sweepu, nebude problém v referenci. To se většinou projeví až při konečném update. Někdy zlobí reference - v dokumentaci je jako vstup uvedený typ Reference, ale musí se použít přímo samotná feature. Už několikrát se mi to stalo, také jsem se s tím vztekal.

jukom

Poslat zprávu | Profil
[#5836] | Publikováno: 31.05. 2016 - 11:25
Uživatel odpovídá na příspěvek #5835:

Tak som opäť urobil zopár pokusov, trocha som sa posunul ďalej, ale stále sa mi sweep nepodaril dotiahnúť do konca.

Knižnicu mám si myslím správnu Interop.HybridShapeTypeLib (trocha ma zarazilo, že je typu .Net a nie .Com ako ostatné knižnice). No každopádne vytvárať iné prvky typu HybridShape mi ide, tak preto sa aj domnievam, že by mala byť správna a Catiu na tomto PC mám len jednu, tak tu problém by tiež nemal byť.

Kód, ktorý z časti funguje posielam v prílohe. Zaujímavosťou je, že definovaný sweep mám HybridShapeSweep a vtedy ak mu zvolím vlastnosť Mode = 6, tak sa nastaví správny sweep. Overil som to aj keď som pred tým spravil manuálne sweep iného typu, aby som si bol istý, či sa cez makro nastaví ten môj požadovaný. To prešlo, napriek tomu že HybridShapeSweep nemá vlastnosť Mode a paradoxne HybridShapeSweepLine túto vlastnosť má, ale pri nastavení vlastnosti Mode na akúkoľvek hodnotu od 1 do 6 program spadne.

Teraz ostáva ešte stále problém s nastavením DraftDirection... tu som skúšal dávať snáď všetky typy objektov, ktoré by mohli prichádzať do úvahy... Od typu Reference, HybridShapeDirection alebo aj vytvorenú referencu z neho, aj priamo HybridShapeLineExplicit a dokonca aj HybridShapePlaneNormal (keďže manuálne cez kontextové menu pravého tlačítka teda voľby sa dá navoliť Line alebo Plane) a nič neprešlo.

Som dosť zúfalý už z toho, lebo som nečakal, že sa na relatívne triviálnej záležitosti takto zaseknem...

S tou knižnicou ako som čítal od vás by mohla byť možno chyba, keďže som ju tam inportoval zo zdielaného disku. Nenašiel som ju totižto medzi .Com objektami. No vylúčil som tú možnosť, keďže ostatné prvky tvoriť idú.
Ešte posielam aj cestu: K:\enf\dc_r1964\cl\B19SP9\3DParty\EDM_12_02\GunTool\vb\Interop.HybridShapeTypeLib.dll
Neviem teraz či to B19 si mám vysvetliť že je to knižnica patriaca V5R19 alebo či existuje B19 a teraz či musím kdesi "zohnať" knižnicu pre R24. No aj tak nechápem že ostatné prvky tvoriť idú

Ak by ste mi s týmto nejako poradili, budem moc vďačný.

Přiložené obrázky:

Ing Jan Cinert

Poslat zprávu | Profil
[#5837] | Publikováno: 31.05. 2016 - 14:59
Já jsem se Sweepem nikdy takové problémy neměl.

Pořád bych to viděl na problém s knihovnou. V seznamu COM objektů se totiž nejmenuje HybridShape..., ale CATGsm a tak nějak dál. Pokud máte HybridShape a ještě jako .NET, už je to produkt Visuálka. Já už také jedu na ty varianty .NET, ale to je jen struktura objektového modelu. Proto mám ke každému release vygenerované příslušné .NET varianty a s těmi pracuju. Když potřebuju rekompilovat, jen je prohodím.

S knihovnami je to poměrně zapeklité - některé objekty zůstaly nedotčené or R19, jiné se mění. Vždycky proto musíte mít tu odpovídající, jinak to může padat.

.NET knihovna z Visuálka se vždy bude jmenovat Interopp.HybridShapeTypeLib.dll, ale pokaždé má jinou velikost - může to být i podle service packu...
jukom

Poslat zprávu | Profil
[#5839] | Publikováno: 01.06. 2016 - 10:10
Uživatel odpovídá na příspěvek #5837:

Naozaj bol problém s knižnicou. Nepodarilo sa mi síce nájsť .NET knižnicu (všetky čo som našiel mali rovnakú veľkosť a asi len vždy iné umiestnenie, čiže kópie), tak som prešiel na variantu COM a importoval som knižnicu s tým názvom CATGsm... potom už len upravil Sweep na typ ako má naozaj byť čiže HybridShapeSweepLine a všetky vlastnosti mi už prešli, sweep vytvorený :)

Problém s knižnicami som zatiaľ nemal, nenapadla má teda ani tá varianta, že ich môže byť viacej na dané workbenche. Myslel som, že sa každá knižnica vždy nahradí na najnovšiu verziu

Každopádne mockrát ďakujem :)
Ing Jan Cinert

Poslat zprávu | Profil
[#5840] | Publikováno: 01.06. 2016 - 12:07
To je právě problém - náhrada proběhne pouze při registraci novějšího release, tj. při instalaci. Jinak se musí daný release registrovat manuálně.

Pokud používáte COM reference, pracuje Visuálko s aktuálně registrovanou knihovnou. Já jsem si právě kvůli tomu, abych nemusel vždy provést přeregistraci na jiný release vytvořil všechny varianty v .NETu, a mám je uložené společně v adresářích. (pro většinu maker stačí nějakých 8 základních knihoven
Ing Jan Cinert

Poslat zprávu | Profil
[#5841] | Publikováno: 01.06. 2016 - 12:11
... na obrázku jsou označení ty, které stačí pro Part, Sestavu, Výkresy, Plochy a měření. Ostatní jsou ještě obrábění, anotace a práci s materiálem.

Tohle je jediná nevýhoda .NET oproti VBA - pro každý release musí být jiná verze makra. Ale jak říkám, rekompilace je otázka 10minut, pokud je objektová struktura (vlastnosti a metody) stejná.

Ve vyšších release sem tam něco přibyde, takže se zpětnou kompatibilitou je to někdy horší.

Přiložené obrázky:



Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.