Indexへ
(15693)//【15694】→(15695)
------------------------
【タイトル】Jw_cad 相談室 寸法反転の件
【記事番号】 15694 (*)
【 日時 】09/09/09 00:47
【 発言者 】ai

下記スレッド関連です。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=35254;id=004
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=35467;id=004

Jw_cad 相談室でコードの内容の質問など初心者向けではない
内容を書き込んでしまい申し訳ありませんでした。
関連内容がございましたらこちらに書き込んでいただきたいと思います。


Indexへ
(15694)←【15695】→(15696)
------------------------
【タイトル】ai様に刺激されて 文字整理外変作成
【記事番号】 15695 (15694)
【 日時 】09/09/09 08:56
【 発言者 】ひでと

質問室から移動させていただきます
ai様の寸法反転の話題に刺激されまして・・・、
自分なりの方法で「文字整理」なる外変を作成いたしました。

対応として
1.回転することによってひっくりかえった文字をその場で回転させ読めるようにする。
2.回転することによってひっくりかえった寸法図形の文字を、回転して読めるようにする。
3.寸法文字が寸法線の長さより短い場合で かつ、寸法文字と寸法線が平行の場合
  寸法線の上又は左に寸法文字を移動する。
を行います。
Microsoft Visual Studio のVisualBasicにて作成しています。
まずBatファイルです
「文字整理.bat

rem 選択範囲
echo off
rem #jww
rem #cd
rem #h1
rem #e jwc_temp.txtが作られる
文字整理.exe

ソースファイルを貼っておきますので ご自由にお使いください
次につづけます。


Indexへ
(15695)←【15696】→(15697)
------------------------
【タイトル】Re(1):ai様に刺激されて 文字整理外変作成
【記事番号】 15696 (15695)
【 日時 】09/09/09 08:58
【 発言者 】ひでと

Public Class 文字整理
  Shared Data As New List(Of String)
  Shared NewData As New List(Of String)
  Shared CurLg As Integer
  Shared CurLy As Integer
  Shared CurLc As Integer
  Shared CurLt As Integer
  Shared Cur書体 As String
  Shared 文字大きさ As Integer
  Shared CurSc(9) As Integer
  Shared hcw(9) As Single
  Shared hch(9) As Single
  Shared hcd(9) As Single
  Shared 任意文字 As New cls文字

  Public Shared Sub Main()
    前準備()
    図形取得()
    寸法.正規化()
    文字.角度修正()
    文字.記入()
    寸法.記入()
    ファイル書き込み()
  End Sub
  Private Shared Sub 前準備()
    データ保存()
    文字属性取得()
    スケール取得()
  End Sub
  Private Shared Sub データ保存()
    Dim FileName As IO.StreamReader
    Dim mLine As String
    Dim c As Integer
    FileName = New IO.StreamReader("jwc_temp.txt", System.Text.Encoding.Default)
    Do While FileName.Peek <> -1
      c = 0
      mLine = FileName.ReadLine
      Data.Add(mLine)
    Loop
    FileName.Close()
  End Sub
  Private Shared Sub 図形取得()
    Dim i As Integer
    Dim c As Integer
    For i = 0 To Data.Count - 1
      c = 0
      Dim mLine As String = Data(i)
      Dim OneWord As String
      OneWord = GetWord(c, " ", mLine)
      Select Case Mid(Data(i), 1, 2)
        Case "hq" : NewData.Add("hd")
        Case "lg" : CurLg = Convert.ToInt32(Mid(Data(i), 3))
        Case "ly" : CurLy = Convert.ToInt32(Mid(Data(i), 3))
        Case "lc" : CurLc = Convert.ToInt32(Mid(Data(i), 3))
        Case "lt" : CurLt = Convert.ToInt32(Mid(Data(i), 3))
        Case "cn" : NewData.Add(mLine)
          If Mid(OneWord, 3, 1) <> Chr(34) Then
            文字大きさ = Convert.ToInt32(Mid(OneWord, 3), 16)
            If 文字大きさ = 0 Then
              任意文字属性(mLine)
            End If
          Else
            Cur書体 = Mid(mLine, 4)
          End If
      End Select

      If OneWord = "msg" Then
        寸法図形取得(i)
      Else
        Select Case Mid(mLine, 1, 2)
          Case "hq"
          Case "ch", "cv", "cs", "cr", "co", "cp", "ct"
            文字取得(mLine)
          Case Else : NewData.Add(mLine)
        End Select
      End If
    Next
  End Sub
  Private Shared Sub 任意文字属性(ByVal mLine As String)
    Dim c As Integer
    Dim dum As String
    dum = GetWord(c, " ", mLine)
    任意文字.hcw = GetWord(c, " ", mLine)
    任意文字.hch = GetWord(c, " ", mLine)
    任意文字.hcd = GetWord(c, " ", mLine)
    任意文字.LC = Convert.ToInt32(GetWord(c, " ", mLine), 16)
  End Sub
  Private Shared Sub 文字取得(ByVal mLine As String)
    Dim c As Integer
    c = 0
    Dim item As New cls文字
    item.LG = CurLg
    item.LY = CurLy
    item.LC = CurLc
    item.書体 = Cur書体
    item.種別 = GetWord(c, " ", mLine)
    item.基点x = GetWord(c, " ", mLine)
    item.基点y = GetWord(c, " ", mLine)
    Dim dx As Double = GetWord(c, " ", mLine)
    Dim dy As Double = GetWord(c, " ", mLine)
    If dx = 0 Then
      If dy >= 0 Then
        item.角度 = 90
      Else
        item.角度 = -90
      End If
    Else
      item.角度 = Math.Atan2(dy, dx) * 180 / Math.PI
    End If
    item.文字 = Mid(GetWord(c, " ", mLine), 2)
    item.大きさ = 文字大きさ
    If item.大きさ = 0 Then
      item.hcw = 任意文字.hcw
      item.hch = 任意文字.hch
      item.hcd = 任意文字.hcd
      item.LC = 任意文字.LC
    End If
    文字.文字図形.Add(item)
  End Sub
  Private Shared Sub 寸法図形取得(ByRef i As Integer)
    Dim c As Integer
    Dim OneWord As String
    Dim j As Integer
    Dim item As New cls寸法図形
    c = 0
    j = i + 1
    Do
      c = 0
      OneWord = GetWord(c, " ", Data(j))
      Select Case Mid(OneWord, 1, 2)
        Case "lt" : CurLt = Convert.ToInt32(Mid(Data(j), 3))
        Case "lc" : CurLc = Convert.ToInt32(Mid(Data(j), 3))
        Case Else : Exit Do
      End Select
      j = j + 1
    Loop
    i = j
    item.LG = CurLg
    item.LY = CurLy
    item.LC = CurLc
    item.LT = CurLt
    c = 0
    item.寸法線.始点x = GetWord(c, " ", Data(i))
    item.寸法線.始点y = GetWord(c, " ", Data(i))
    item.寸法線.終点x = GetWord(c, " ", Data(i))
    item.寸法線.終点y = GetWord(c, " ", Data(i))
    j = i + 1
    Do
      c = 0
      OneWord = GetWord(c, " ", Data(j))
      If Mid(OneWord, 1, 2) = "cn" Then
        If Mid(OneWord, 3, 1) <> Chr(34) Then
          文字大きさ = Convert.ToInt32(Mid(OneWord, 3), 16)
          If 文字大きさ = 0 Then
            任意文字属性(Data(j))
          End If
        Else
          Cur書体 = Mid(Data(j), 4)
        End If
      End If
      Select Case OneWord
        Case "ch", "cv", "cs", "cr", "co", "cp", "ct" : Exit Do
      End Select
      NewData.Add(Data(j))
      j = j + 1
    Loop
    i = j
    item.寸法文字.LG = CurLg
    item.寸法文字.LY = CurLy
    item.寸法文字.書体 = Cur書体
    item.寸法文字.種別 = OneWord
    item.寸法文字.基点x = GetWord(c, " ", Data(i))
    item.寸法文字.基点y = GetWord(c, " ", Data(i))
    Dim dx As Double = GetWord(c, " ", Data(i))
    Dim dy As Double = GetWord(c, " ", Data(i))
    If dx = 0 Then
      If dy >= 0 Then
        item.寸法文字.角度 = 90
      Else
        item.寸法文字.角度 = -90
      End If
    Else
      item.寸法文字.角度 = Math.Atan2(dy, dx) * 180 / Math.PI
    End If
    item.寸法文字.文字 = Mid(GetWord(c, " ", Data(i)), 2)
    item.寸法文字.大きさ = 文字大きさ
    If item.寸法文字.大きさ = 0 Then
      item.寸法文字.hcw = 任意文字.hcw
      item.寸法文字.hch = 任意文字.hch
      item.寸法文字.hcd = 任意文字.hcd
      item.寸法文字.LC = 任意文字.LC
    End If
    寸法.寸法図形.Add(item)
    i = i + 1 '#まで
  End Sub
  Private Shared Sub 文字属性取得()
    Dim i, j As Integer
    Dim dum As String
    Dim c As Integer
    For i = 0 To Data.Count - 1
      If Mid(Data(i), 1, 3) = "hcw" Then
        c = 0
        dum = GetWord(c, " ", Data(i))
        For j = 0 To 9
          dum = GetWord(c, " ", Data(i))
          hcw(j) = dum
        Next
      End If
      If Mid(Data(i), 1, 3) = "hch" Then
        c = 0
        dum = GetWord(c, " ", Data(i))
        For j = 0 To 9
          dum = GetWord(c, " ", Data(i))
          hch(j) = dum
        Next
      End If
      If Mid(Data(i), 1, 3) = "hcd" Then
        c = 0
        dum = GetWord(c, " ", Data(i))
        For j = 0 To 9
          dum = GetWord(c, " ", Data(i))
          hcd(j) = dum
        Next
      End If
      If Mid(Data(i), 1, 3) = "hcw" Then
        c = 0
        dum = GetWord(c, " ", Data(i))
        For j = 0 To 9
          dum = GetWord(c, " ", Data(i))
          hcw(j) = dum
        Next
      End If
    Next
  End Sub
  Private Shared Function スケール取得() As Double
    Dim i, j As Integer
    Dim dum As String
    Dim c As Integer
    For i = 0 To Data.Count - 1
      c = 0
      If Mid(Data(i), 1, 2) = "hs" Then
        dum = GetWord(c, " ", Data(i))
        For j = 0 To 9
          dum = GetWord(c, " ", Data(i))
          CurSc(j) = dum
        Next
      End If
    Next
  End Function
  Private Shared Sub ファイル書き込み()
    Dim i As Integer
    Dim FileName As IO.StreamWriter
    FileName = New IO.StreamWriter("jwc_temp.txt", False, System.Text.Encoding.Default)
    For i = 0 To NewData.Count - 1
      FileName.WriteLine(NewData(i))
    Next
    FileName.Close()
  End Sub
  Private Shared Function GetWord(ByRef C As Integer, ByVal Key As String, ByVal Str As String) As String
    Dim i As Integer
    Dim dum As String = ""
    Dim Onest As String
    C = C + 1
    Do
      Onest = Mid(Str, C, 1)
      If Onest = "" Then Return ""
      If Onest <> Key Then Exit Do
      C = C + 1
    Loop
    For i = C To Len(Str)
      If Mid(Str, i, 1) = Key Then
        Exit For
      Else
        dum = dum & Mid(Str, i, 1)
      End If
    Next
    C = i
    Return dum
  End Function
さらに続きます


Indexへ
(15696)←【15697】→(15698)
------------------------
【タイトル】Re(1):ai様に刺激されて 文字整理外変作成
【記事番号】 15697 (15695)
【 日時 】09/09/09 08:58
【 発言者 】ひでと

  Friend Class 寸法
    Friend Shared 寸法図形 As New List(Of cls寸法図形)
    Friend Shared Sub 正規化()
      文字角度修正()
      文字位置修正()
    End Sub
    Private Shared Sub 文字位置修正()
      Dim i As Integer
      Dim 大きさ As Integer
      Dim Lg As Integer
      For i = 0 To 寸法図形.Count - 1
        Lg = 寸法図形(i).LG
        大きさ = 寸法図形(i).寸法文字.大きさ
        If 大きさ <> 0 Then
          寸法図形(i).文字移動(hcw(大きさ - 1), hch(大きさ - 1), hcd(大きさ - 1), CurSc(Lg))
        Else
          寸法図形(i).文字移動(寸法図形(i).寸法文字.hcw, 寸法図形(i).寸法文字.hch, 寸法図形(i).寸法文字.hcd, CurSc(Lg))
        End If
      Next
    End Sub
    Private Shared Function is回転(ByVal Index As Integer) As Boolean
      Dim dum As New cls寸法図形
      dum = 寸法図形(Index)
      If dum.寸法文字.角度 > 90 Then Return True
      If dum.寸法文字.角度 <= -90 Then Return True
    End Function
    Private Shared Sub 文字角度修正()
      Dim i As Integer
      Dim 大きさ As Integer
      Dim Lg As Integer
      For i = 0 To 寸法図形.Count - 1
        If is回転(i) = True Then
          Lg = 寸法図形(i).LG
          大きさ = 寸法図形(i).寸法文字.大きさ
          If 大きさ <> 0 Then
            寸法図形(i).寸法文字.文字回転(hcw(大きさ - 1), hch(大きさ - 1), hcd(大きさ - 1), CurSc(Lg))
          Else
            寸法図形(i).寸法文字.文字回転(寸法図形(i).寸法文字.hcw, 寸法図形(i).寸法文字.hch, 寸法図形(i).寸法文字.hcd, CurSc(Lg))
          End If
        End If
      Next
    End Sub
    Friend Shared Sub 記入()
      If 寸法図形.Count = 0 Then Exit Sub
      Dim i As Integer
      Dim dum As New cls寸法図形
      Dim CN As String = ""
      Dim 大きさ As Integer
      dum.LG = 寸法図形(0).LG
      dum.LY = 寸法図形(0).LY
      dum.LT = 寸法図形(0).LT
      dum.LC = 寸法図形(0).LC
      CN = 寸法図形(0).寸法文字.CN
      dum.寸法文字.書体 = 寸法図形(0).寸法文字.書体

      NewData.Add("cn""" & dum.寸法文字.書体)
      NewData.Add("lg" & Hex(dum.LG))
      NewData.Add("ly" & Hex(dum.LY))
      NewData.Add("lc" & Hex(dum.LC))
      NewData.Add("lt" & Hex(dum.LT))
      NewData.Add(CN)
      For i = 0 To 寸法図形.Count - 1
        If dum.LG <> 寸法図形(i).LG Then dum.LG = 寸法図形(i).LG : NewData.Add("lg" & Hex(dum.LG))
        If dum.LY <> 寸法図形(i).LY Then dum.LY = 寸法図形(i).LY : NewData.Add("ly" & Hex(dum.LY))
        If dum.寸法文字.書体 <> 寸法図形(i).寸法文字.書体 Then
          dum.寸法文字.書体 = 寸法図形(i).寸法文字.書体
          NewData.Add("cn""" & dum.寸法文字.書体)
        End If
        NewData.Add("msg")
        If dum.LT <> 寸法図形(i).LT Then dum.LT = 寸法図形(i).LT : NewData.Add("lt" & Hex(dum.LT))
        If dum.LC <> 寸法図形(i).LC Then dum.LC = 寸法図形(i).LC : NewData.Add("lc" & Hex(dum.LC))
        NewData.Add(" " & _
        寸法図形(i).寸法線.始点x & " " & 寸法図形(i).寸法線.始点y & " " & _
        寸法図形(i).寸法線.終点x & " " & 寸法図形(i).寸法線.終点y)

        If CN <> 寸法図形(i).寸法文字.CN Then
          CN = 寸法図形(i).寸法文字.CN : NewData.Add(CN)
        End If
        大きさ = 寸法図形(i).寸法文字.大きさ
        If 大きさ <> 0 Then
          NewData.Add(寸法図形(i).寸法文字.JW(hcw(大きさ - 1), hch(大きさ - 1), hcd(大きさ - 1), CurSc(dum.LG)))
        Else
          NewData.Add(寸法図形(i).寸法文字.JW(CurSc(dum.LG)))
        End If
        NewData.Add("#")
      Next
    End Sub
  End Class
さらに


Indexへ
(15697)←【15698】→(15699)
------------------------
【タイトル】Re(1):ai様に刺激されて 文字整理外変作成
【記事番号】 15698 (15695)
【 日時 】09/09/09 09:00
【 発言者 】ひでと

   Friend Class 文字
    Friend Shared 文字図形 As New List(Of cls文字)
    Private Shared Function is回転(ByVal Index As Integer) As Boolean
      Dim dum As New cls文字
      dum = 文字図形(Index)
      If dum.角度 > 90 Then Return True
      If dum.角度 <= -90 Then Return True
    End Function
    Friend Shared Sub 角度修正()
      Dim i As Integer
      Dim 大きさ As Integer
      Dim Lg As Integer
      For i = 0 To 文字図形.Count - 1
        If is回転(i) = True Then
          Lg = 文字図形(i).LG
          大きさ = 文字図形(i).大きさ
          If 大きさ <> 0 Then
            文字図形(i).文字回転(hcw(大きさ - 1), hch(大きさ - 1), hcd(大きさ - 1), CurSc(Lg))
          Else
            文字図形(i).文字回転(文字図形(i).hcw, 文字図形(i).hch, 文字図形(i).hcd, CurSc(Lg))
          End If
        End If
      Next
    End Sub
    Friend Shared Sub 記入()
      If 文字図形.Count = 0 Then Exit Sub
      Dim i As Integer
      Dim dum As New cls文字
      Dim CN As String = ""
      Dim 大きさ As Integer
      dum.書体 = 文字図形(0).書体
      dum.LG = 文字図形(0).LG
      dum.LY = 文字図形(0).LY
      dum.LC = 文字図形(0).LC
      CN = 文字図形(0).CN()

      NewData.Add("cn""" & dum.書体)
      NewData.Add("lg" & Hex(dum.LG))
      NewData.Add("ly" & Hex(dum.LY))
      NewData.Add("lc" & Hex(dum.LC))

      For i = 0 To 文字図形.Count - 1
        If dum.書体 <> 文字図形(i).書体 Then dum.書体 = 文字図形(i).書体 : NewData.Add("cn""" & dum.書体)
        If dum.LG <> 文字図形(i).LG Then dum.LG = 文字図形(i).LG : NewData.Add("lg" & Hex(dum.LG))
        If dum.LY <> 文字図形(i).LY Then dum.LY = 文字図形(i).LY : NewData.Add("ly" & Hex(dum.LY))
        If dum.LC <> 文字図形(i).LC Then dum.LC = 文字図形(i).LC : NewData.Add("lc" & Hex(dum.LC))
        If CN <> 文字図形(i).CN Then CN = 文字図形(i).CN : NewData.Add(CN)

        大きさ = 文字図形(i).大きさ
        If 大きさ <> 0 Then
          NewData.Add(文字図形(i).JW(hcw(大きさ - 1), hch(大きさ - 1), hcd(大きさ - 1), CurSc(dum.LG)))
        Else
          NewData.Add(文字図形(i).JW(CurSc(dum.LG)))
        End If
      Next
    End Sub
  End Class
End Class

さらに


Indexへ
(15698)←【15699】→(15700)
------------------------
【タイトル】Re(1):ai様に刺激されて 文字整理外変作成
【記事番号】 15699 (15695)
【 日時 】09/09/09 09:01
【 発言者 】ひでと

Public Class cls寸法図形
  Friend 寸法線 As New cls寸法線
  Friend 寸法文字 As New cls文字
  Public LG As Integer
  Public LY As Integer
  Public LC As Integer
  Public LT As Integer

  Private Sub 法線交点(ByRef X0 As Double, ByRef Y0 As Double)
    If 寸法線.終点x - 寸法線.始点x = 0 Then '垂直
      X0 = 寸法線.始点x
      Y0 = 寸法文字.基点y
    Else
      'y=mx+n
      'y=mfx+nf
      Dim m As Double = (寸法線.終点y - 寸法線.始点y) / (寸法線.終点x - 寸法線.始点x)
      'n=y-mx
      Dim n As Double = 寸法線.始点y - m * 寸法線.始点x
      If m = 0 Then '水平
        X0 = 寸法文字.基点x
        Y0 = 寸法線.始点y
      Else
        'm*mf=-1
        Dim mf As Double = -1 / m
        Dim nf As Double = 寸法文字.基点y - mf * 寸法文字.基点x
        'mx0+n=mfx0+nf
        '(m-mf)x0=-(n-nf)
        X0 = -(n - nf) / (m - mf)
        Y0 = m * X0 + n
      End If
    End If
  End Sub
  Private Function is平行() As Boolean
    If Math.Abs(寸法線.角度 - 寸法文字.角度) < 0.001 Then Return True
    If Math.Abs(寸法線.角度 - 寸法文字.角度 + 180) < 0.001 Then Return True
    If Math.Abs(寸法線.角度 - 寸法文字.角度 - 180) < 0.001 Then Return True
    If Math.Abs(寸法線.角度 - 寸法文字.角度 + 360) < 0.001 Then Return True
    If Math.Abs(寸法線.角度 - 寸法文字.角度 - 360) < 0.001 Then Return True
    Return False
  End Function

  Public Sub 文字移動(ByVal mW As Double, ByVal mH As Double, ByVal md As Double, ByVal Scale As Double)
    If isTooLarge(mW, mH, md, Scale) = True Then Exit Sub
    If Not is平行() Then Exit Sub
    Dim 間隔 As Double
    Dim X0 As Double
    Dim Y0 As Double
    法線交点(X0, Y0)
    If 寸法線.角度 = 90 Or 寸法線.角度 = -90 Then
      If 寸法文字.基点x > X0 Then
        間隔 = 寸法文字.基点x - X0 - mH * Scale
      Else
        間隔 = X0 - 寸法文字.基点x
      End If
      寸法文字.基点x = X0 - 間隔
      寸法文字.基点y = Y0
    Else
      If 寸法文字.基点y > Y0 Then
        間隔 = ((寸法文字.基点x - X0) ^ 2 + (寸法文字.基点y - Y0) ^ 2) ^ 0.5
      Else
        間隔 = ((寸法文字.基点x - X0) ^ 2 + (寸法文字.基点y - Y0) ^ 2) ^ 0.5 - mH * Scale
      End If
      寸法文字.基点x = X0 - 間隔 * Math.Sin(寸法文字.角度 / 180 * Math.PI)
      寸法文字.基点y = Y0 + 間隔 * Math.Cos(寸法文字.角度 / 180 * Math.PI)
    End If
  End Sub
  Private Function isTooLarge(ByVal mW As Double, ByVal mH As Double, ByVal md As Double, ByVal Scale As Double) As Boolean
    Dim 文字長 As Double = m_len(寸法文字.文字, mW, md, Scale)
    Dim 寸法線長 As Double = ((寸法線.終点x - 寸法線.始点x) ^ 2 + (寸法線.始点y - 寸法線.終点y) ^ 2) ^ 0.5
    If 文字長 > 寸法線長 Then Return True
  End Function
  Private Function m_len(ByVal str As String, ByVal mW As Double, ByVal md As Double, ByVal Scale As Double) As Double
    Dim i As Integer
    Dim m As Integer
    ' str:文字列 mw:jw全角文字幅 md:jw文字間隔 curScale:書き込みレイヤスケール
    For i = 1 To Len(str)
      m = System.Text.Encoding.GetEncoding("shift-jis").GetByteCount(Mid(str, i, 1))
      If m = 1 Then '半角の場合
        m_len = m_len + mW / 2 '半角文字の幅を加えて
        If i <> Len(str) Then m_len = m_len + md / 2 '文字間隔の半分を加える
      End If

      If m = 2 Then '全角の場合
        m_len = m_len + mW '全角文字の幅を加えて
        If i <> Len(str) Then m_len = m_len + md '文字間隔を加える
      End If
    Next i
    m_len = m_len * Scale
  End Function
  Public Class cls寸法線
    Friend 始点x As Double
    Friend 始点y As Double
    Friend 終点x As Double
    Friend 終点y As Double
    Public ReadOnly Property 角度() As Double
      Get
        Dim dum As Double
        If 終点x = 始点x Then
          If 終点y >= 始点y Then
            Return 90
          Else
            Return -90
          End If
        Else
          dum = Math.Atan2(終点y - 始点y, 終点x - 始点x) * 180 / Math.PI
        End If
        Return dum
      End Get
    End Property
  End Class
End Class

以上です


Indexへ
(15699)←【15700】→(15703)
------------------------
【タイトル】Re(1):ai様に刺激されて 文字整理外変作成
【記事番号】 15700 (15695)
【 日時 】09/09/09 09:18
【 発言者 】ひでと

建築フォーラム様にアップさせていただきました。

.net framework ですがWindowsのなかに既に入ってることがあります。

「文字整理」ですが
文字整理.batを通常の外変メニューから起動して、
文字を整理したい範囲を選択して実行してください。
文字整理.EXE単体で起動すると jwc_temp.txtファイルがないのでエラーになります。

また、途中のフォルダー名称によって起動できないことがあるかもしれません。
半角スペース等のはいっていないフォルダーで実行してみてください。
この辺、詳しくないのでご容赦ください。


Indexへ
(15700)←【15703】→(15704)
------------------------
【タイトル】Re(2):ai様に刺激されて 文字整理外変作成
【記事番号】 15703 (15700)
【 日時 】09/09/09 12:48
【 発言者 】ai

▼ひでとさん:
相談室の内容と同じでもうしわけありません。
建築フォーラム→ダウンロード→外部変形→JWW外変 文字整理 で
ダウンロードしてみたのですが、
エラーで動きませんでした。

http://msdn.microsoft.com/ja-jp/netframework/default.aspx

Microsoft .NET Framework 3.5 Service Pack 1
をインストールしようとしたところメンテナンスモードというものになり
・修復
・削除
からしか選べず削除がなんとなく怖くて修復を選んだら
同じ動作を繰り返して一向にダウンロードが進まず途中で
ダウンロードをやめたといった感じです、申し訳ありません。
(パソコンはWinXPです)


Indexへ
(15703)←【15704】→(15705)
------------------------
【タイトル】Re(3):ai様に刺激されて 文字整理外変作成
【記事番号】 15704 (15703)
【 日時 】09/09/09 13:01
【 発言者 】ひでと

わたしもやってみました
>Microsoft .NET Framework 3.5 Service Pack 1
>をインストールしようとしたところメンテナンスモードというものになり
この画面がでてきました。

>・修復
>・削除
>からしか選べず削除がなんとなく怖くて修復を選んだら
>同じ動作を繰り返して一向にダウンロードが進まず途中で
>ダウンロードをやめたといった感じです、申し訳ありません。
>(パソコンはWinXPです)

修復でいいのだと思います。
0/65Mだったと思いますが、別の表示と数回この表示がいったりきたりした後
急にダウンロードが進み始め、無事インストールが終了しました。


Indexへ
(15704)←【15705】→(15706)
------------------------
【タイトル】Re(3):ai様に刺激されて 文字整理外変作成
【記事番号】 15705 (15703)
【 日時 】09/09/09 13:17
【 発言者 】ひでと

.net frameworkがインストールされているかどうかは
Windowsの「プログラムの追加と削除」を見てみるとわかるようです。


Indexへ
(15705)←【15706】→(15707)
------------------------
【タイトル】Re(4):ai様に刺激されて 文字整理外変作成
【記事番号】 15706 (15705)
【 日時 】09/09/09 13:50
【 発言者 】ai nekobasu83@yahoo.co.jp

▼ひでとさん:
Net Framework ですが、調べたところ

2.0 Service Pack 2
2.0 日本語 Language Pak
3.0 Service Pack 2
3.0 日本語 Language Pak
3.5 SP1

が入っておりました。念のため教えていただいた通りに
http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
のデータで修復もかけたのですが、やはり動かせません。

利用方法としては、
1.ダウンロード・解凍したデータをjwの有るフォルダ(C:\jww)に入れる
2.jwを起動し外部変形から文字整理.batを実行
3.縦・横・斜めの複数データを範囲選択して確定
4.「問題が発生したため、文字整理 を終了します。ご不便をおかけして申し訳ありません。
   中略
   この問題をMicrosoftに報告してください。
   中略 
   エラー報告を送信する 送信しない」
という画面になります。
3で選択するのを寸法1つにしても同じ結果でした。

何かほかに設定があるのでしょうか?
VB6ランタイムは導入済みです。


Indexへ
(15706)←【15707】→(15717)
------------------------
【タイトル】Re(5):ai様に刺激されて 文字整理外変作成
【記事番号】 15707 (15706)
【 日時 】09/09/09 14:53
【 発言者 】ひでと

▼aiさん:
>▼ひでとさん:
>Net Framework ですが、調べたところ
>
>2.0 Service Pack 2
>2.0 日本語 Language Pak
>3.0 Service Pack 2
>3.0 日本語 Language Pak
>3.5 SP1
>
>が入っておりました。念のため教えていただいた通りに
>http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
>のデータで修復もかけたのですが、やはり動かせません。
>
>利用方法としては、
>1.ダウンロード・解凍したデータをjwの有るフォルダ(C:\jww)に入れる
>2.jwを起動し外部変形から文字整理.batを実行
>3.縦・横・斜めの複数データを範囲選択して確定
>4.「問題が発生したため、文字整理 を終了します。ご不便をおかけして申し訳ありません。
>   中略
>   この問題をMicrosoftに報告してください。
>   中略 
>   エラー報告を送信する 送信しない」
>という画面になります。
>3で選択するのを寸法1つにしても同じ結果でした。
>
>何かほかに設定があるのでしょうか?
>VB6ランタイムは導入済みです。

お手数をかけて申し訳ありません。
「問題が発生したため、文字整理 を終了します。ご不便をおかけして申し訳ありません。・・・」
ですが 私の作ったメッセージではなく実行時のエラーみたいです。
このあたりは、ちょっと分からないのです。
お役にたてずに申し訳ありません。


Indexへ
(15707)←【15717】→(15718)
------------------------
【タイトル】Re(1):Jw_cad 相談室 寸法反転の件
【記事番号】 15717 (15694)
【 日時 】09/09/10 18:34
【 発言者 】ai

外部変形とは関係ないのですが、寸法関連という事で。

今まで「寸法」→右AM2時ロングドラック「寸法値移動」でフリーハンド移動させてました。
「寸法値移動」実行時に上部ツールバー右端に現れる「基点」ボタンの
「文字横方向」と「文字縦方向」で平行移動処理できるんですね。

皆様知っておられるのかもしれませんが自分は昨日知って、ちょっと衝撃でした。
(今までフリーで移動させていたのでエクセル外変で反転の際に寸法値と寸法線の
距離指定できたらいいかも!とか思ってたんですが、前提条件崩壊でした)

JWのヘルプを確認したらしっかり書かれていますし。
確認しようと反省しました。


追記
平行移動はできることはわかったのですが距離指定はできないのでしょうか?

寸法平行移動は、通常の移動コマンドの際のX方向・Y方向・XY方向と
同じ表現かと思ってそちらで調べてないと思い込んでしまってたので、
そういうことはないようにとヘルプは一通り見たのですが記述がないので。


Indexへ
(15717)←【15718】→(15720)
------------------------
【タイトル】Re(2):Jw_cad 相談室 寸法反転の件
【記事番号】 15718 (15717)
【 日時 】09/09/10 19:59
【 発言者 】いっち

▼aiさん:
>追記
>平行移動はできることはわかったのですが距離指定はできないのでしょうか?

オフセットでやってみたら、できましたけども...


Indexへ
(15718)←【15720】→(15722)
------------------------
【タイトル】Re(3):Jw_cad 相談室 寸法反転の件
【記事番号】 15720 (15718)
【 日時 】09/09/10 21:09
【 発言者 】ai

▼いっちさん:
ありがとうございます、できました!

オフセットを試してみても設定画面が出るだけだけで試行錯誤したところ
「寸法」→右AM2時「寸法値移動」→右AM6時「オフセット」の
オフセットロングドラックの開始位置が寸法値移動の
ロングドラック開始位置と違っていたのが原因と気が付きました。

寸法値移動のロングドラック終点からそのまま
オフセットロングドラックを開始していました。

それから移動してきたのに何も書かないのもと思い書いてしまったのですが、
書き込み内容が初心者板で聞くべき内容でした、
申し訳ありませんでした。


Indexへ
(15720)←【15722】→(15725)
------------------------
【タイトル】Re(4):Jw_cad 相談室 寸法反転の件
【記事番号】 15722 (15720)
【 日時 】09/09/11 01:00
【 発言者 】特ク党@青森
【 リンク 】http://homepage3.nifty.com/kuro_kk/



▼aiさん:

ロングドラックという表現についてですが
JWFの、S_COMM_0 = の下行に

# 6.「AUTOモードクロックメニュー(1)(2)の切り替え距離」に(-)値を設定
#  した場合、左右クロックメニューでこの値の絶対値以上ドラッグすると
#  次のようになる。(基本設定の一般(2)の「AUTOモードクロックメニュ
#  ー(1)(2)の切り替え距離」にマイナス値を設定しても可能)

と書かれていて、その絶対値以上ドラッグ
すなわち、AUTOモードクロックメニュー(2)が出るに等しい距離のドラッグに対して
ロングドラッグと表現するのがふさわしいように思います。

確かに「オフセット」は、どこまで引っ張っても 「オフセット」 ですから
ロングドラッグと思われるかも知れませんが・・


> 今まで「寸法」→右AM2時ロングドラック「寸法値移動」でフリーハンド移動させてました。
> 「寸法値移動」実行時に上部ツールバー右端に現れる「基点」ボタンの
> 「文字横方向」と「文字縦方向」で平行移動処理できるんですね。

COM_RV01= の、寸法の箇所を 「4」 でお試しになってはいかがでしょう。
寸法値の移動状態のときに、左(−設定した絶対値以上)ドラッグで移動方向の指定ができます。
その絶対値以上ドラッグこそが、ロングドラッグと呼べるのではないかと思います。 


Indexへ
(15722)←【15725】→(15726)
------------------------
【タイトル】Re(5):Jw_cad 相談室 寸法反転の件
【記事番号】 15725 (15722)
【 日時 】09/09/11 11:15
【 発言者 】ai

▼特ク党@青森さん:
クロックで引っ張るのをロングドラックと書いてしまってました、
申し訳ありません。

>COM_RV01= の、寸法の箇所を 「4」 でお試しになってはいかがでしょう。
>寸法値の移動状態のときに、左(−設定した絶対値以上)ドラッグで移動方向の指定ができます。
>その絶対値以上ドラッグこそが、ロングドラッグと呼べるのではないかと思います。

こちらは利用していなかったので早速試させてもらったのですが

1.
#     AUTO , 線 , 矩形 , 円弧 , 文字 , 点 , 寸法 , 2線 ,中心線, 連続線
#     (**) ( 2)  ( 3)  ( 4)  ( 5)  ( 6)  ( 7)  ( 8)  ( 9)  (10) 
#COM_RV01=  0   3   3   3   3   3   3   3   3   3 



#     AUTO , 線 , 矩形 , 円弧 , 文字 , 点 , 寸法 , 2線 ,中心線, 連続線
#     (**) ( 2)  ( 3)  ( 4)  ( 5)  ( 6)  ( 7)  ( 8)  ( 9)  (10) 
#COM_RV01=  0   3   3   3   3   3   4   3   3   3
に変更

2.sumpo.jwfで保存

3.設定→環境設定ファイル→読み込み→sumpo.jwf

4.基本設定の一般(2)の「AUTOモードクロックメニュ#  ー(1)(2)の切り替え距離」を-150にし

5.寸法→右AM2時ドラックで「寸法値移動」

6.左クリックしつつロングドラック→文字種変更各種
  右クリックしつつロングドラック→文字基点選択各種
  になり

# 【文字コマンド】の場合
#  左AM1〜10時で文字種変更、11時で文字種設定ダイアログ表示になる。
#  右AM0、2,3、4、6、8、9、10時で文字基準点を直接変更する。
#  右AM7、11時で文字基準点を(中中)にする。
#  右AM1、5時で基準点変更ダイアログ表示になる。

の結果を返しました。


#  ※文字・寸法コマンドに「4」を指定すると文字・寸法値の移動状態のとき
#   左ドラッグで移動方向の指定になる。

とありますし、基点変更を移動方向変更とは言わないと思い間違ってしまったのかと思い

#     AUTO , 線 , 矩形 , 円弧 , 文字 , 点 , 寸法 , 2線 ,中心線, 連続線
#     (**) ( 2)  ( 3)  ( 4)  ( 5)  ( 6)  ( 4)  ( 8)  ( 9)  (10) 
#COM_RV01=  0   3   3   3   3   3   4   3   3   3



#     AUTO , 線 , 矩形 , 円弧 , 文字 , 点 , 寸法 , 2線 ,中心線, 連続線
#     (**) ( 2)  ( 3)  ( 4)  ( 5)  ( 6)  ( 4)  ( 8)  ( 9)  (10) 
#COM_RV01=  0   3   3   3   3   3   3   3   3   3

も試したのですが、駄目でした。

また何か勘違いしてしまっているんだろうと思い調べてはみているのですが、
よくわからないままです、申し訳ありません。


Indexへ
(15725)←【15726】→(15727)
------------------------
【タイトル】Re(6):Jw_cad 相談室 寸法反転の件
【記事番号】 15726 (15725)
【 日時 】09/09/11 11:33
【 発言者 】住職
【 リンク 】http://homepage2.nifty.com/siegel/



▼aiさん:

>#COM_RV01=  0   3   3   3   3   3   4   3   3   3

最初の # を消して見てください。
(#は、コメントアウトです。)

文字の 4 指定もお勧めです。


Indexへ
(15726)←【15727】//(15702)
------------------------
【タイトル】Re(7):Jw_cad 相談室 寸法反転の件
【記事番号】 15727 (15726)
【 日時 】09/09/11 11:45
【 発言者 】ai

▼住職さん:
環境設定ファイルは長らくいじっておらずすっかり基本を忘れ去ってました、
教えていただいたおかげでできました、ありがとうございます。

※因みにENDを♯ENDにするのも忘れていましたorz