Zobrazit plnou verzi příspěvku: Dynamické kopírovanie objektu.

michaelflyer
24.06.2016, 08:18
Zdravým,poprosil by som radu, čo sa týka tohto programu. Popis programu:Po výbere objektov a zadaní súradníc bodu "a" a "b" sa v danom smere (a->b) začnú kopírovať objekty v ľubovoľnom počte na základe kurzoru myši na obrazovke.Chyba:Program funguje správne ak myšou pohybujem po obrazovke pomaly. Ako náhle trhnem myšou, program následne vyhodí chybu a skončí.uploads/2183/dynamic-copy-object.LSPĎakujem.


Vladimír Michl
24.06.2016, 08:22

Funkce není kompletní takže nejde vyzkoušet, ale zřejmě není ošetřen nějaký stav, který může být vrácen z grread.

michaelflyer
24.06.2016, 08:28
Akurát som to zbadal.Chýba tam:(defun mm:cops_vykresliD2 ( bod_A pt_posun ss / ss lst pp )  (repeat (setq i (sslength ss))    (setq lst (append (list (vla-copy (vlax-ename->vla-object (ssname ss (setq i (1- i)))))) lst))    )  (foreach u lst (vla-move u (vlax-3D-point bod_A) (vlax-3D-point pt_posun)))  lst  )uploads/2183/dynamic-copy-object_2016-06-24_08-25-36.LSP

Vladimír Michl
24.06.2016, 08:38

Havaruje to na tom vla-delete, stačí upravit na: [CODE](vl-catch-all-apply 'vla-delete (car lst_all))[/CODE] ale je třeba odladit, proč se tam dostane hodnota nil.

michaelflyer
24.06.2016, 09:06
Ďakujem, netuším ako sa tam dostane hodnota nil. Iba toho nil sa týka to odladenie?

Vladimír Michl
24.06.2016, 09:33

Ten nil je důsledek nějakých kroků před tím - vy nebo kdo ten program tvořil si musí projít posloupnost plnění oněch seznamů a symbolů (asi přidat kontrolní výpisy, krokování v tomto případě nepomůže).