更新定义及其所有块引用?- 别再问我这个了!!!!
也许我正在变老(那一定是这样),或者我只是太愚蠢了,不知道发生了什么。每次我想插入一个块时,我都会对一个愚蠢的弹出窗口感到恼火。“[块]已经定义。图形中已存在 432 个块参照。更新定义及其所有块引用?
嗯..不,我不想被提示432次了!
专家是无济于
事 BlockRedefineMode 是无济于事
的,到底是怎么回事?
每次我输入块名称时,它总是希望引用该文件并从图形文件插入,而不是从图形中已有的块定义插入。
有人请帮帮我..我在这里失去了理智!
**** Hidden Message ***** 您是否正在尝试重新定义和更新插入?
当您从 DWG 文件将块插入 DWG 时,是否会发生这种情况?
如果答案是肯定的,那么我建议您从文件夹中收集所有dwg,您可以在其中收集所有块以进行重新定义并创建将执行INSERT命令的脚本,并始终将问题“是/否”作为“是”回答...
如果您已经有了定义,并且只是从DWG插入它们,那么我也不知道发生了什么 - 应该没有任何问题......
一些链接...
https://www.cadtutor.net/forum/topic/71630-redefine-every-single-blocks-contained-in-a-drawing-from-block-library-folder-path/
看看李麦克先生的回答... 块已经在绘图中...
我大部分时间都是键盘突击队,但我使用插入对话框...
我只是键入I
GUI弹出
我在名称组合中键入名称并按
NO!!!我不想得到通知!!停止它!!
我已经在这幅图中插入了432次这个块放弃了!如果我在过去的432次中没有说是,为什么我会在433次中说是?!
我不知道...当我能够在我的Win 10 x64 PC上使用CAD时,它并没有这样做...在欧特克拒绝允许我在那台PC上使用我完全合法的许可证之前...所以我被降级为在我的旧Win 7 x64 PC上使用它,因为显然他们希望我购买订阅而不是永久许可证。
唉,我讨厌这家公司
抱歉咆哮!我一整天都在画这些画,它让我筋疲力尽! 我在AutoCAD克隆方面取得了相当大的成功。但是要习惯它们需要一些工作。比方说,你必须喜欢修补它们。它们有自己独特的挫败感。
我非常讨厌AutoCAD的新“插入”界面。我也避免了旧的。当我记住块的名称时,我总是使用“插入”命令。对于频繁插入的块,我会制作一个基本的LISP。或者被迫使用AutoCAD LT时的宏。通过配置一个非常光滑的功能区面板设置,我能够从AutoCAD LT中获得令人惊讶的快速性能。
试一下“插入”命令,看看它是否仍然提示您。 Keith,试试这个lisp...我知道,对话框提供了块的预览,但没有显示属性,但它使用(vla-sendCommand)最终插入您选择的块...是我那个mod。Lee先生的BlockPreview DCL示例,但我用得很好...我认为它可能对您有帮助...
问候,M. R.
(defun c:binsert ( / *error* LM:BlockPreview RefGeom LM:Entity->PointList trp mxm mxv _blockpreview _ins dcl def des lst tmp bln )
(vl-load-com)
(defun *error* ( msg )
(if (
(unload_dialog dcl)
)
(if (= 'file (type des))
(close des)
)
(if (and tmp (findfile tmp))
(vl-file-delete tmp)
)
(if (and msg (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")))
(princ (strcat "\nError: " msg))
)
(princ)
)
(defun-q LM:BlockPreview ( key block margin / _getcolour _getvectors _unique bn cache dy ec el en mi mx pl r1 r2 sc vc vl xt yt )
(setq cache '( ))
(defun _getcolour ( l / c )
(cond
( (= 0 (setq c (cdr (assoc 62 l))))
7
)
( (or (null c) (= 256 c))
(abs (cdr (assoc 62 (tblsearch "LAYER" (cdr (assoc 8 l))))))
)
( c )
)
)
(defun _getvectors ( bn / ec el en pl rg vl )
(if (setq en (tblobjname "BLOCK" bn))
(while (setq en (entnext en))
(setq el (entget en))
(cond
( (= 1 (cdr (assoc 60 el))))
( (= "INSERT" (cdr (assoc 0 el)))
(setq rg (RefGeom en))
(setq vl
(append vl
(mapcar
(function
(lambda ( x )
(append
(mapcar '+ (mxv (car rg) (list (car x) (cadr x) 0.0)) '(0 0) (cadr rg))
(mapcar '+ (mxv (car rg) (list (caddr x) (cadddr x) 0.0)) '(0 0) (cadr rg))
(cddddr x)
)
)
)
(_getvectors (cdr (assoc 2 el)))
)
)
)
)
( (setq pl (LM:Entity->PointList en))
(if (or (= "POINT" (cdr (assoc 0 el))) (vlax-curve-isclosed en))
(setq pl (cons (last pl) pl))
)
(setq ec (_getcolour el))
(setq vl
(append vl
(mapcar
(function
(lambda ( a b )
(list (car a) (cadr a) (car b) (cadr b) ec)
)
)
pl (cdr pl)
)
)
)
)
)
)
)
vl
)
(defun _unique ( l / a r )
(while (setq a (car l))
(setq r (cons a r)
l (vl-remove-if (function (lambda ( b ) (equal a b))) (cdr l))
)
)
(reverse r)
)
(cond
( (or (
(
(
)
nil
)
( (setq vl (assoc (strcase block) cache))
(foreach x (cdr vl) (apply 'vector_image x))
t
)
( (setq vl (_getvectors block))
(setq mi (apply 'mapcar (cons 'min vl))
mx (apply 'mapcar (cons 'max vl))
mi (list (min (car mi) (caddr mi)) (min (cadr mi) (cadddr mi)))
mx (list (max (car mx) (caddr mx)) (max (cadr mx) (cadddr mx)))
r1 (/ (- (carmx) (carmi)) (- xt (* 2 margin)))
r2 (/ (- (cadr mx) (cadr mi)) (- yt (* 2 margin)))
)
(cond
( (and (equal r1 r2 1e-8) (equal r1 0.0 1e-8))
(setq sc 1.0
vc (mapcar '- mi (list (/ xt 2.0) (/ yt 2.0)))
)
)
( (equal r1 r2 1e-8)
(setq sc r1
vc (mapcar '(lambda ( x ) (- x (* sc margin))) mi)
)
)
( (
(setq sc r2)
(setq vc
(list
(- (carmi) (/ (- (* sc xt) (- (car mx) (car mi))) 2.0))
(- (cadr mi) (* sc margin))
)
)
)
( t
(setq sc r1)
(setq vc
(list
(- (carmi) (* sc margin))
(- (cadr mi) (/ (- (* sc yt) (- (cadr mx) (cadr mi))) 2.0))
)
)
)
)
(setq vc (append vc vc))
( (setq LM:BlockPreview
(vl-list* '( key block margin )
(list 'setq 'cache
(list 'quote
(cons
(cons (strcase block)
(_unique
(mapcar
(function
(lambda ( a / x )
(setq x (mapcar '(lambda ( a b ) (fix (/ (- a b) sc))) a vc))
(list
(car x)
(- yt (cadr x))
(caddr x)
(- yt (cadddr x))
(last a)
)
)
)
vl
)
)
)
cache
)
)
)
(cddr LM:BlockPreview)
)
)
key block margin
)
)
)
)
(defun RefGeom ( ename / elst ang norm mat )
(setq elst (entget ename)
ang(cdr (assoc 50 elst))
norm (cdr (assoc 210 elst))
)
(list
(setq mat
(mxm
(mapcar '(lambda ( v ) (trans v 0 norm t))
'(
(1.0 0.0 0.0)
(0.0 1.0 0.0)
(0.0 0.0 1.0)
)
)
(mxm
(list
(list (cos ang) (- (sin ang)) 0.0)
(list (sin ang) (cos ang) 0.0)
'(0.0 0.0 1.0)
)
(list
(list (cdr (assoc 41 elst)) 0.0 0.0)
(list 0.0 (cdr (assoc 42 elst)) 0.0)
(list 0.0 0.0 (cdr (assoc 43 elst)))
)
)
)
)
(mapcar '- (trans (cdr (assoc 10 elst)) norm 0)
(mxv mat (cdr (assoc 10 (tblsearch "BLOCK" (cdr (assoc 2 elst))))))
)
)
)
(defun LM:Entity->PointList ( ent / der di1 di2 di3 elst fun inc lst par rad )
(setq elst (entget ent))
(cond
( (eq "POINT" (cdr (assoc 0 elst)))
(list (cdr (assoc 10 elst)))
)
( (eq "LINE" (cdr (assoc 0 elst)))
(list (cdr (assoc 10 elst)) (cdr (assoc 11 elst)))
)
( (member (cdr (assoc 0 elst)) '("CIRCLE" "ARC"))
(setq di1 0.0
di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))
inc (/ di2 (1+ (fix (* 35.0 (/ di2 (cdr (assoc 40 elst)) (+ pi pi))))))
fun (if (vlax-curve-isclosed ent)
)
(while (fun di1 di2)
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
di1 (+ di1 inc)
)
)
lst
)
( (or (eq (cdr (assoc 0 elst)) "LWPOLYLINE")
(and (eq (cdr (assoc 0 elst)) "POLYLINE") (zerop (logand (cdr (assoc 70 elst)) 80)))
)
(setq par 0)
(repeat (fix (1+ (vlax-curve-getendparam ent)))
(if (setq der (vlax-curve-getsecondderiv ent par))
(if (equal der '(0.0 0.0 0.0) 1e-8)
(setq lst (cons (vlax-curve-getpointatparam ent par) lst))
(if (setq rad (distance '(0.0 0.0) (vlax-curve-getfirstderiv ent par))
di1 (vlax-curve-getdistatparam ent par)
di2 (vlax-curve-getdistatparam ent (1+ par))
)
(progn
(setq inc (/ (- di2 di1) (1+ (fix (* 35.0 (/ (- di2 di1) rad (+ pi pi)))))))
(while (
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
di1 (+ di1 inc)
)
)
)
)
)
)
(setq par (1+ par))
)
(if (or (vlax-curve-isclosed ent) (equal '(0.0 0.0 0.0) der 1e-8))
lst
(cons (vlax-curve-getendpoint ent) lst)
)
)
( (eq (cdr (assoc 0 elst)) "ELLIPSE")
(setq di1 (vlax-curve-getdistatparam ent (vlax-curve-getstartparam ent))
di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))
di3 (* di2 (/ (+ pi pi) (abs (- (vlax-curve-getendparam ent) (vlax-curve-getstartparam ent)))))
)
(while (
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
der (distance '(0.0 0.0) (vlax-curve-getsecondderiv ent (vlax-curve-getparamatdist ent di1)))
di1 (+ di1 (/ di3 (1+ (fix (/ 35.0 (/ di3 der (+ pi pi)))))))
)
)
(if (vlax-curve-isclosed ent)
lst
(cons (vlax-curve-getendpoint ent) lst)
)
)
( (eq (cdr (assoc 0 elst)) "SPLINE")
(setq di1 (vlax-curve-getdistatparam ent (vlax-curve-getstartparam ent))
di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))
inc (/ di2 25.0)
)
(while (
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
di1 (+ di1 inc)
)
)
(if (vlax-curve-isclosed ent)
lst
(cons (vlax-curve-getendpoint ent) lst)
)
)
)
)
(defun trp ( m )
(apply 'mapcar (cons 'list m))
)
(defun mxm ( m n )
((lambda ( a ) (mapcar '(lambda ( r ) (mxv a r)) m)) (trp n))
)
(defun mxv ( m v )
(mapcar '(lambda ( r ) (apply '+ (mapcar '* r v))) m)
)
(defun _blockpreview ( blk )
(start_image "img")
(fill_image 0 0 (dimx_tile "img") (dimy_tile "img") 0)
(LM:BlockPreview "img" blk 5)
(end_image)
)
(defun _ins ( bln )
(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) (strcat "_.-INSERT\n" bln "\n"))
)
(while (setq def (tblnext "BLOCK" (null def)))
(if
(and
(= 0 (logand 125 (cdr (assoc 70 def))))
(not (wcmatch (cdr (assoc 2 def)) "`_*,`**,*|*"))
)
(setq lst (cons (cdr (assoc 2 def)) lst))
)
)
(cond
( (null (setq lst (vl-sort lst '
(princ "\nNo blocks found in drawing.")
)
( (null
(and
(setq tmp (vl-filename-mktemp nil nil ".dcl"))
(setq des (open tmp "w"))
(foreach line
'(
"blockpreview : dialog"
"{"
" label = \"Block Preview\";"
" initial_focus = \"lst\";"
" spacer;"
" : row"
" {"
" : list_box { key = \"lst\"; width = 30.0; fixed_width = true; }"
" spacer;"
" : image"
" {"
" key = \"img\";"
" width = 33.5;"
" aspect_ratio = 1.0;"
" fixed_width = true;"
" fixed_height = true;"
" }"
" }"
" spacer;"
" ok_cancel;"
"}"
)
(write-line line des)
)
(not (setq des (close des)))
(
(new_dialog "blockpreview" dcl)
)
)
(princ "\nUnable to load dialog.")
)
( t
(start_list "lst")
(foreach x lst (add_list x))
(end_list)
(set_tile "lst" "0")
(setq bln (nth 0 lst))
(_blockpreview (car lst))
(action_tile "lst" "(_blockpreview (setq bln (nth (atoi $value) lst)))")
(action_tile "accept" "(progn(_ins bln)(done_dialog 1))")
(action_tile "cancel" "(done_dialog 0)")
(start_dialog)
)
)
(*error* nil)
)
(defun c:binsert-tiles ( / *error* LM:BlockPreview RefGeom LM:Entity->PointList trp mxm mxv _blockpreview _blockpreview-highlight _ins dcl def des lst tmp k q bln )
(vl-load-com)
(defun *error* ( msg )
(if (
(unload_dialog dcl)
)
(if (= 'file (type des))
(close des)
)
(if (and tmp (findfile tmp))
(vl-file-delete tmp)
)
(if (and msg (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")))
(princ (strcat "\nError: " msg))
)
(princ)
)
(defun-q LM:BlockPreview ( key block margin / _getcolour _getvectors _unique bn cache dy ec el en mi mx pl r1 r2 sc vc vl xt yt )
(setq cache '( ))
(defun _getcolour ( l / c )
(cond
( (= 0 (setq c (cdr (assoc 62 l))))
7
)
( (or (null c) (= 256 c))
(abs (cdr (assoc 62 (tblsearch "LAYER" (cdr (assoc 8 l))))))
)
( c )
)
)
(defun _getvectors ( bn / ec el en pl rg vl )
(if (setq en (tblobjname "BLOCK" bn))
(while (setq en (entnext en))
(setq el (entget en))
(cond
( (= 1 (cdr (assoc 60 el))))
( (= "INSERT" (cdr (assoc 0 el)))
(setq rg (RefGeom en))
(setq vl
(append vl
(mapcar
(function
(lambda ( x )
(append
(mapcar '+ (mxv (car rg) (list (car x) (cadr x) 0.0)) '(0 0) (cadr rg))
(mapcar '+ (mxv (car rg) (list (caddr x) (cadddr x) 0.0)) '(0 0) (cadr rg))
(cddddr x)
)
)
)
(_getvectors (cdr (assoc 2 el)))
)
)
)
)
( (setq pl (LM:Entity->PointList en))
(if (or (= "POINT" (cdr (assoc 0 el))) (vlax-curve-isclosed en))
(setq pl (cons (last pl) pl))
)
(setq ec (_getcolour el))
(setq vl
(append vl
(mapcar
(function
(lambda ( a b )
(list (car a) (cadr a) (car b) (cadr b) ec)
)
)
pl (cdr pl)
)
)
)
)
)
)
)
vl
)
(defun _unique ( l / a r )
(while (setq a (car l))
(setq r (cons a r)
l (vl-remove-if (function (lambda ( b ) (equal a b))) (cdr l))
)
)
(reverse r)
)
(cond
( (or (
(
(
)
nil
)
( (setq vl (assoc (strcase block) cache))
(foreach x (cdr vl) (apply 'vector_image x))
t
)
( (setq vl (_getvectors block))
(setq mi (apply 'mapcar (cons 'min vl))
mx (apply 'mapcar (cons 'max vl))
mi (list (min (car mi) (caddr mi)) (min (cadr mi) (cadddr mi)))
mx (list (max (car mx) (caddr mx)) (max (cadr mx) (cadddr mx)))
r1 (/ (- (carmx) (carmi)) (- xt (* 2 margin)))
r2 (/ (- (cadr mx) (cadr mi)) (- yt (* 2 margin)))
)
(cond
( (and (equal r1 r2 1e-8) (equal r1 0.0 1e-8))
(setq sc 1.0
vc (mapcar '- mi (list (/ xt 2.0) (/ yt 2.0)))
)
)
( (equal r1 r2 1e-8)
(setq sc r1
vc (mapcar '(lambda ( x ) (- x (* sc margin))) mi)
)
)
( (
(setq sc r2)
(setq vc
(list
(- (carmi) (/ (- (* sc xt) (- (car mx) (car mi))) 2.0))
(- (cadr mi) (* sc margin))
)
)
)
( t
(setq sc r1)
(setq vc
(list
(- (carmi) (* sc margin))
(- (cadr mi) (/ (- (* sc yt) (- (cadr mx) (cadr mi))) 2.0))
)
)
)
)
(setq vc (append vc vc))
( (setq LM:BlockPreview
(vl-list* '( key block margin )
(list 'setq 'cache
(list 'quote
(cons
(cons (strcase block)
(_unique
(mapcar
(function
(lambda ( a / x )
(setq x (mapcar '(lambda ( a b ) (fix (/ (- a b) sc))) a vc))
(list
(car x)
(- yt (cadr x))
(caddr x)
(- yt (cadddr x))
(last a)
)
)
)
vl
)
)
)
cache
)
)
)
(cddr LM:BlockPreview)
)
)
key block margin
)
)
)
)
(defun RefGeom ( ename / elst ang norm mat )
(setq elst (entget ename)
ang(cdr (assoc 50 elst))
norm (cdr (assoc 210 elst))
)
(list
(setq mat
(mxm
(mapcar '(lambda ( v ) (trans v 0 norm t))
'(
(1.0 0.0 0.0)
(0.0 1.0 0.0)
(0.0 0.0 1.0)
)
)
(mxm
(list
(list (cos ang) (- (sin ang)) 0.0)
(list (sin ang) (cos ang) 0.0)
'(0.0 0.0 1.0)
)
(list
(list (cdr (assoc 41 elst)) 0.0 0.0)
(list 0.0 (cdr (assoc 42 elst)) 0.0)
(list 0.0 0.0 (cdr (assoc 43 elst)))
)
)
)
)
(mapcar '- (trans (cdr (assoc 10 elst)) norm 0)
(mxv mat (cdr (assoc 10 (tblsearch "BLOCK" (cdr (assoc 2 elst))))))
)
)
)
(defun LM:Entity->PointList ( ent / der di1 di2 di3 elst fun inc lst par rad )
(setq elst (entget ent))
(cond
( (eq "POINT" (cdr (assoc 0 elst)))
(list (cdr (assoc 10 elst)))
)
( (eq "LINE" (cdr (assoc 0 elst)))
(list (cdr (assoc 10 elst)) (cdr (assoc 11 elst)))
)
( (member (cdr (assoc 0 elst)) '("CIRCLE" "ARC"))
(setq di1 0.0
di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))
inc (/ di2 (1+ (fix (* 35.0 (/ di2 (cdr (assoc 40 elst)) (+ pi pi))))))
fun (if (vlax-curve-isclosed ent)
)
(while (fun di1 di2)
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
di1 (+ di1 inc)
)
)
lst
)
( (or (eq (cdr (assoc 0 elst)) "LWPOLYLINE")
(and (eq (cdr (assoc 0 elst)) "POLYLINE") (zerop (logand (cdr (assoc 70 elst)) 80)))
)
(setq par 0)
(repeat (fix (1+ (vlax-curve-getendparam ent)))
(if (setq der (vlax-curve-getsecondderiv ent par))
(if (equal der '(0.0 0.0 0.0) 1e-8)
(setq lst (cons (vlax-curve-getpointatparam ent par) lst))
(if (setq rad (distance '(0.0 0.0) (vlax-curve-getfirstderiv ent par))
di1 (vlax-curve-getdistatparam ent par)
di2 (vlax-curve-getdistatparam ent (1+ par))
)
(progn
(setq inc (/ (- di2 di1) (1+ (fix (* 35.0 (/ (- di2 di1) rad (+ pi pi)))))))
(while (
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
di1 (+ di1 inc)
)
)
)
)
)
)
(setq par (1+ par))
)
(if (or (vlax-curve-isclosed ent) (equal '(0.0 0.0 0.0) der 1e-8))
lst
(cons (vlax-curve-getendpoint ent) lst)
)
)
( (eq (cdr (assoc 0 elst)) "ELLIPSE")
(setq di1 (vlax-curve-getdistatparam ent (vlax-curve-getstartparam ent))
di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))
di3 (* di2 (/ (+ pi pi) (abs (- (vlax-curve-getendparam ent) (vlax-curve-getstartparam ent)))))
)
(while (
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
der (distance '(0.0 0.0) (vlax-curve-getsecondderiv ent (vlax-curve-getparamatdist ent di1)))
di1 (+ di1 (/ di3 (1+ (fix (/ 35.0 (/ di3 der (+ pi pi)))))))
)
)
(if (vlax-curve-isclosed ent)
lst
(cons (vlax-curve-getendpoint ent) lst)
)
)
( (eq (cdr (assoc 0 elst)) "SPLINE")
(setq di1 (vlax-curve-getdistatparam ent (vlax-curve-getstartparam ent))
di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent))
inc (/ di2 25.0)
)
(while (
(setq lst (cons (vlax-curve-getpointatdist ent di1) lst)
di1 (+ di1 inc)
)
)
(if (vlax-curve-isclosed ent)
lst
(cons (vlax-curve-getendpoint ent) lst)
)
)
)
)
(defun trp ( m )
(apply 'mapcar (cons 'list m))
)
(defun mxm ( m n )
((lambda ( a ) (mapcar '(lambda ( r ) (mxv a r)) m)) (trp n))
)
(defun mxv ( m v )
(mapcar '(lambda ( r ) (apply '+ (mapcar '* r v))) m)
)
(defun _blockpreview ( blk key )
(start_image key)
(fill_image 0 0 (dimx_tile key) (dimy_tile key) 0)
(LM:BlockPreview key blk 5)
(end_image)
)
(defun _blockpreview-highlight ( blk key / x0 y0 x y )
(start_image key)
(fill_image 0 0 (dimx_tile key) (dimy_tile key) 0)
(LM:BlockPreview key blk 5)
(setq x0 0 y0 0 x (dimx_tile key) y (dimy_tile key))
(repeat 4
(vector_image x0 y0 x y0 1)
(vector_image x y0 x y 1)
(vector_image x y x0 y 1)
(vector_image x0 y x0 y0 1)
(setq x0 (1+ x0) y0 (1+ y0) x (1- x) y (1- y))
)
(end_image)
)
(defun _ins ( bln )
(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) (strcat "_.-INSERT\n" bln "\n"))
)
(while (setq def (tblnext "BLOCK" (null def)))
(if
(and
(= 0 (logand 125 (cdr (assoc 70 def))))
(not (wcmatch (cdr (assoc 2 def)) "`_*,`**,*|*"))
)
(setq lst (cons (cdr (assoc 2 def)) lst))
)
)
(cond
( (null (setq lst (vl-sort lst '
(princ "\nNo blocks found in drawing.")
)
( (null
(and
(setq tmp (vl-filename-mktemp nil nil ".dcl"))
(setq des (open tmp "w"))
(foreach line
'(
"blockpreview : dialog"
"{"
" label = \"Block Preview\";"
" initial_focus = \"lst\";"
" spacer;"
" : row"
" {"
" : column"
" {"
" : list_box { key = \"lst\"; width = 30.0; fixed_width = true; }"
" }"
" : column"
" {"
)
(write-line line des)
)
(setq k 0)
(setq q (fix (1+ (sqrt (- (length lst) 0.1)))))
(repeat (expt q 2)
(setq k (1+ k))
(cond
( (= 1 q)
(write-line " : row" des)
(write-line " {" des)
(foreach line
(list
" : image"
" {"
(strcat " key = \"img" (itoa k) "\";")
(strcat " width = " (rtos (* (/ q 2.0) (/ 100.0 (expt q 2))) 2 1) ";")
" aspect_ratio = 1.0;"
" fixed_width = true;"
" fixed_height = true;"
" }"
)
(write-line line des)
)
(write-line " }" des)
)
( (= 0 (rem (1- k) q))
(write-line " : row" des)
(write-line " {" des)
(foreach line
(list
" : image"
" {"
(strcat " key = \"img" (itoa k) "\";")
(strcat " width = " (rtos (* (/ q 2.0) (/ 100.0 (expt q 2))) 2 1) ";")
" aspect_ratio = 1.0;"
" fixed_width = true;"
" fixed_height = true;"
" }"
)
(write-line line des)
)
)
( (= (1- q) (rem (1- k) q))
(foreach line
(list
" : image"
" {"
(strcat " key = \"img" (itoa k) "\";")
(strcat " width = " (rtos (* (/ q 2.0) (/ 100.0 (expt q 2))) 2 1) ";")
" aspect_ratio = 1.0;"
" fixed_width = true;"
" fixed_height = true;"
" }"
)
(write-line line des)
)
(write-line " }" des)
)
( t
(foreach line
(list
" : image"
" {"
(strcat " key = \"img" (itoa k) "\";")
(strcat " width = " (rtos (* (/ q 2.0) (/ 100.0 (expt q 2))) 2 1) ";")
" aspect_ratio = 1.0;"
" fixed_width = true;"
" fixed_height = true;"
" }"
)
(write-line line des)
)
)
)
)
(foreach line
'(
" }"
" }"
" spacer;"
" ok_cancel;"
"}"
)
(write-line line des)
)
(not (setq des (close des)))
(
(new_dialog "blockpreview" dcl)
)
)
(princ "\nUnable to load dialog.")
)
( t
(start_list "lst")
(foreach x lst (add_list x))
(end_list)
(set_tile "lst" "0")
(setq bln (nth 0 lst))
(setq k 0)
(foreach x lst
(setq k (1+ k))
(if (= k 1)
(_blockpreview-highlight (nth 0 lst) "img1")
(_blockpreview (nth (1- k) lst) (strcat "img" (itoa k)))
)
)
(action_tile "lst" "(progn(setq k 0)(foreach x lst (setq k (1+ k))(_blockpreview (nth (1- k) lst) (strcat \"img\" (itoa k))))(_blockpreview-highlight (setq bln (nth (atoi $value) lst)) (strcat \"img\" (itoa (1+ (atoi $value))))))")
(action_tile "accept" "(progn(_ins bln)(done_dialog 1))")
(action_tile "cancel" "(done_dialog 0)")
(start_dialog)
)
)
(*error* nil)
)
只是另一种方式...
启动“AutoCAD设计中心”-命令ADC...
转到块-它将缓存数据,您将预览DWG的所有块-这将是真正的缩略图,而不是像李的块预览只有曲线...所以这样更好...然后你可以双击你想要插入的块...
这都是内置的... 几乎每个人都对频繁的弹出窗口感到恼火。但是你知道,我们永远无法摆脱它。 是的,烦人的弹出窗口
我的许可证仍处于不确定状态
有不允许我使用合法获得的许可证的判例 当您使用“插入”命令并浏览到图形块的文件路径时,可能会发生这种情况。这些块文件是否在同一目录中?只是一个猜测。
页:
[1]
2