SSブログ

グラデーションをチェック [花子]

(必要や好みに応じてだが)グラデーションのところはSVG経由でやるのも手かもしれない、というのはよいが、所々に微妙にグラデーションを入れている図面なんかだと、いったいどこにどれくらいグラデーションを使ったのか、パッと把握しきれないことがある。…私の場合はあるんである。

と、いうわけで、思い切りやっつけだが、図面内のグラデーションをチェックするマクロ。どれくらい使う機会があるか分からないが、ともかく実験。

肝心のコードは以下。
!!**************
!!グラデーションのチェック
!!**************           Ver.1.0
!! (C)臼田 隆行
!!  2009-02-08
!!**************

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!========================================================
!!macroname(グラデーションのチェック)
!!title(図面内のグラデーションをチェック)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
%lpattern = GetLinePattern()
%hpattern = GetHatchPattern()

%pn = GetPage()
%fn = CountFigsPage(%pn)
%ga = nil
%gn = 1
%cn = nil

for %i = 1 to %fn step 1
	%fd = GetFigDocument(%pn, %i)
	%ft = GetFigType(%fd)
	if %ft = "塗りつぶし" then
		%hatch = GetDataHatchPattern(%fd)
		if %hatch("グラデーション") = 1 then
			%ga(%gn) = %i
			%gn = %gn + 1
		end if
	else if %ft = "合成図形" then
		%cn = %cn + 1
	end if
next
%gn = %gn - 1

for %i = 1 to %gn step 1
	%fd = GetFigDocument(%pn, %ga(%i))
	%range = CalcFigRegion(%fd)
	%spx = GetX(%range("座標1")) - 0.5
	%spy = GetY(%range("座標1")) - 0.5
	%epx = GetX(%range("座標2")) + 0.5
	%epy = GetY(%range("座標2")) + 0.5
	%sp(%i) = #[%spx, %spy]
	%ep(%i) = #[%epx, %epy]
next

DisplayMode(1)
TemporaryMode()
DrawMode(3)
HatchPattern(0, , , , , , , )
LinePattern(1, 2, , "R255G0B0", , , , , , )

for %i = 1 to %gn step 1
	Box(%sp(%i), %ep(%i), , , )
next

Message("グラデーションが" & %gn & "個ありました", 1)
if %cn <> nil
	Message("解析できなかった合成図形が" & %cn & "個ありました")
end if

LinePattern(%lpattern)
HatchPattern(%hpattern)

タグ:マクロ
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。