Zobrazit plnou verzi příspěvku: Array “ručne“ alebo v rutine.

Lufttechnik
27.01.2021, 08:14
Často používam Array jedného prvku , tak by som stále nemusel odpovedať na ponuku príkazu napisal som autolispovský riadok , kde zadám iba počet radov a stlpcov.Zisťujem , že výsledok je však rozdielny v tom , že „ručný“ array mi vytvorí pole prvkov ako blok , teda všetko sa drží v kope , ale ten lisp ich nechá separátne. Teda ako rozbitý blok.V podstate ten array nevykona „ASociative“ – taká je tam možnost , ale v nedokážem mu to v tom lispe zadat. Prosim poradite mi kde robim chybu ? (DEFUN C:array1 ()(COMMAND "INSERT" "meno-blocku" "0,0" "1" "1" "0" )(SETQ RR (GETINT "POCET RADOV : "))(SETQ SS (GETINT "POCET SLTPCOV : "))(COMMAND "ARRAY" "L" "" "R" SS RR 5 5 )    - alternativa 1(COMMAND "ARRAY" "L" "" "R" SS RR 5 5 AS Y "" ) - skúšam i toto alt.2)čísla 5 - sú zadane napevno ako rozostupy.Lufttechnik2021-01-27 08:17:59

johny
27.01.2021, 09:24
Použijte (initcommandversion).Samo musíte mít defaultně arrayassociativity. Nebo si to do toho kódu mužete připsat.(defun c:MenoArray ( / r c)  (if (and (or (tblsearch "block" "meno-block")        (prompt "\nError: 'meno-block' not found in the drawing."))    (setq r (getint "\nNo of rows: "))    (setq c (getint "\nNo of columns: "))    )    (progn      (command "_.insert" "meno-block" "_s" 1 "_r" 0 "_non" '(0 0))      (initcommandversion)      (command "_.array" "_last" "" "_rec" "_row" r 5 0 "_col" c 5 "_exit")))  (princ)  )


johny2021-01-27 09:41:16