Vytisknout stránku | Zavřít okno

DDEDIT bez dialog boxu pro použití jako script pří

Vytištěno z: CAD Fórum
Kategorie: Ostatní CAD/CAM/PDM a GIS
Název fóra: Ostatní stavařské CAD/BIM aplikace
Popis fóra: Non-Autodesk CAD aplikace pro stavebnictví a architekturu - 2D, 3D, BIM
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=26106
Datum vytištění: 15.kvě.2026 v 18:44


Téma: DDEDIT bez dialog boxu pro použití jako script pří
Odeslal: jerry00769
Předmět: DDEDIT bez dialog boxu pro použití jako script pří
Datum odeslání: 15.kvě.2018 v 09:32
Ahoj všem :-).

Chtěl bych kohokoli požádat o pomoc s vyřešením mého problému. Naprogramoval jsem pár pro nás velmi užitečných příkazů (do souboru script *.scr) pro skrývání a odkrývání hladin u šablon, které používáme, což funguje na pohodu a vše je propojeno z Excelu, který ten script na základě nějakých těch indicií vytváří...

Potřeboval bych ale pomoci s vyřešení textu kót, jinými slovy kóty mají textem v zápisu (př.Hcooler, Wcooler, Lcooler,...), který bych potřeboval následně nahradit adekvátním číslem... Za pomocí příkazu DDEDIT to ručně jde, ale já to potřebuji formou zápisu do scriptu.... což jsem nikde nevygoogloval a řešil to pouze tak, že jsem u kóty smazal text a vkládal je jako blok* s přesným umístěním pozice... která se ale logicky mění... sice funkční ale trochu přes ruku, pač kót je celkem dost, ale hlavně pozice se mění vzhledem k velikosti měnícího se zařízení... (výkres v příloze)

*vložení probíhalo takto:
-INSERT
Hcooler_DIM.DWG
2427.13,21970.61,0
1
1
0
~9500

Možná by to šlo nějak vymyslet jinak... nic mě ale šikovného nenapadá...

Ď za cokoli

Používáme ale DraftSight Free... Pro s VBA nikoli

uploads/53493/cooler.dwg" rel="nofollow - cooler.dwg



Odpovědi:
Odeslal: johny
Datum odeslání: 15.kvě.2018 v 10:20
Jestli to dobře chápu, tak potřebuje funkci najít nahraď. V DraftSight by snad měl fungovat LISP, tak to zkuste. Užití LISP si vygooglete. Je to case-sensitive.

Kód: 
(defun DimTextReplace (find replace / ss i)
  (if (setq ss (ssget "_X" (list '(0 . "DIMENSION") (cons 1 find))))
    (repeat (setq i (sslength ss))
      (entmod (subst (cons 1 replace) (cons 1 find) (entget (ssname ss (setq i (1- i))))))))
  (princ))

Příkaz: 
(DimTextReplace "Hcooler" "8.950") ; "přepsaný" text
(DimTextReplace "Hcooler" "") ; skutečná hodnota


Odeslal: jerry00769
Datum odeslání: 18.kvě.2018 v 11:16
Super, moc děkuji

Bohužel k naší smůle LIST, VBA, C++,... je možné spustit pouze na licenci PRO nikoli na FREE > https://forum.solidworks.com/thread/53877

Můžeme pouze užít SCRIPT (*.scr file) příkazy... viz.obrázky a soubor scr v příloze.




uploads/53493/commandSCR.zip" rel="nofollow - commandSCR.zip

Jerry



Vytisknout stránku | Zavřít okno