• CADスクール
    による Cizim Okulu
    Forum Galeri İndir AutoCAD Turkish English Deutsch Français Japanese
    フォーラム ギャラリー AutoLISP AutoCAD

    登録 または ログイン

目次
AutoLISP
AutoCADから...
点座標テーブルを作...
場所、材質、品目番...
FreeMUST ...
ファサード立面図割...
平面図に内部寸法を...
選択したオブジェク...
物体の面積と周囲長...
選択したポリライン...
AutoCADにお...
Drawings
BIM
訪問者: 2, ユーザー一覧: 0

詳細 »
AutoLISP > 物体の面積と周囲長の測定値を自動的に書き込みます。

物体の面積と周囲長の測定値を自動的に書き込みます。

面積と周囲長の自動計算および注釈
admin - 23.05.2026 08:12
自動面積・周囲長計算および注記

pLaC: ポリラインの面積と円周
選択した LwPolyline オブジェクトの面積と周囲長を計算し、各オブジェクトの幾何中心にフィールド文字列として値を挿入します。
注記の文字高さには現在の TextSize 変数が、表示される小数点以下の桁数には Luprec 変数の値が使用されます。
コード:

;|===========================================================================|;
;| pLaC: PoLyLine 面積・周囲長 |;
;| 選択した LwPolyline オブジェクトの面積と周囲長を幾何中心に |;
;| フィールドとして書き込みます。文字高さには TextSize、小数点以下の |;
;| 桁数には Luprec 変数の値が取得されます。 |;
;| 作成者: M. Şahin Güvercin - cizimokulu.com |;
;|---------------------------------------------------------------------------|;
(defun c:pLaC (/ *error* pLns Fob n PvT vLo oID x y z PnT m TxH pR pA pC)
 (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com)
 (defun *error* (/ er) (princ (strcat "n" er)) (command "_.undo" "e")(prin1))
 (if (not oFc) (setq oFc 1))
 (setq FaC (getreal (strcat "n製図ユニット/計算ユニット <"(rtos oFc)">: ")))
 (if (not FaC) (setq Fac oFc) (setq oFc FaC))
 (princ "n面積と周囲長を書き込むLwPolylineオブジェクトを選択してください。: ")
 (setq pLns (ssget (list (cons 0 "LwPoLyLine")))
       Fob (ssadd) n (sslength pLns))
 (while (not (minusp (setq n (1- n))))
   (setq PvT (ssname pLns n) vLo (vlax-ename->vla-object PvT)
         oID (itoa (vla-get-ObjectID vLo)) x 0 y 0 z (getvar "elevation")
         PnT (vlax-safearray->list (vlax-variant-value
               (vlax-get-property vLo 'Coordinates))) m (length PnT))
   (while (not (minusp (setq m (- m 2))))
     (setq x (+ x (nth m PnT)) y (+ y (nth (1+ m) PnT))))
   (setq x (/ x (/ (length PnT) 2)) y (/ y (/ (length PnT) 2))
         TxH (getvar "TextSize") pR (getvar "Luprec")
         pA (polar (list x y z) (/ pi 2.0) (* 0.833333 TxH))
         pC (polar (list x y z) (* pi 1.5) (* 0.833333 TxH)))
   (entmake (list (cons 0 "Text") (cons 10 pA) (cons 40 TxH)
                  (cons 1 (strcat "%<AcObjProp Object(%<_ObjId " oID
                                  ">%).Area f "%lu2%pr" (itoa pR)
                                  "%ps[A=,]%ct8["(rtos(* FaC FaC)2 8)"]">%"))
                (cons 50 0.0) (cons 72 1) (cons 11 pA))) (ssadd (entlast) Fob)
   (entmake (list (cons 0 "Text") (cons 10 pC) (cons 40 TxH)
                  (cons 1 (strcat "%<AcObjProp.16.2 Object(%<_ObjId " oID
                                  ">%).Length f "%lu2%pr" (itoa pR)
                                  "%ps[C=,]%ct8[" (rtos FaC 2 8) "]">%"))
               (cons 50 0.0) (cons 72 1) (cons 11 pC))) (ssadd (entlast) Fob))
 (command "_.UpdateFieLd" Fob "") (command "_.undo" "e") (prin1))

作成者: cizimokulu.com
説明: 面積と周囲長の自動計算および注釈を行うAutoLISP関数
タグ: 面積と周囲長の自動計算および注釈


ダウンロード
閲覧数: 1, サイズ: 0.03 MB

コメント一覧 :
コメントはまだありません
著作権 © 2004-2026 | 無断転載を禁じます | 14 | サイトマップ | 統計 | 私たちについて | ヘルプ
SQL合計: 0.006 秒 - SQLクエリ: 31 - SQL平均: 0.00021 秒