Большие проблемы с FreeCAD.

bobart, да не в реге дело, я не знаю как на нее PKBUILD замутить, там просто инсталяционный скрипт идет. Лицуха персональная дается на 12 месяцев, за это время может запилят нормально дрова. У Nvidia кстати такие же проблемы недавно были, судя по англоязычным форумам.
Под wine вообще нереально юзать что-то, гемора больше, чем работы в проге. Был печальный опыт с NanoCAD и Компасс.
Тем более. Качай медузу, а там уж можно будет предметно разбираться со скриптами и билдами. По-крайней мере, хоть сам скрипт увидим, может там просто бинарники раскидываются по директориям, может нет, что заранее гадать.
Скачал. medusa4_v5_0_1_linux_personal.sh весом 237 Мб, если открыть текстовым редактором, то вылазит следующее:
#!/bin/sh
# This script was generated using Makeself 2.1.5
CRCsum="2158875536"
MD5="e06fdf4918ab312bc790233938b49ba7"
TMPROOT=${TMPDIR:=/tmp}
label=" MEDUSA4 Personal V5.0.1, Copyright (c) 2002-2010 CAD Schroer GmbH "
script="./install.csh"
scriptargs=""
targetdir="medusa4_pers"
filesizes="248523572"
keep=n
echo ""
if ! test -x /bin/csh; then
     echo "There is no csh or tcsh shell available ..."
     echo ""
     echo "It's required to install and run $label"
     sleep 5
     exit 3
fi
print_cmd_arg=""
if type printf > /dev/null; then
    print_cmd="printf"
elif test -x /usr/ucb/echo; then
    print_cmd="/usr/ucb/echo"
else
    print_cmd="echo"
fi
unset CDPATH
MS_Printf()
{
    $print_cmd $print_cmd_arg "$1"
}
MS_Progress()
{
    while read a; do
	MS_Printf .
    done
}
MS_diskspace()
{
	(
	if test -d /usr/xpg4/bin; then
		PATH=/usr/xpg4/bin:$PATH
	fi
	df -kP "$1" | tail -1 | awk '{print $4}'
	)
}
MS_dd()
{
    blocks=`expr $3 / 1024`
    bytes=`expr $3 % 1024`
    dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \
    { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \
      test $bytes  -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null
}
MS_Help()
{
    cat << EOH >&2
Makeself version 2.1.5
 1) Getting help or info about $0 :
  $0 --help   Print this message
  $0 --info   Print embedded info : title, default target directory, embedded script ...
  $0 --lsm    Print embedded lsm entry (or no LSM)
  $0 --list   Print the list of files in the archive
  $0 --check  Checks integrity of the archive
 2) Running $0 :
  $0 [options] [--] [additional arguments to embedded script]
  with following options (in that order)
  --confirm             Ask before running embedded script
  --noexec              Do not run embedded script
  --keep                Do not erase target directory after running
			the embedded script
  --nox11               Do not spawn an xterm
  --nochown             Do not give the extracted files to the current user
  --target NewDirectory Extract in NewDirectory
  --tar arg1 [arg2 ...] Access the contents of the archive through the tar command
  --                    Following arguments will be passed to the embedded script
EOH
}
MS_Check()
{
    OLD_PATH="$PATH"
    PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"}
	MD5_ARG=""
    MD5_PATH=`exec <&- 2>&-; which md5sum || type md5sum`
    test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || type md5`
	test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || type digest`
    PATH="$OLD_PATH"
    MS_Printf "Verifying archive integrity..."
    offset=`head -n 412 "$1" | wc -c | tr -d " "`
    verb=$2
    i=1
    for s in $filesizes
    do
		crc=`echo $CRCsum | cut -d" " -f$i`
		if test -x "$MD5_PATH"; then
			if test `basename $MD5_PATH` = digest; then
				MD5_ARG="-a md5"
			fi
			md5=`echo $MD5 | cut -d" " -f$i`
			if test $md5 = "00000000000000000000000000000000"; then
				test x$verb = xy && echo " $1 does not contain an embedded MD5 checksum." >&2
			else
				md5sum=`MS_dd "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`;
				if test "$md5sum" != "$md5"; then
					echo "Error in MD5 checksums: $md5sum is different from $md5" >&2
					exit 2
				else
					test x$verb = xy && MS_Printf " MD5 checksums are OK." >&2
				fi
				crc="0000000000"; verb=n
			fi
		fi
		if test $crc = "0000000000"; then
			test x$verb = xy && echo " $1 does not contain a CRC checksum." >&2
		else
			sum1=`MS_dd "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'`
			if test "$sum1" = "$crc"; then
				test x$verb = xy && MS_Printf " CRC checksums are OK." >&2
			else
				echo "Error in checksums: $sum1 is different from $crc"
				exit 2;
			fi
		fi
		i=`expr $i + 1`
		offset=`expr $offset + $s`
    done
    echo " All good."
}
UnTAR()
{
    tar $1vf - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; }
}
finish=true
xterm_loop=
nox11=n
copy=none
ownership=y
verbose=n
initargs="$@"
while true
do
    case "$1" in
    -h | --help)
	MS_Help
	exit 0
	;;
    --info)
	echo Identification: "$label"
	echo Target directory: "$targetdir"
	echo Uncompressed size: 258696 KB
	echo Compression: gzip
	echo Date of packaging: Thu Feb  3 11:29:32 CET 2011
	echo Built with Makeself version 2.1.5 on linux
	echo Build command was: "makeself.sh \\
    \"medusa4_pers\" \\
    \"medusa4_v5_0_1_linux_personal_tb.sh\" \\
    \" MEDUSA4 Personal V5.0.1, Copyright (c) 2002-2010 CAD Schroer GmbH \" \\
    \"./install.csh\""
	if test x$script != x; then
	    echo Script run after extraction:
	    echo "    " $script $scriptargs
	fi
	if test x"" = xcopy; then
		echo "Archive will copy itself to a temporary location"
	fi
	if test x"n" = xy; then
	    echo "directory $targetdir is permanent"
	else
	    echo "$targetdir will be removed after extraction"
	fi
	exit 0
	;;
    --dumpconf)
	echo LABEL=\"$label\"
	echo SCRIPT=\"$script\"
	echo SCRIPTARGS=\"$scriptargs\"
	echo archdirname=\"medusa4_pers\"
	echo KEEP=n
	echo COMPRESS=gzip
	echo filesizes=\"$filesizes\"
	echo CRCsum=\"$CRCsum\"
	echo MD5sum=\"$MD5\"
	echo OLDUSIZE=258696
	echo OLDSKIP=413
	exit 0
	;;
    --lsm)
cat << EOLSM
No LSM.
EOLSM
	exit 0
	;;
    --list)
	echo Target directory: $targetdir
	offset=`head -n 412 "$0" | wc -c | tr -d " "`
	for s in $filesizes
	do
	    MS_dd "$0" $offset $s | eval "gzip -cd" | UnTAR t
	    offset=`expr $offset + $s`
	done
	exit 0
	;;
	--tar)
	offset=`head -n 412 "$0" | wc -c | tr -d " "`
	arg1="$2"
	shift 2
	for s in $filesizes
	do
	    MS_dd "$0" $offset $s | eval "gzip -cd" | tar "$arg1" - $*
	    offset=`expr $offset + $s`
	done
	exit 0
	;;
    --check)
	MS_Check "$0" y
	exit 0
	;;
    --confirm)
	verbose=y
	shift
	;;
	--noexec)
	script=""
	shift
	;;
    --keep)
	keep=y
	shift
	;;
    --target)
	keep=y
	targetdir=${2:-.}
	shift 2
	;;
    --nox11)
	nox11=y
	shift
	;;
    --nochown)
	ownership=n
	shift
	;;
    --xwin)
	finish="echo Press Return to close this window...; read junk"
	xterm_loop=1
	shift
	;;
    --phase2)
	copy=phase2
	shift
	;;
    --)
	shift
	break ;;
    -*)
	echo Unrecognized flag : "$1" >&2
	MS_Help
	exit 1
	;;
    *)
	break ;;
    esac
done
case "$copy" in
copy)
    tmpdir=$TMPROOT/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$
    mkdir "$tmpdir" || {
	echo "Could not create temporary directory $tmpdir" >&2
	exit 1
    }
    SCRIPT_COPY="$tmpdir/makeself"
    echo "Copying to a temporary location..." >&2
    cp "$0" "$SCRIPT_COPY"
    chmod +x "$SCRIPT_COPY"
    cd "$TMPROOT"
    exec "$SCRIPT_COPY" --phase2 -- $initargs
    ;;
phase2)
    finish="$finish ; rm -rf `dirname $0`"
    ;;
esac
if test "$nox11" = "n"; then
    if tty -s; then                 # Do we have a terminal?
	:
    else
        if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then  # No, but do we have X?
            if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable
                GUESS_XTERMS="xterm rxvt dtterm eterm Eterm kvt konsole aterm"
                for a in $GUESS_XTERMS; do
                    if type $a >/dev/null 2>&1; then
                        XTERM=$a
                        break
                    fi
                done
                chmod a+x $0 || echo Please add execution rights on $0
                if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal!
                    exec $XTERM -title "$label" -e "$0" --xwin "$initargs"
                else
                    exec $XTERM -title "$label" -e "./$0" --xwin "$initargs"
                fi
            fi
        fi
    fi
fi
if test "$targetdir" = "."; then
    tmpdir="."
else
    if test "$keep" = y; then
	echo "Creating directory $targetdir" >&2
	tmpdir="$targetdir"
	dashp="-p"
    else
	tmpdir="$TMPROOT/selfgz$$$RANDOM"
	dashp=""
    fi
    mkdir $dashp $tmpdir || {
	echo 'Cannot create target directory' $tmpdir >&2
	echo 'You should try option --target OtherDirectory' >&2
	eval $finish
	exit 1
    }
fi
location="`pwd`"
if test x$SETUP_NOCHECK != x1; then
    MS_Check "$0"
fi
offset=`head -n 412 "$0" | wc -c | tr -d " "`
if test x"$verbose" = xy; then
	MS_Printf "About to extract 258696 KB in $tmpdir ... Proceed ? [Y/n] "
	read yn
	if test x"$yn" = xn; then
		eval $finish; exit 1
	fi
fi
MS_Printf "Uncompressing $label"
res=3
if test "$keep" = n; then
    trap 'echo Signal caught, cleaning up >&2; cd $TMPROOT; /bin/rm -rf $tmpdir; eval $finish; exit 15' 1 2 3 15
fi
leftspace=`MS_diskspace $tmpdir`
if test $leftspace -lt 258696; then
    echo
    echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (258696 KB)" >&2
    if test "$keep" = n; then
        echo "Consider setting TMPDIR to a directory with more free space."
   fi
    eval $finish; exit 1
fi
for s in $filesizes
do
    if MS_dd "$0" $offset $s | eval "gzip -cd" | ( cd "$tmpdir"; UnTAR x ) | MS_Progress; then
		if test x"$ownership" = xy; then
			(PATH=/usr/xpg4/bin:$PATH; cd "$tmpdir"; chown -R `id -u` .;  chgrp -R `id -g` .)
		fi
    else
		echo
		echo "Unable to decompress $0" >&2
		eval $finish; exit 1
    fi
    offset=`expr $offset + $s`
done
echo
cd "$tmpdir"
res=0
if test x"$script" != x; then
    if test x"$verbose" = xy; then
		MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] "
		read yn
		if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then
			eval $script $scriptargs $*; res=$?;
		fi
    else
		eval $script $scriptargs $*; res=$?
    fi
    if test $res -ne 0; then
		test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2
    fi
fi
if test "$keep" = n; then
    cd $TMPROOT
    /bin/rm -rf $tmpdir
fi
eval $finish; exit $res
▀
Кстати при закачке региться не надо.
UPD: инсталятор требует наличия csh (это нашел на одном буржуйском форуме), пакет community/tcsh. Я так понимаю, что сверху скрипт, а далее что-то на С. И как это оформить в пакет ума не приложу. Ставить скриптом нет абсолютно никакого желания (принцип: не захламлять систему).
Поставил себе версию 0.16 - штатно запускается, заботает. Однако при выборе верстака Path ругается - UI file does not exis. В консоли видно, чего ищет -
Cannot find icon: /usr/Mod/PartDesign/WizardShaft/WizardShaft.svg

Поискал, где же лежит искомое, нашел и обманул систему -
ln -s /usr/share/freecad/Mod /usr/

Верстак Path запускается. Пока понятия не имею, как им пользоваться, но заимею.

Вопрос в другом - есть гит версия, 0.17, однако не ставится - она тянет за собой зависимости и все падает на установке vtk7-qt4, vtk6 при этом стоит, его предварительный снос не помогает, vtk 7 есть в репозитории комьюнити, но freecad хочет именно vtk7-qt4.
Какой есть опыт преодоления?
wau, тебя интересует именно 3D черчение или достаточно и 2D - если 2D, то можно попробовать, например, qcad или другие
Ошибки не исчезают с опытом - они просто умнеют
Для 3D лучше поставить:
Вчера был первый мой подход к станку с ЧПУ с моими же чертежами. Ценность сделанной именно 3-д модели оказалась просто никакая - в реальности нетехнологично отдавать роботу такую модель, все надо перерисовывать на отдельные операции разным инструментом, это 2-д эскизы и затем прорисовка технологического маршрута. Т.е. в конечном итоге мне нужны командные файлы *.tap, причем очень бы хотелось, чтобы делались они не абы как, а с моим полным контролем за движением инструмента - например, холостого\обратного хода инструмента. Увиденное шокировало - фрезеровка паза состояла из рабочего хода фрезы 3 сек. и примерно до 15 сек - поднятие после рабочего хода, возврат в точку начала траектории, погружение на глубину паза. Вместо ожидаемого движения "туда", смещение вниз на глубину резания и движения "обратно" - разница в итоговой скорости на пол порядка.

Поскольку станок заведомо 3 осевой, формально получается, что ему хватает плоских чертежей. С другой стороны при 3-д модели нагляднее что именно нарисовал. Хотя вид "аксонометрия", наверное, есть и у 2-д программ.
есть одна мало известная но очень крутая вещь
Ошибки в тексте-неповторимый стиль автора©
indeviral
есть одна мало известная но очень крутая вещь
Вещь действительно неизвестная ….
Но если уж ТС упомянул станки с ЧПУ, то думаю чертежи уходят на второй план, а на 1-ый выходит подготовка/доработка программ.... (кадров), для подготовки которых основное значение имеют операционные технологические карты (точнее на основании этих карт и создаются программы/наборы команд) и вполне достаточно обычных 2D чертежей ….
Хотя все завист от целей … а целью похоже является диплом или что то в этом роде ...
Ошибки не исчезают с опытом - они просто умнеют
SOLVESPACE очень компактен, спасибо за наводку. Но мне пока трудно слету понять, что он может - готовый файл freecad он не принял. Годы для ЧПУ он выдаст? Есть ли по нему что-нибудь на русском? https://ru.wikipedia.org/wiki/SolveSpace кроме этого.
Целью является товар - весь мир вокруг нас становится пластмассовым, силиконовым и кокосовомасловым. А дома у меня электрические розетки деревянные, встал вопрос о замене нескольких и их не купить, сняты с производства.
 
Зарегистрироваться или войдите чтобы оставить сообщение.