Vytisknout stránku | Zavřít okno

Array “ručne“ alebo v rutine.

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: AutoCAD
Popis fóra: Otázky kolem aplikací AutoCAD a AutoCAD LT, AutoCAD web, prohlížečů, DWG a DXF, Design Review, Navisworks, nadstavby, Drive a cloud Autodesk
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=31546
Datum vytištění: 05.čer.2026 v 08:25


Téma: Array “ručne“ alebo v rutine.
Odeslal: Lufttechnik
Předmět: Array “ručne“ alebo v rutine.
Datum odeslání: 27.led.2021 v 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.



Odpovědi:
Odeslal: johny
Datum odeslání: 27.led.2021 v 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)
  )



Vytisknout stránku | Zavřít okno