Vytisknout stránku | Zavřít okno

Lisp mleader

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=19137
Datum vytištění: 13.kvě.2026 v 15:54


Téma: Lisp mleader
Odeslal: Pan.Fazole
Předmět: Lisp mleader
Datum odeslání: 12.dub.2014 v 23:17
Ahoj

Potřeboval bych poradit - nějak nakopnout :

• mám např. obdélník
• ten obdélník je v bloku
• ten blok má nějaký ref. bod a nějaký název (např. obdélník)

a já bych potřeboval lisp který mi automaticky vytvoří odkaz (_mleader) vycházející z refenčního bodu a jehož text bude název toho bloku




snažim se tu s googlem a nápovědou dvě noci po sobě něco vyplodit, ale výsledek takřka nula nula nic :(

snad jen tento kód (háže okno s názvem bloku a ještě musim ten blok ručně vybrat - což je sice hezký ale to nechci :)  )

 (defun c:test  (/ ent)
(vl-load-com)
      (cond
            ((and
                   (setq ent (car (entsel "\nVyber blok: ")))
                   (eq (cdr (assoc 0 (entget ent))) "Vloz")
                   (alert (strcat "Nazev:"
                                  (vla-get-effectivename
                                        (vlax-ename->vla-object ent)))))
             ))


Díky za každou pomoc



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 13.dub.2014 v 11:12
A jak chcete ten blok vybrat když ne ručně? Potřebujete všechny bloky nebo jeden konkrétního jména? Nestačila by standardní popiska textovým polem?

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: hlusiakov
Datum odeslání: 13.dub.2014 v 17:08
Ahoj, tady máš to co potřebuješ ;)

Stačí složku v archivu zkopírovat do %appdata%\Autodesk\ApplicationPlugins

a potom v AutoCAD zadáš jen příkaz BLEADER


uploads/20552/BlockLeader.bundle.rar" rel="nofollow - BlockLeader.bundle.rar


Odeslal: Vladimír Michl
Datum odeslání: 13.dub.2014 v 18:07

Hezké, popřípadě verze v AutoLISPu (soubor.lsp):

;popiska názvu bloku - CAD Studio
;
;(setvar "DIMTXT" 10)

(defun C:BLeader ( / ss ent blkname pt)
 (setvar "CMDECHO" 0)
 (princ "\nVyberte blok:")
 (setq ss (ssget "_+.:E:S" '((0 . "INSERT"))))
 (if ss (progn
  (setq ent (entget (ssname ss 0))
        blkname (cdr (assoc 2 ent))
        pt (cdr (assoc 10 ent)))
  (princ (strcat blkname " - umístění popisky: "))
  (command "_LEADER" pt pause "" blkname "")
 ));if
 (setvar "CMDECHO" 1)
 (prin1)
)

(princ "\nPříkaz BLeader načten.")
(prin1)



-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Pan.Fazole
Datum odeslání: 28.dub.2014 v 00:58
Dobrý den

Moc děkuji za odpovědi a pomoc.
Ale toto není úplně to přesné co potřebuji.

Řekněme že mám ve výkrese 3objekty (kvádr, krychle, kužel), každý je v samostatném bloku s názvem (kvádr, krychle,kužel)

A já bych potřeboval, aby lisp prošel celý výkres a ke všem blokům přiřadil odkaz s názvem příslušného bloku. Takže bych měl 3odkazy (kvádr, krychle, kužel). Na pozici odkazu by nezáleželo.




Odeslal: Vladimír Michl
Datum odeslání: 28.dub.2014 v 08:16
Na to bude stačit menší úprava:
 
;popiska názvu bloku - CAD Studio
;
;(setvar "DIMTXT" 10)
(defun C:BLeader ( / ss ent blkname pt)
 (setvar "CMDECHO" 0)
 (princ "\nVyberte bloky:")
; (setq ss (ssget "_+.:E:S" '((0 . "INSERT"))))
 (setq ss (ssget '((0 . "INSERT"))))
 (if ss
  (while (setq ent (ssname ss 0))
   (ssdel ent ss)
   (setq ent (entget ent)
         blkname (cdr (assoc 2 ent))
         pt (cdr (assoc 10 ent)))
   (princ (strcat blkname " "))
   (setvar "OSMODE" (boole 7 (getvar "OSMODE") 16384))
   (command "_LEADER" pt (list (+ (car pt)(getvar "DIMTXT"))(+ (cadr pt)(getvar "DIMTXT"))) "" blkname "")
   (setvar "OSMODE" (boole 2 (getvar "OSMODE") 16384))
 )) ;if/while
 (setvar "CMDECHO" 1)
 (prin1)
)
(princ "\nPříkaz BLeader načten.")
(prin1)


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)



Vytisknout stránku | Zavřít okno