Jw_cad 情報交換室−その3New

 JWW についての情報交換の場としてお使いください
初心者の方などのご相談は Jw_cad 相談 室−その2をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

2009年9月以前の発言過去ログのページからご覧ください。

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
59 / 1500     ←次へ | 前へ→

Re:水平・垂直文字を個別に移動させる外変
 momochi  - 26/1/8(木) 19:35 -
垂直文字移動XY.bat


@echo off
REM #jww
REM #cd
REM #h1
REM #hc 文字を選択してください
REM #c 移動量(mm)を入力 (左右 上下) ※例「100 50」「100 0」「0 50」 : /M
REM #e

REM ------------------------------------------------
REM ファイル名:垂直文字移動XY.bat
REM ------------------------------------------------

REM ------------------------------------------------
REM 【 使い方 】
REM 1. 範囲選択します(水平・垂直が混ざっていてもOK)。
REM 2. ステータスバーに移動量を入力します。
REM 入力順序は 「X方向(左右) Y方向(上下)」 です。
REM
REM 【 入力例 】
REM ● 右に100、上に50 動かす
REM 100 50
REM
REM ● 左に100 動かす(上下はそのまま)
REM -100 0
REM
REM ● 下に50 動かす(左右はそのまま)
REM 0 -50
REM ------------------------------------------------

jgawk -f 垂直文字移動XY.awk jwc_temp.txt %* > temp.txt
copy temp.txt jwc_temp.txt
del temp.txt

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

垂直文字移動XY.awk


# ファイル名:垂直文字移動XY.awk
# 仕様:
# ・垂直文字(傾き90度)だけを抽出して移動する
# ・入力1つ目:X方向移動量
# ・入力2つ目:Y方向移動量

BEGIN {
MOVE_X = 0
MOVE_Y = 0
num_count = 0

# --- 引数解析(全角対応) ---
for (i = 1; i < ARGC; i++) {
str = ARGV[i]
sub(/^\/M/, "", str) # /Mを除去
str = to_half(str) # 全角→半角

if (str ~ /^-?[0-9.]+$/) {
if (num_count == 0) {
MOVE_X = str + 0
num_count++
}
else if (num_count == 1) {
MOVE_Y = str + 0
num_count++
}
ARGV[i] = ""
}
}

EPS = 1.0e-4
print "hd"
}

{
line = $0
if (substr(line, 1, 2) == "hq") next
head = substr(line, 1, 2)

# 文字データの処理
if (head == "ch" || head == "cs") {
split(line, a, /[ \t]+/)
vx = a[4] + 0 # 方向余弦X
vy = a[5] + 0 # 方向余弦Y

# 文字列の切り出し
str_start_pos = index(line, "\"")
str_content = substr(line, str_start_pos)

# --- ▼▼▼ 垂直文字の判定 ▼▼▼ ---
# vx(X方向の傾き)が ほぼ0 であれば垂直とみなす
if (vx > -EPS && vx < EPS) {

# X座標とY座標の両方を計算
new_x = a[2] + MOVE_X
new_y = a[3] + MOVE_Y

printf "%s %.15g %.15g %.15g %.15g %s\n", head, new_x, new_y, vx, vy, str_content
next
}
}

# 垂直文字以外(水平など)はそのまま出力
print line
}

# --- 全角→半角変換関数 ---
function to_half(s) {
gsub(/0/, "0", s); gsub(/1/, "1", s); gsub(/2/, "2", s)
gsub(/3/, "3", s); gsub(/4/, "4", s); gsub(/5/, "5", s)
gsub(/6/, "6", s); gsub(/7/, "7", s); gsub(/8/, "8", s)
gsub(/9/, "9", s); gsub(/./, ".", s); gsub(/−/, "-", s)
gsub(/+/, "+", s);
return s
}

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36@p6382019-ipoe.ipoe.ocn.ne.jp>
・ツリー全体表示

水平・垂直文字を個別に移動させる外変 momochi 26/1/8(木) 19:29
Re:水平・垂直文字を個別に移動させる外変 momochi 26/1/8(木) 19:35
Re:水平・垂直文字を個別に移動させる外変 momochi 26/1/10(土) 14:21
Re:水平・垂直文字を個別に移動させる外変 他人 26/1/11(日) 12:17
Re:水平・垂直文字を個別に移動させる外変 いっち 26/1/11(日) 12:56
Re:水平・垂直文字を個別に移動させる外変 他人 26/1/11(日) 13:37
Re:水平・垂直文字を個別に移動させる外変 いっち 26/1/12(月) 12:00
Re:水平・垂直文字を個別に移動させる外変 他人 26/1/12(月) 19:16
Re:水平・垂直文字を個別に移動させる外変 Since Dos 26/1/13(火) 14:22
Re:水平・垂直文字を個別に移動させる外変 R.N 26/1/14(水) 14:11
Re:水平・垂直文字を個別に移動させる外変 Since Dos 26/1/14(水) 15:06
Re:水平・垂直文字を個別に移動させる外変 somem 26/1/14(水) 18:50
Re:水平・垂直文字を個別に移動させる外変 Since Dos 26/1/14(水) 19:15

59 / 1500     ←次へ | 前へ→
新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
 1639841
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b5
Jw_cad Copyright (C)1997-2021 Jiro Shimizu & Yoshifumi Tanaka