ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Registrujte se na 22. ročník konference CADfórum 2025 - 30.9. Zámek Valeč.
Přes 119.000 registrovaných u nás, celkem 1.098.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků. Vyzkoušejte nový přesný Inženýrský kalkulátor a aktualizovaný Generátor čarových kódů.
AEC Collection - kompletní CAD/BIM nástroje pro projektování
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenochyba délky při etitaci 3D křivky pomocí Vlastnoti

 Odpovědět Odpovědět archiv
Autor
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Téma: chyba délky při etitaci 3D křivky pomocí Vlastnoti
    Zasláno: 07.říj.2011 v 21:20
Původně odeslal(a) Vladimír Michl Vladimír Michl napsal(a):

To není nějaký výmysl Autodesku, ani nic moc nového.


Smile Vim, ze je ve VisualLispu dlouho mnoho funkci zacinajicich na "V", ktere v AutoLispu nebyly. Moc jsem je nevyuzival a ani neznal. Zkousim s nimi pracovat v posledni dobe. Zrovna dnes jsem se s nimi trochu trapil nez jsem pochopil, ze jde o BUG... Confused

Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21967
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 20:48
To není nějaký výmysl Autodesku, ani nic moc nového. Kvůli podpoře ActiveX zavedené s příchodem VisualLISPu bylo jen potřeba předávat ActiveX funkcím jednoznačné identifikace výkresových objektů - ty ale mají jiný formát než je lispovské "entity name". Oba typy identifikace objektu mohou koexistovat společně. Problémy s historickou kompatibilitou nejsou žádné.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 20:39
Původně odeslal(a) Vladimír Michl Vladimír Michl napsal(a):

Na ID objektu není nic složitého - je to identifikace entity určená pro objektové (ActiveX) funkce volané z VisualLISPu. Z ID entity jej získáte tou vámi zmíněnou funkcí (vlax-ename->vla-object).
 
S objektem pak můžete dělat takové oprace jako např.:
(vla-get-length objID)
(vla-get-layer objID)
 


A nevite proc Autodesk pridal dalsi ID? Proc nestacil ten klasicky? Ma to nejakou vyhodu (vice moznosti, rychlost, pohodlnost prace....).
Jaka je kompatibilita pro starsi AutoCady? Myslim jako kompatibilita funkci, ktere vyuzivaji ID.
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21967
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 20:00
Na ID objektu není nic složitého - je to identifikace entity určená pro objektové (ActiveX) funkce volané z VisualLISPu. Z ID entity jej získáte tou vámi zmíněnou funkcí (vlax-ename->vla-object).
 
S objektem pak můžete dělat takové oprace jako např.:
(vla-get-length objID)
(vla-get-layer objID)
 
Service packy na starší verze ještě vydávány jsou, šance je.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 18:57
VLA-OBJECT, tedy myslim ten objekt ID neznam a protoze fungovala ten klasicky nazev entity, tak jsem se k nemu ani nedopatral. Nemohl by jste prosim nastinit hlavni moznosti co tato nova (aspon pro me) vlastnost skyta navic oproti klasickym vlastnostem?

Jinak jeste pokud se zmeni ve vlastnostech Z souradnice u 3D krivky, tak se nejen nezmeni delka, ale ani souradnice dotazovana pomoci funkce vlax-curve-getPointAtParam

napriklad pokud zmenim pocatecni bod tak ve vlastnostech 3D krivky vidim jiny bod nez mi ukaze:

(vlax-curve-getPointAtParam (vlax-ename->vla-object (car (entsel))) 0)

nebo tohle:

(vlax-curve-getPointAtParam (car (entsel)) 0)


Chyba bude tedy asi rozsahlejsi a cekat, ze by byl jeste nejaky service pack na 2011 je asi marne. Ve 2012 to funguje tak jak ma?.


Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21967
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 16:30
Ano, zdá se že to je bug. Ty vlax funkce jsou tím ovlivněny také - zřejmě i objektová vlastnost .Length tedy bude chybně.
 
Přesně tak - žil jsem v domnění že ta funkce potřebuje ObjectID, ale možná to tedy funguje (resp. nefunguje) na oboje.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 15:44
Původně odeslal(a) Vladimír Michl Vladimír Michl napsal(a):


Ano, verze 2011 neaktualizuje údaj ve Vlastnostech, verze 2012 ano.
Je to tedy BUG v 2011 ?

Citace
Ten (vlax-curve....) podle mne čeká ID objektu, ne entity (ale nezkoušel jsem to)


To nevím přesně co ID objekt je.
Myslíte jako ID entity:
Příkaz: (car (entsel "Vyber krivku: "))
Vyber krivku: <Název entity: 7fffee35f00>

ID objektu
Příkaz: (vlax-ename->vla-object (car (entsel "Vyber krivku: ")))
Vyber krivku: #<VLA-OBJECT IAcad3DPolyline2 0000000076bcb1b8>

(vlax-curve-getDistAtParam )
funguje na oba vstupy a oba se v 2011 chovají stejně - tedy vrací neaktualizovanou délku.



Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21967
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 15:21
Ano, verze 2011 neaktualizuje údaj ve Vlastnostech, verze 2012 ano.
 
Ten (vlax-curve....) podle mne čeká ID objektu, ne entity (ale nezkoušel jsem to)
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 07.říj.2011 v 14:03

Mám problém s 3D křivkou a myslím si, že se jedná o BUG. Zkoušeno v AutoCad MAP3D 2011.

Přikládám výkres:


Připojené souborydwguploads/20111007_135954_3D_polyline.dwg

Mám 3D křivku (POLYLINE) – označena je jako A. Z-tové souřadnice vrcholů jsou =0. Délka je po nakreslení 60. To je správně (v přiloženém souboru je hodnota 60). Hodnotu ukáže shodně příkaz DÉLKA (_LENGTHEN), dialog Vlastnosti i LISP příkaz:

(vlax-curve-getDistAtParam (car (entsel "Vyber krivku: ")) 2)

Poznámka: Příkaz ukazuje délku křivky ve třetím uzlu (tedy zde celá křivka). Před spuštěním příkazu je nutno spustit (vl-load-com)

Pak křivku zkopíruji příkazem KOPIE (_COPY). U nové křivky ve Vlastnostech změním Z-souřadnici některého z vrcholových bodů. Logicky se tím změní délka 3D křivky. V dialogu Vlastnosti ale stále zůstává původní délka (tedy v tomto případě 60). Hodnotu 60 změří i LISP příkaz. Pouze příkaz DÉLKA (_LENGTHEN)ukáže hodnotu správnou (pokud jsem změnil Z o 1000, tedy je tedy správná délka 1030.45). Nepomůže regenerace ani překreslit. Pomůže pouze uložení a znovuotevření výkresu a nebo příkaz DIAG (_AUDIT).

Pokud neměním Z souřadnici ve Vlastnostech, ale použiji příkaz PROTÁHNI (_STRETCH), tak je vše jak má být.

Není nutné křivku kopírovat – lze to provést i jen s jedním objektem. Kopii křivky jsem přidal jen pro názornost.

Postup lze ještě zjednodušit:

-          (command "_3Dpoly" '(0 0)'(4 0))(command)   ; nakreslí 4jednotky dlouhou 3D křivku. Délka je 4.

-          editace jednoho vrcholu v panelu Vlastnosti – změna souřadnice Z na 3

-          délka ve Vlastnostech je stále 4 a ne 5 jak ukáže příkaz DÉLKA (_LENGTHEN) (a jak by měla být správně – rozměry viz Pythagorova věta)

Mohl by prosím někdo postup vyzkoušet a potvrdit zda se jedná o BUG?


Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 11849:3D spline s pevnou délkou (hadice, kabely).
Tip 2020:Jak asociativně okótovat délku křivky (polyčáry)?
Tip 6320:Neplatný hraniční polygon (buď protíná sám sebe, nebo není uzavřený).
Tip 11119:Převod jakékoliv křivky na segmentovanou linii.
Tip 1487:Jak snadno zjistit délku 3D křivky (3DPOLYLINE)?
Tip 10090:Přidání vrcholů křivky po stejně dlouhých úsecích.


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,368 sekund.