• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

エリアの値を自動で書き込む

  • Thread starter Thread starter lollazzo
  • Start date Start date
ottimo, gentilissimo! aggiorno subito il file anche se.......al posto del retino forse troverei utile creare una polilinea, è possibile?
 
ottimo, gentilissimo! aggiorno subito il file anche se.......al posto del retino forse troverei utile creare una polilinea, è possibile?

sei fortunato perchè il programma prima di calcolare l'area crea una polilinea che poi io cancello.
allora modifica il programma mettendo ; davanti a queste 2 righe.
la prima è quella che crea il retino, la seconda è quella che cancella la polilinea.
se un domani vuoi ripristinarle basterà togliere ;
ciao


;(command "_-bhatch" "_s" en "" "")*
;(command "_erase" en "")
 
sei fortunato .....

ad aver trovato questo listato e te così disponibile :)

grazie ancora!

ps. sto calcolando aree e perimetri di molte stanze che poi devo inserire in excel, esiste un listato che mi permette di creare una tabella per ogni stanza con nome stanza (numero progressivo che segue l'ordine di come le seleziono), area e perimetro?
 
sto calcolando aree e perimetri di molte stanze che poi devo inserire in excel, esiste un listato che mi permette di creare una tabella per ogni stanza con nome stanza (numero progressivo che segue l'ordine di come le seleziono), area e perimetro?

questa cosa revit la fa da una vita ma voi ancora vi ostinate a lavorare in autocad...contenti voi
 
questa cosa revit la fa da una vita ma voi ancora vi ostinate a lavorare in autocad...contenti voi

buonasera a tutti,

sono nuovissimo (primo intervento). non so nulla di linguaggio lisp. vi sottopongo uno strumento per me utilissimo (trovato in queste pagine) a cui ho semplicemente cambiato nome al comando. mi piacerebbe che restituisse valori in mq e non in punti (lavoro in mm e mi scrive ad esempio 16000000 (4000x4000 punti) invece di 16 (mq). credo occorra un'informazione del tipo "dividi punti per 1000000 !?! ).
grazie

(vl-load-com)
(defun c:totmq (/ *error* dest i e ss ht suma enti oldzin pct prec val p1)

(or acdoc (setq acdoc (vla-get-activedocument (vlax-get-acad-object))))
(vla-startundomark acdoc)
(setq oldzin (getvar "dimzin"))

(defun *error* (msg)
(and msg (/= msg "function cancelled") (princ msg))
(setvar "dimzin" oldzin)
(vla-endundomark acdoc)
(princ)
)

(if
(setq suma 0 ht 0 ss (ssget '((0 . "text"))))
(progn
(repeat (setq i (sslength ss))
(setq suma (+ suma (atof (cdr (assoc 1 (setq e (entget (ssname ss (setq i (1- i)))))))))
ht (max ht (cdr (assoc 40 e)))
)
)
(princ "\nselect existing text entity to be replaced or hit enter twice to place as new text")
(setq dest (ssget ":e:s:l" '((0 . "text"))))
(cond (dest
(setq enti (vlax-ename->vla-object (ssname dest 0))
val (vla-get-textstring enti)
)
(if (setq pct (vl-string-search "." val)) (setq prec (- (strlen val) pct 1)) (setq prec 0))
(if (> prec 0) (setvar "dimzin" 1) (setvar "dimzin" 8) )
(vla-put-textstring enti (rtos suma 2 prec))
)
((setq p1 (getpoint "\ntext position:"))
(entmake (list '(0 . "text") (cons 10 p1) (cons 40 ht) (cons 1 (rtos suma 2 4))))
;;; (command "text" "j" "ml" p1 (* 0.25 (getvar "ltscale")) "0" (rtos suma 2 4))
)
)
)
)
(print suma)
(princ)
)
 

Attachments

non restituisce l'area in "punti". non esiste l'unità "punto" in autocad.
restituisce il valore in unità al quadrato
se lavori in mm, l'area è in mmq. se lavori in m, l'area è in mq.
d'altra parte se ritieni corretto e d'uso corrente l'uso dei mm, non vedo perche non esprimere l'area in mmq.

in tutti i casi la modifica va fatta qui:
(entmake (list '(0 . "text") (cons 10 p1) (cons 40 ht) (cons 1 (rtos suma 2 4))))

che diventa
(entmake (list '(0 . "text") (cons 10 p1) (cons 40 ht) (cons 1 (/ (rtos suma 2 4) 1000000))))
 
grazie cristallo!

purtroppo il perchè del fatto che lavoro in mm ma mi servono le dimensioni in mq è un quesito che ho posto al mio datore di lavoro, ma il problema è legato alla complessità delle attività aziendali (siamo in diversi a mettere le mani sugli elaborati, ognuno per le proprie esigenze: a me servono i mq, ad altri i mm..).
piuttosto ti chiedo un'ultima cortesia: avrei la stessa necessità per il file che ti allego ora. mi puoi indicare come correggerlo?
1000 grazie ancora!

;;; cadalyst 07/08 www.cadalyst.com/code
;;; tip 2292: arearon.lsp area of closed polylines (c) 2008 ronald maneja (wizman)

;;; produces text containing area of selected closed polylines
;;; and puts them in arearon layer
;;; created by ron maneja 31jan08
;;; user inputs: scale, polyline selection
;;;

;;; version 1.1 (09feb09): added area for regions, spline, circle & ellipse
;;;

(defun c:mq (/
allx
ally
areaobj
counter
ctr
el
entity-name
entnamevla
mysset
prec_temp
pt
reg_centroid
temp
tst
vertex
x
y
oldlayer
oldsnap
temperr
traperror
blpt
cir_center
el_center
maxpt
minpt
spl_center
trpt
)

(defun set_var ()
(setvar 'cmdecho 0)
(setq oldlayer (getvar "clayer"))
(setq oldsnap (getvar "osmode"))
(setq temperr *error*)
(setq *error* traperror)
(setvar "osmode" 0)
)


(defun traperror (errmsg)
(command nil nil nil)
(if (not (member errmsg '("console break" "function cancelled"))
)
(princ (strcat "\nerror: " errmsg))
)
(command "_.undo" "_end")
(setvar "clayer" oldlayer)
(setvar "osmode" oldsnap)
(setvar "cmdecho" 1)
(princ "\nerror resetting enviroment ")
(setq *error* temperr)
)



(defun reset_var ()
(setq *error* temperr)
(setvar "clayer" oldlayer)
(setvar "osmode" oldsnap)
(command "_.undo" "_end")
(setvar "cmdecho" 1)
)

(vl-load-com)
(set_var)
(command "_.undo" "_be")
(if (tblsearch "layer" "mq")
(command "._layer" "_thaw" "mq" "_on" "mq" "_unlock" "mq" "_set" "mq" "") ;_ closes command
(command "._layer" "_make" "mq" "_color" 1 "mq" "") ;_ closes command
)
(if (null sch)
(setq sch 1.0)
)
(initget 6)
(setq temp (getreal (strcat "\nenter scale <"
(rtos sch 2 2)
">: "
)
)
)
(if temp
(setq sch temp)
(setq temp sch)
)

(if (null precision)
(setq precision 0)
)
(initget 6)
(setq prec_temp
(getint
(strcat "\nhow many decimal places?: <"
(rtos precision 2 2)
">: "
)
)
)
(if prec_temp
(setq precision prec_temp)
(setq prec_temp precision)
)



(prompt "\nselect closed polylines/splines, region, circle & ellipse:> ")
(setq
mysset (ssget '((-4 . "<or")
(-4 . "<and")
(0 . "lwpolyline")
(70 . 1)
(-4 . "and>")
(-4 . "<and")
(0 . "spline")
(70 . 11)
(-4 . "and>")
(0 . "region")
(0 . "circle")
(0 . "ellipse")
(-4 . "or>")
)
)
counter 0
)
(if mysset
(progn
(while (< counter (sslength mysset))
(setq entity-name (ssname mysset counter)
el (entget entity-name)
entnamevla (vlax-ename->vla-object entity-name)
areaobj (vla-get-area entnamevla)
)
(cond
((eq (cdr (assoc 0 el)) "lwpolyline")
(progn
(setq allx 0
ally 0
ctr 0
tst 1
)
(while (assoc 10 el)
(setq vertex (cdr (assoc 10 el))
ctr (+ ctr 1)
x (car vertex)
y (cadr vertex)
allx (+ allx x)
ally (+ ally y)
el (cdr (member (assoc 10 el) el))
)
)
(setq x (/ allx ctr)
y (/ ally ctr)
pt (list x y)
)
(command "_text"
"_j"
"_mc"
pt
(* sch 2.5)
"0"
(rtos areaobj 2 precision)
)
)
)
((eq (cdr (assoc 0 el)) "region")
(setq reg_centroid
(vlax-safearray->list
(vlax-variant-value
(vla-get-centroid entnamevla)
)
)
)
(command "_text"
"_j"
"_mc"
reg_centroid
(* sch 2.5)
"0"
(rtos areaobj 2 precision)
)
)

((eq (cdr (assoc 0 el)) "circle")
(setq cir_center
(vlax-safearray->list
(vlax-variant-value
(vla-get-center entnamevla)
)
)
)
(command "_text"
"_j"
"_mc"
cir_center
(* sch 2.5)
"0"
(rtos areaobj 2 precision)
)
)

((eq (cdr (assoc 0 el)) "ellipse")
(setq el_center
(vlax-safearray->list
(vlax-variant-value
(vla-get-center entnamevla)
)
)
)
(command "_text"
"_j"
"_mc"
el_center
(* sch 2.5)
"0"
(rtos areaobj 2 precision)
)
)

((eq (cdr (assoc 0 el)) "spline")
(vla-getboundingbox entnamevla 'minpt 'maxpt)
(setq blpt (vlax-safearray->list minpt)
trpt (vlax-safearray->list maxpt)
)
(setq spl_center
(mapcar '* '(0.5 0.5 0.5) (mapcar '+ blpt trpt))
)
(command "_text"
"_j"
"_mc"
spl_center
(* sch 2.5)
"0"
(rtos areaobj 2 precision)
)
)
)
(setq counter (+ counter 1))
)
)
(alert "\nno closed polylines/lwpolylines/splines in your selection"
)
)
(reset_var)
(princ)

)
(prompt "'\n>>>...arearon.lsp is now loaded, type 'mq' to start command...<<<")
(princ)
 

Attachments

retinoは計算の領域オブジェクトを視覚的に強調する機能を持っています。
エリアは1つ以上(プログラムの合計)できます。
エリアが2回クリックされたとき、あなたが理解していない連続的なretinoは欠陥を持っています。
この事実、私は、各クラックに変化するストライプされたレティーノでプログラムを変更しました。
ですから、2回クリックすると、ダブルレタンチュアが表示されます。
必要だと思います。
線を取り替えるのに十分である引くことを望まないなら
(コマンド "_-bhatch" "_s" en "") と
;(command "_-bhatch" "_s" en "") (このようにして行が単純なコメントになり、実行されていない)
新しいリストをお送りします
こんにちは。



; a2.lsp は複数の図の領域と周囲を計算します
; ソフト。 betoniera - オートカド2014

(defun c:a2 )
(prompt "\n")
(setq n (getvar "useri1")))
(コンド)
(=n 0);単位 cm
(setq um "cm" リーフ 100)
)
(= n 1);単位 mm
(setq um "mm" リーフ 1000)
)
(=n 2);単位m
(setq um "m" サンゴ 1)
)
;;;

(ht1 nil (setq ht1 5) の場合;se 値 nil 5
(retino-ds nil (setq retino-ds 5) の場合;
(setqのsc)
ort (getvar "orthomode")
osm (getvar "osmode")
b (strcat "\nheight text in mm <" (rtos ht1) ">: "); mm の現在の
ht (getreal b) ;here
(rtos retino-ds) "
ds (getreal a)
アングリ 0
)

(ht nilの場合 (setq ht ht1) ; テキスト高さ税;
(もし (/= ds nil) (setq retino-ds ds))))
(setq ds1 (* retino-ds sc 0.1); 純間隔税
ht (* ht (getvar "dimscale")) 0.1)
gs (ssadd)の
スタッフ
スタッフ
0 の 0
)

(コマンド "_color" 7)
(コマンド "_setvar" "hpname" "_u")
(コマンド "_setvar" "hpspace" ds1)
;(コマンド "_setvar" "hpang")
(コマンド "_setvar" "textsize" ht)
(コマンド "_setvar" "orthomode") 0)
(コマンド "_setvar" 0)

;loop のみが返す
(ただし(eq str) ではありません)
(setq p1 (getpoint "\nimmetti point ")))
(setq angr (+ angr 45)))
(コマンド "_setvar" "hpang" angr)
(コンド)
((=p1 nil) ; 戻りをつぶすと
(setq str ");
)
;;;
(コンド)
(/= p1 ニル)
(setq p2 p)
(コマンド "_-boundary" p1 ")
(setq en (entlast) )
(コマンド "area" "_o" "_l")
(setq ar1 (/ (getvar "area") coef)))
(setq ar (+ ar)))
(setq pe1 (/ (getvar "perimeter") のコフ)
(seq pe (+ pe)))
(コマンド "_-bhatch" "_s" en ""))
(コマンド "_erase" en ")
)
;;;
;;;

(コマンド "_color" 3)
(コマンド "_text" "_j" "_c" p2 ") 0 (文字列 "area mq" (rtos ar) " 境界 m " (rtos pe))))
(コマンド "_setvar" ort)
(コマンド "_setvar" osm)
(コマンド "_move" "_l" p2)
)
おはようございます。

mm の領域の値を差し込むことはできますか? ネットや周囲は必要ありません。 コマンドを変更できますか?

お問い合わせ
 
バイビー

このプログラムは、設計に採用された測定の単位に関係なく、面積が常に平方メートルに復元されたより複雑なリップ手順から派生しました。
それから私はそれを見直し、あなたの要求に合うためにそれを少しきれいにしました。
mm で動作していると、以下のようにプログラムを変更しました。
お問い合わせ
- mmのテキストの高さ(描画スケールで印刷)
- 面積当たりのスケール係数(1 mm2、10 cm2、1 m2あたり1000)。 目的のドライブに領域を返し、適切な要因を置くことによってオフ・スケールの細部に使用することができます。
- 私はレティーノを設計しますか? デフォルトで "n" をリクエストしますが、 "s" を入れると、常に印刷できます。 プログラムが領域を要し、ネットを入れていない場合は、関連する領域を見ていないので注意してください。 また、同じエリアで2回クリックすると、気付くことはありません(クリックすると、リチノはリチノが変わります)。
私は証拠をしたし、それを修正しない場合は、それが動作する必要があります。
ファイル (a3 をロード) を読み込み、a3 コマンドで関数を使うことができます。
こんにちは。
 

Attachments

バイビー

このプログラムは、設計に採用された測定の単位に関係なく、面積が常に平方メートルに復元されたより複雑なリップ手順から派生しました。
それから私はそれを見直し、あなたの要求に合うためにそれを少しきれいにしました。
mm で動作していると、以下のようにプログラムを変更しました。
お問い合わせ
- mmのテキストの高さ(描画スケールで印刷)
- 面積当たりのスケール係数(1 mm2、10 cm2、1 m2あたり1000)。 目的のドライブに領域を返し、適切な要因を置くことによってオフ・スケールの細部に使用することができます。
- 私はレティーノを設計しますか? デフォルトで "n" をリクエストしますが、 "s" を入れると、常に印刷できます。 プログラムが領域を要し、ネットを入れていない場合は、関連する領域を見ていないので注意してください。 また、同じエリアで2回クリックすると、気付くことはありません(クリックすると、リチノはリチノが変わります)。
私は証拠をしたし、それを修正しない場合は、それが動作する必要があります。
ファイル (a3 をロード) を読み込み、a3 コマンドで関数を使うことができます。
こんにちは。
お問い合わせ

可能な場合は、いくつかのリクエストがあります。
- "a3" コマンドを呼び出すと、必要な時に、デフォルトのテキスト高さを設定できますか?
- "a3" コマンドを呼び出すと、mm2 で "area scale の値を設定できますか?
- "retino" の質問を削除したり、地域を生成したり、 "misurageom"/object" コマンドを使用して、領域の一時的なハイライトに置き換えたりすることができますか?

このコマンドは、領域の領域の値をコピーし、それをテーブルエクセルに貼り付け、その部分の厚さを課し、重量を計算する必要があります。
次に、重み値をコピーし、それをオートキャド(画像「重み領域」参照)でトランクします。

この時点で、この文字列を自動的に入力する lsp を作成できますか?
- 地域を選択するか、地域を作成する
- セットの厚さ
- 個数の設定
- s355j0、w700、hb400、hb450、hb500であることができる材料のセットのタイプ
- 領域の領域を倍増します。 x 厚さ x 特定の重量 (常に 0.0000078) 結果を自動的に転写
- 量によって単一部分の重量を掛け、自動的に結果を転がして下さい。

以下のテキストを取得するにはこれだけです(数値21と22は計算の一部ではありません)pesi regioni.jpgお問い合わせ
 
このコマンドは、領域の領域の値をコピーし、それをテーブルエクセルに貼り付け、その部分の厚さを課し、重量を計算する必要があります。
次に、重み値をコピーし、それをオートキャド(画像「重み領域」参照)でトランクします。
バイビー
それは必然的に複雑な手順です。
アウトせずにオートキャドですべてを行うことができます。
プログラムの実行を優先的に要求します。
時間が経つにつれて、そのプログラムをセットアップするのに良い時間があったので、もちろんテストする必要があります。
プログラムはescを押すまで無限サイクルで動作します
お問い合わせ:
- 厚さ
- 個数
- 材料
- エリア
- 書かれたポイント
データを記述すると、escを押していない場合は別の部分で繰り返すことができます。
テキストの高さが正しい場合は、指示を変更する必要があります。 "ht 5" は、新しい値 (mm) で表示されます。
こんにちは。
 

Attachments

このコマンドは、領域の領域の値をコピーし、それをテーブルエクセルに貼り付け、その部分の厚さを課し、重量を計算する必要があります。
次に、重み値をコピーし、それをオートキャド(画像「重み領域」参照)でトランクします。
バイビー
それは必然的に複雑な手順です。
アウトせずにオートキャドですべてを行うことができます。
プログラムの実行を優先的に要求します。
時間が経つにつれて、そのプログラムをセットアップするのに良い時間があったので、もちろんテストする必要があります。
プログラムはescを押すまで無限サイクルで動作します
お問い合わせ:
- 厚さ
- 個数
- 材料
- エリア
- 書かれたポイント
データを記述すると、escを押していない場合は別の部分で繰り返すことができます。
テキストの高さが正しい場合は、指示を変更する必要があります。 "ht 5" は、新しい値 (mm) で表示されます。
こんにちは。
あなたは天才です!

それは非常によく機能します。, 私はホールやポケットでピースを秤量しなければならないとき、唯一の問題は、領域の減容を検討しない理由を知らないので、. 完成できますか?

最後のことをお願いし、小数なしで領域の値を差し込むことができますか?

お問い合わせ
 
私はそれが領域の減容を考慮しない理由がわからないので、私は穴やポケットでピースを量らなければならないとき、唯一の問題が生じる。 完成できますか? 穴と外側の間に小さなラインを置く必要がある穴があるとき、オートキャドが屋外閉鎖エリアを見つけず、また穴を考慮する
prova679.jpg
最後のことをお願いし、小数なしで領域の値を差し込むことができますか? 確か:私達はまた71を作りました30を作りました
a4.lsp 領域が記述されていないだけ。
総重量の全体を書きたいですか?
こんにちは。
 
私はそれが領域の減容を考慮しない理由がわからないので、私は穴やポケットでピースを量らなければならないとき、唯一の問題が生じる。 完成できますか? 穴と外側の間に小さなラインを置く必要がある穴があるとき、オートキャドが屋外閉鎖エリアを見つけず、また穴を考慮する
prova679.jpg
最後のことをお願いし、小数なしで領域の値を差し込むことができますか? 確か:私達はまた71を作りました30を作りました
a4.lsp 領域が記述されていないだけ。
総重量の全体を書きたいですか?
こんにちは。
こんにちは。
私は28.86が29になるようにしたいし、小数なしで合計のために。
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top