Zobrazit plnou verzi příspěvku: Příkaz Express Tools do LISPu
Radim Cech
14.09.2007, 12:39
Mám LISP na popisování poloměrů oblouků a chtěl jsem, aby se ještě písmo podložilo, jak to dělá příkaz TEXTMASK z ET.
Když ale dám do LISPU
(COMMAND "TEXTMASK" "_last")
vyhazuje mi to neznámý příkaz a přitom, když napíšu na příkazový řádek TEXTMASK, tak to normálně funguje.
Něco jsem přehlídl? Nebo je něco špatně?
Díky za radu
U ET se funkce TEXTMASK nejprve inicializuje, tzn. myslím, že odkazuje na další externí nástroje, které potřebuje pro svou správnou funkčnost nebo není stadnarně načtená (viz acetauto.lsp).Nu a když voláte tuto funkci ze svého LISPU, tak nevoláte ty externí potřebné funkce. Tzn. že je nutné se podívat do zdrojáku textmask.lsp a zjistit jak je to tam děláno.
PepaR2007-09-14 13:05:34
Radim Cech
14.09.2007, 13:12
načtená být musí, jinak by přece nešla spustit z příkazového řádku
ET nástroje jsou nataženy při spuštění CADu. Proto jsem se domníval, že stačí jen ten řádek
No já jsem něměl možnost to odzkoušet neb nesedím u CADu, ale mám tu někde uložen zdroják TEXTMASK, kde píšou:
[QUOTE]
;;; External Functions:;;;;;; ACET-ERROR-INIT --> ACETUTIL.FAS Intializes bonus error routine;;; ACET-ERROR-RESTORE --> ACETUTIL.FAS Restores old error routine;;; ACET-GEOM-TEXTBOX --> ACETUTIL.FAS Returns textbox points for text or Mtext;;; ACET-GETVAR --> ACETUTIL.FAS Retrieves custom variables;;; ACET-GROUP-MAKE-ANON --> ACETUTIL.FAS Creates anonymous group;;; ACET-LAYER-LOCKED --> ACETUTIL.FAS Checks to see if layer is locked;;; ACET-LIST-M-ASSOC --> ACETUTIL.FAS Retrieves multiple assoc's from list;;; ACET-SPINNER --> ACETUTIL.FAS Creates spinning bar;;; ACET-SETVAR --> ACETUTIL.FAS Stores custom variables;;; ACET-SS-INTERSECTION --> ACETUTIL.FAS Returns ss with common entities;;; ACET-SS-NEW --> ACETUTIL.FAS Creates selection set from starting ent;;; ACET-SS-REDRAW --> ACETUTIL.FAS Redraws all entities in selection set;;; ACET-SS-REMOVE --> ACETUTIL.FAS Removes entities from selection set;;; ACET-SS-UNION --> ACETUTIL.FAS Combines two selection sets;;; ACET-STR-FORMAT --> ACETUTIL.ARX Alternate to strcat;;; ACET-SYSVAR-RESTORE --> ACETUTIL.FAS Restores sysvars from global list;;; ACET-SYSVAR-SET --> ACETUTIL.FAS Saves sysvars to global list;;; ACET-UCS-TO-OBJECT --> ACETUTIL.FAS Sets ucs to object;;; ACET-UI-POLYGON-SELECT --> ACETUTIL.FAS Simulates CP or WP and returns points;;; ACET-UI-FENCE-SELECT --> ACETUTIL.FAS Simulates fence selction and returns points;;; ACET-XDATA-SET --> ACETUTIL.FAS Attaches data to entity using xdata;;; ACET-XDATA-GET --> ACETUTIL.FAS Reads data from entity set with acet-xdata-set;;; BNS_SS_MOD --> ACETUTIL.FAS Filters selctions for locked layers etc.
[/QUOTE]
Já třeba používám PLJOIN z ET a někdy s tím bývá taky problém.PepaR2007-09-14 13:17:52
Kolega mi teď navíc poslal skrze ICQ situaci po zadání TEXTMASK. Všimněte si té inicializace:
[QUOTE]
Příkaz: textmask
Inicializace...Current settings: Offset factor = 0.35, Mask type = WipeoutSelect text objects to mask or [Masktype/Offset]:1 foundCurrent settings: Offset factor = 0.35, Mask type = WipeoutSelect text objects to mask or [Masktype/Offset]:
1 text items have been masked with a Wipeout.
[/QUOTE]
Radim Cech
14.09.2007, 13:44
Command: textmask
Initializing...Current settings: Offset factor = 0.10, Mask type = Solid, Mask color = 254Select text objects to mask or [Masktype/Offset]:
To nastavení už mám v prototypovém výkrese, takže já už jen vybírám entitu, v tomto případš jsem chtěl "poslední"
Tak co se má v lispu vlastně objevit?
Sedláček
14.09.2007, 13:44
Do LISPU moc nedělám, ale neměla by se volat funkce (c:textmask) místo COMMAND?
Vladimír Michl
14.09.2007, 13:49
Pokud jsou již Express Tools načtené, mělo by stači použít z LISPu něco jako:
(acet-textmask-make-wipeout (entlast) 0.5)
Pan Čech myslí funkci uvnitř funkce a ta se volá tak jak psal. např.: (command "_.pline").PepaR2007-09-14 21:55:43
Radim Cech
14.09.2007, 14:06
Rada p.Michla byla přesně ta správná Díky, už to funguje