<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>AutoCAD - 日本語フォーラムのトピックRe: 画層が存在するか。lisp</title>
    <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7488678#M10929</link>
    <description>&lt;P&gt;こういう感じでしょうか。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(defun c:scl ( / alay alays dcment adLays lay1 layname indx flg msg)&lt;/P&gt;
&lt;P&gt;(vl-load-com)&lt;BR /&gt; (setq alay (getstring "\検索する画層名を入力:"))&lt;BR /&gt; (setq alays (strcase alay T))&lt;BR /&gt; (setq dcment (vla-get-ActiveDocument (vlax-get-acad-object)))&lt;BR /&gt; (setq adLays (vla-get-layers dcment));現在の画層リストを取得&lt;/P&gt;
&lt;P&gt;(setq indx 0)&lt;BR /&gt; (setq flg 0)&lt;BR /&gt; (repeat (vla-get-count adLays)；現在の画層リスト分だけリピート&lt;BR /&gt; (setq lay1 (vla-item adLays indx));画層&lt;BR /&gt; (setq layname (vla-get-name lay1));画層名&lt;BR /&gt; (setq layname (strcase layname T))&lt;BR /&gt; (setq indx (1+ indx))&lt;BR /&gt; (if (vl-string-search alays layname);検索画層名と一致した場合&lt;BR /&gt; (setq flg 1)&lt;BR /&gt; ); end if&lt;BR /&gt; ); end repeat&lt;BR /&gt; (if (= flg 1)&lt;BR /&gt; (progn&lt;BR /&gt; (setq msg (strcat "\n画層名:" alay "は存在します。"))&lt;BR /&gt; (princ msg)&lt;BR /&gt; )&lt;BR /&gt; (progn&lt;BR /&gt; (setq msg (strcat "\n画層名:" alay "は存在しません。"))&lt;BR /&gt; (princ msg)&lt;BR /&gt; )&lt;BR /&gt; )&lt;BR /&gt; (princ)&lt;BR /&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;commandを使わずに画層を作成するには、layersプロパティとvla-Addを使用します。&lt;/P&gt;
&lt;P&gt;詳しくはヘルプで&lt;SPAN&gt;layersプロパティを検索してみてください。&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 25 Oct 2017 01:27:02 GMT</pubDate>
    <dc:creator>N.H1971</dc:creator>
    <dc:date>2017-10-25T01:27:02Z</dc:date>
    <item>
      <title>画層が存在するか。lisp</title>
      <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7486830#M10928</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;画層が存在するかどうかを調べるにはどうすればよいでしょうか。&lt;/P&gt;&lt;P&gt;また、commandを使わずに新規で画層を作成するにはどうすればよいでしょうか。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;まずは画層が存在するかどうか判断し、あれば現在層に設定する。なければ新規に作成して現在層に設定するというものを作ろうと思っています。&lt;/P&gt;&lt;P&gt;よろしくお願いします&lt;/P&gt;</description>
      <pubDate>Tue, 24 Oct 2017 12:49:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7486830#M10928</guid>
      <dc:creator>naozo8257</dc:creator>
      <dc:date>2017-10-24T12:49:50Z</dc:date>
    </item>
    <item>
      <title>Re: 画層が存在するか。lisp</title>
      <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7488678#M10929</link>
      <description>&lt;P&gt;こういう感じでしょうか。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(defun c:scl ( / alay alays dcment adLays lay1 layname indx flg msg)&lt;/P&gt;
&lt;P&gt;(vl-load-com)&lt;BR /&gt; (setq alay (getstring "\検索する画層名を入力:"))&lt;BR /&gt; (setq alays (strcase alay T))&lt;BR /&gt; (setq dcment (vla-get-ActiveDocument (vlax-get-acad-object)))&lt;BR /&gt; (setq adLays (vla-get-layers dcment));現在の画層リストを取得&lt;/P&gt;
&lt;P&gt;(setq indx 0)&lt;BR /&gt; (setq flg 0)&lt;BR /&gt; (repeat (vla-get-count adLays)；現在の画層リスト分だけリピート&lt;BR /&gt; (setq lay1 (vla-item adLays indx));画層&lt;BR /&gt; (setq layname (vla-get-name lay1));画層名&lt;BR /&gt; (setq layname (strcase layname T))&lt;BR /&gt; (setq indx (1+ indx))&lt;BR /&gt; (if (vl-string-search alays layname);検索画層名と一致した場合&lt;BR /&gt; (setq flg 1)&lt;BR /&gt; ); end if&lt;BR /&gt; ); end repeat&lt;BR /&gt; (if (= flg 1)&lt;BR /&gt; (progn&lt;BR /&gt; (setq msg (strcat "\n画層名:" alay "は存在します。"))&lt;BR /&gt; (princ msg)&lt;BR /&gt; )&lt;BR /&gt; (progn&lt;BR /&gt; (setq msg (strcat "\n画層名:" alay "は存在しません。"))&lt;BR /&gt; (princ msg)&lt;BR /&gt; )&lt;BR /&gt; )&lt;BR /&gt; (princ)&lt;BR /&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;commandを使わずに画層を作成するには、layersプロパティとvla-Addを使用します。&lt;/P&gt;
&lt;P&gt;詳しくはヘルプで&lt;SPAN&gt;layersプロパティを検索してみてください。&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Oct 2017 01:27:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7488678#M10929</guid>
      <dc:creator>N.H1971</dc:creator>
      <dc:date>2017-10-25T01:27:02Z</dc:date>
    </item>
    <item>
      <title>Re: 画層が存在するか。lisp</title>
      <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7493390#M10930</link>
      <description>&lt;P&gt;N.H1971 さん回答ありがとうございます。&lt;/P&gt;&lt;P&gt;頂いたlspを使ってみて私が求めていたように、画層がある時は"&lt;SPAN&gt;画層名:**は存在します。&lt;/SPAN&gt;"無い時は"&lt;SPAN&gt;画層名:**は存在しません。&lt;/SPAN&gt;"と表示されました。&lt;/P&gt;&lt;P&gt;ですが、画層"ABC"のみ存在する時に"A"画層が存在するかを調べると、存在しますと返されてしまいました。&lt;/P&gt;&lt;P&gt;また、教えていただいた&lt;SPAN&gt;layersプロパティとvla-Addですが、なかなか理解できませんでした。&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;画層名や画装色等の情報をリスト化して何かの関数で新規画層が作成できるのでしょうか。&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;理解できそうなurlがありましたら頂けますか。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;</description>
      <pubDate>Thu, 26 Oct 2017 12:49:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7493390#M10930</guid>
      <dc:creator>naozo8257</dc:creator>
      <dc:date>2017-10-26T12:49:54Z</dc:date>
    </item>
    <item>
      <title>Re: 画層が存在するか。lisp</title>
      <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7495386#M10931</link>
      <description>&lt;P&gt;&lt;SPAN&gt;すみません。vl-string-searchがまずかったみたいですね。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;(if (vl-string-search alays layname);検索画層名と一致した場合　　→　　&lt;/SPAN&gt;(if (equal alays layname);検索画層名と一致した場合&lt;/P&gt;
&lt;P&gt;に書き換えてください。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;layersプロパティとvla-Addについてですが、ヘルプで「layers」を検索→「layersプロパティ」の項目はご覧になりましたか？&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;その中のVisual LISPのコードの中で&lt;/P&gt;
&lt;P&gt;「;; Create a dimension style named "TEST" in current drawing」以下の部分が、TESTという新画層を作成する部分になっています。&lt;/P&gt;
&lt;P&gt;コメント文は新たに寸法スタイルを作るとなってますが、これは間違いだと思います。&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 00:29:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7495386#M10931</guid>
      <dc:creator>N.H1971</dc:creator>
      <dc:date>2017-10-27T00:29:07Z</dc:date>
    </item>
    <item>
      <title>Re: 画層が存在するか。lisp</title>
      <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7497340#M10932</link>
      <description>&lt;P&gt;画層有無の判断正しく行えましたありがとうございます。&lt;/P&gt;&lt;P&gt;新画層作成なのですが&lt;/P&gt;&lt;P&gt;　(setq testlayer (vla-Add layerColl "TEST"))&lt;/P&gt;&lt;P&gt;のvla-Addで今ある画層にtest画層を新規作成していると思うのですが、&lt;/P&gt;&lt;P&gt;このsetqは何をしているのでしょうか。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;画層を作成と同時に画層色も設定しようと思うのですが、&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;(vla-put-Color "画層名"&amp;nbsp;acRed) の形で画層色を設定できるでしょうか。&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;よろしくお願いします。&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2017 16:27:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7497340#M10932</guid>
      <dc:creator>naozo8257</dc:creator>
      <dc:date>2017-10-27T16:27:10Z</dc:date>
    </item>
    <item>
      <title>Re: 画層が存在するか。lisp</title>
      <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7500540#M10933</link>
      <description>&lt;P&gt;&amp;gt;　(setq testlayer (vla-Add layerColl "TEST"))&lt;/P&gt;
&lt;P&gt;&amp;gt;のvla-Addで今ある画層にtest画層を新規作成していると思うのですが、&lt;/P&gt;
&lt;P&gt;&amp;gt;このsetqは何をしているのでしょうか。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;これは、このコードの最終行にある、&lt;/P&gt;
&lt;P&gt;(alert (strcat "A new layer called " (vla-get-Name testlayer) " has been added to the Layers collection.")))&lt;/P&gt;
&lt;P&gt;で画層名を取り出すために、変数&lt;SPAN&gt;testlayer&lt;/SPAN&gt;に入れています。&lt;SPAN&gt;testlayerはLayerオブジェクトになります。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;オブジェクトから、再度名前を取り出してメッセージに入れているわけです。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;このコード内ではメッセージを出さないのであれば、setqの必要はありません。&lt;/P&gt;
&lt;P&gt;ただし、画層のプロパティ設定には必要です。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;画層色設定の場合は、&lt;/P&gt;
&lt;P&gt;&amp;gt;&lt;SPAN&gt;(vla-put-Color "画層名"&amp;nbsp;acRed)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ここで、画層名ではなく上記のLayerオブジェクトが必要になります。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(setq testlayer (vla-Add layerColl "TEST"))&lt;BR /&gt; (vla-put-color testlayer acRed)&lt;/P&gt;
&lt;P&gt;こうすると、画層色が設定できます。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 02:14:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7500540#M10933</guid>
      <dc:creator>N.H1971</dc:creator>
      <dc:date>2017-10-30T02:14:36Z</dc:date>
    </item>
    <item>
      <title>Re: 画層が存在するか。lisp</title>
      <link>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7501485#M10934</link>
      <description>&lt;P&gt;N.H1971 さん&lt;/P&gt;&lt;P&gt;画層有無判断のコード、画層作成と色設定の手引きありがとうございました。&lt;/P&gt;&lt;P&gt;ユーザー入力(画層名)をして画層名が有るか判断し、有れば現在層への適応&lt;/P&gt;&lt;P&gt;無ければ新規作成し画層色に赤を設定する。というlspが作成できました。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;とても勉強になりました。&lt;/P&gt;&lt;P&gt;まだlispでやりたいことがいくつかあります。&lt;/P&gt;&lt;P&gt;また質問を上げることがありますので是非ご教示お願いします。&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 12:44:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/autocad-ri-ben-yuforamu/hua-cengga-cun-zaisuruka-lisp/m-p/7501485#M10934</guid>
      <dc:creator>naozo8257</dc:creator>
      <dc:date>2017-10-30T12:44:57Z</dc:date>
    </item>
  </channel>
</rss>

