SH read.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
usage: prt_wm [[-i <directory>] [-o <outfile>] [-r <root>] [-e <entity>] [-ANSRdPglLkjJwpasKtT#*]]
i <wmdir> - the cell/component directory
o <outfile> - the printout destination
r <root> - name of a subtree to be printed
e <entity> - name of single entity to print
A - show all entities
N - nice printout
S - sorted printout
R - list prototypes
d - default details
P - prototype references
g - geometry
l - locations (rpy)
L - locations (orientation matrix)
k - general kinematic data
j - kinematic & joints data
J - detailed joints data
w - workpoints data
p - paths data
a - attributes
s - sons
K - key (for internal use)
t - S+d+k+l+p+w+j+a (test mode)
T - A+S+d+k+l+p+w+j+a (test mode)
# - d+g+k
* - d+g+l+k
1 2 3 4 5
open(my $PIPE, "ksh.exe $shellscript |") or die "Cannot open pipe: $!"; while (<$PIPE>) { @content = <$PIPE>; } close($PIPE);
2013-12-15T20:24:07 MarkusHIn einem ersten Schritt erzeuge ich das Shellscript mit den nötigen Befehlen.
2013-12-15T20:24:07 MarkusHJetzt würde ich mir aber doch gerne den ersten Schritt sparen
1
2
3
4
5
6
7
8
export LIB_ROOT="D:/library";
set -A cell1
for cell in ${cells[@]}
do
prt_wm -i $cell -r \* -Na
done
exit 0
2013-12-16T19:43:16 hlubenowVielleicht könntest Du die Schleife statt im Shell-Skript in Perl machen und nur den "prt_wm"-Befehl als System-Call absetzen?
2013-12-16T19:43:16 hlubenowVielleicht könntest Du die Schleife statt im Shell-Skript in Perl machen und nur den "prt_wm"-Befehl als System-Call absetzen?
2013-12-17T09:24:57 biancaHatte ich auch schon überlegt. Würde sogar einen Schritt weiter gehen. Kann man das was prt_wm macht nicht auch in Perl machen? Was macht das denn?
2013-12-17T10:40:51 MarkusHIch habe auch shon den ganzen Inhalt des Skripts als Variable mit übergeben, was auch nicht klappt.
2013-12-17T10:40:51 MarkusH2013-12-16T19:43:16 hlubenowVielleicht könntest Du die Schleife statt im Shell-Skript in Perl machen und nur den "prt_wm"-Befehl als System-Call absetzen?
Das hatte ich schon probiert. Es kommen dabei aber nur Fehlermeldung, da die Bibliothek nicht gefunden wird. LIB_ROOT ist hierbei nicht gesetzt.
my @a = `export LIB_ROOT="D:/library";prt_wm ...`;
2013-12-17T21:22:15 hlubenowIch dachte an sowas:
Code (perl): (dl )my @a = `export LIB_ROOT="D:/library";prt_wm ...`;