원래 질문: Linux의 Blender v2.93.4에서 텍스트/숫자 필드 값을 클립보드에 복사하는 방법은 무엇입니까?https://blender.stackexchange.com/questions/239139/how-to-copy-a-text-numeric-field-value-to-clipboard-on-linux-for-blender-v2-93-4
블렌더를 열고
큐브를 클릭하면
변환이 표시됩니다.
를
치수 클릭 하고 마우스가 선택한 숫자 "5" 위에 있을 때 Ctrl+C를 누르고 Tab을 누릅니다(Y 필드로 이동). , ctrl+v를 눌렀는데 클립보드의 이전 내용이 "5m"" 대신 붙여넣어졌습니다! 시도하면 "5"도 안 됩니다! 문제는 클립보드에 복사되지 않고 붙여넣을 수 있다는 것입니다. 복사하지 마세요!
마우스 이동, F5 등과 같은 "text.copy" 작업에 여러 키맵(ctrl+c ctrl+insert 외에)을 추가했지만 문제는 Blender가 X 클립보드에 아무 것도 보낼 수 없다는 것 같습니다.
터미널이나 블렌더에 정보를 덤프하는 방법을 찾으려고 노력하고 있지만 정확하게 이를 수행하는 방법을 찾을 수 없습니다.
블렌더를 실행하면 blender --log "*undo*"
도움이 되지만 충분하지 않은 정확한 전체 값 "2.12345" 대신 "2.12m"과 같은 부정확하게 표시된 값이 덤프됩니다.
정확하게 기록할 수 있다면 표시된 값을 정확하게 표시할 수 있다면 제대로 작동할 수도 있을 것입니다.
이를 가능하게 하는 다른 트릭을 생각해 볼 수 있나요?
gcore ... |strings
거기에 입력한 "일반 텍스트" 숫자만(텍스트를 선택한 상태에서 3번, 텍스트를 선택하지 않은 상태에서 한 번) 찾을 수 있지만 근처에는 선택한 텍스트에 대한 단서/힌트/훅으로 사용할 수 있는 상수 텍스트가 없습니다. 아마도 16진수로 뭔가가 있지 않을까요?
제 생각에는 이것이 Python 버그일지도 모릅니다. 하지만 블렌더 코드에서 어디에 있는지 찾을 수 없었습니다.
블렌더 2.93.4 우분투 20.04
관련된:https://blender.stackexchange.com/questions/124294/clipboard-not-working-on-ubuntu-18-04-in-blender-2-79b, 하지만 아무것도 도움이 되지 않습니다.
답변1
이것은 관련 질문입니다 parcellite
.
Blender와 Parcellite를 호환되게 만들려면 Parcellite의 "클립보드/복사본 사용(Ctrl+C)" 옵션을 비활성화하고 "기본(선택)"에서만 작동하도록 해야 합니다.
오래된 과잉 답변:
다음 스크립트는 무엇을 합니까?
- 마우스 선택에서 스크린샷을 찍습니다.
- 광학 문자 인식,
- 클립보드로 보내기
- 아니면 실패를 보고하세요.
완전히 과잉이지만 다른 응용 프로그램에서도 작동할 수 있습니다.
cat >copyThruOCR.sh
#!/bin/bash
echo "HELP:"
echo "depends on: scrot, tesseract, yad, xterm"
echo "bind this script to ex.: Alt+C using xbindkeys-config (remember to run xbindkeys just after)"
echo "use dark mode for best contrast on the application, so ex.: clicking the the field in blender will make it black background and white text!"
echo "tip: select more to the left than the limit of the text/number, works better"
echo "tip: select just below the text/number, if it is too much below it may just fail"
echo "it may still fail sometimes..."
set -x
FUNC() {
strFl="/tmp/`basename $0`.png";
rm "$strFl" "$strFl.txt"
bFail=false
str=""
strP=""
fSleep=0.25
iScrotRetryMax=8; # 2s
for((iScrotRetry=0;iScrotRetry<iScrotRetryMax;iScrotRetry++));do
if scrot -s "${strFl}";then break;fi
declare -p iScrotRetry
sleep $fSleep;
done
if [[ -f "${strFl}" ]];then
# if tesseract --dpi 300 --psm 8 "${strFl}" "$strFl";then
# if tesseract --dpi 300 "${strFl}" "$strFl";then
if tesseract --psm 6 "${strFl}" "$strFl" -c tessedit_char_whitelist="+-.0123456789" >/dev/null 2>&1;then
str="$(head -n 1 "${strFl}.txt")" #1st line
str="$(echo "$str" |cut -d " " -f1)" #1st word/column
str="$(echo "$str" |tr -d "\r\n ")" #remove anything invalid
echo "RESULT:"
echo "$str"
echo
echo "TextFile:"
cat "${strFl}.txt"
echo
if [[ -z "`echo -n "${str}" |tr -d '[:digit:].+-'`" ]];then #COMMENT this number check if you prefer everything
echo "COPYING TO CLIPBOARD: '${str}'"
echo -n "$str" |xclip -i -selection primary -rmlastnl;
echo -n "$str" |xclip -i -selection secondary -rmlastnl;
echo -n "$str" |xclip -i -selection clipboard -rmlastnl;
else
strP="PROBLEM: not a number"
bFail=true
fi
else
strP="PROBLEM: tesseract fail"
bFail=true
fi
else
strP="PROBLEM: scrot fail"
bFail=true
fi
echo "$strP"
if $bFail;then yad --geometry=100x50+0+0 --title "`basename $0` FAILED" --text "$strP. '$str'" --timeout 1 --ontop --center;fi #COMMENT to get no warning
read -p "press a key to exit (2s)..." -t 2 -n 1
};export -f FUNC;
xterm -geom 50x100+0+0 -e bash -c FUNC;exit #COMMENT to not show terminal log
FUNC
개선할 수 있다면(더 안정적으로 만들 수 있도록) 여러분의 팁을 남겨주세요!
마우스 위치 주변의 사각형을 자동으로 잡아주길 원합니다. 문제는 OCR이 제대로 작동하는 방식으로 불필요한 내용을 지우는 방법입니다.