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

PepaR
14.09.2007, 13:04
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

PepaR
14.09.2007, 13:16
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

PepaR
14.09.2007, 13:20
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)

PepaR
14.09.2007, 13:49
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