manirpg 发表于 2022-7-6 10:38:46

块插入点修改?

亲爱的朋友们:,
我需要一个lisp来更改块的插入点。帮助我。
在我的dwg中,有许多块,但一些块的插入点没有正确指定(在对象上或对象附近)。如果我选择其中一个块,插入点不可见(节点)。
所以我想通过两个步骤轻松地改变插入点。
选择块并指定插入点。不对整个图纸中使用的块的方向进行任何更改。
提前感谢。:)
当做
马尼

Lee Mac 发表于 2022-7-6 10:45:56

可以通过更改块定义来更改图形中每个块的块插入点。查看“原点”特性或块定义的DXF组10。

CADmium 发表于 2022-7-6 10:49:48

尝试
www

d-工具。欧盟
 
48号工具?!

manirpg 发表于 2022-7-6 10:53:38

尊敬的李:,
对不起,我听不懂你的回答。我需要更新现有图形,那么如何帮助块定义窗口?
在我的画里有一个方块。
我正在使用这个宏,这是可行的,但每次执行我都给块名两次,所以我想避免块名输入?
帮助我。
我附上2个例子。。。。。。。
(在不更改块方向的情况下更改了插入点)
任何人都帮我
宏:
^任;b\姓名^C-插入;名称0,0;1.0;^Cz;o;l、 _爆炸L^C^Cm;p、 \
^C ^ C-块;名称1;@;p、 -插入名称1;@;1.0;
-块;名称y0,0;l、 ^Cssx;;b姓名^Cxplode;pg;e^Cz;p^任;b名称1\
^C-pu;b名称n^C
谢谢
当做
马尼



VVA 发表于 2022-7-6 10:57:40

1.尝试使用\u bedit \u bsave和\u bclose命令
2.
在此处找到

(defun selobj ()
(if (not (vl-catch-all-error-p (vl-catch-all-apply
   '(lambda () (vla-getEntity util 'obj nil "Select Block: ")))));not
obj
(progn (alert "Nothibg Selected. Try Again!") (selobj)))
(if (/= (vla-get-ObjectName obj) "AcDbBlockReference")
   (alert "This Is Not A Block! Try Again!") obj)
);selobj
;
(defun C:ChInsPt ( / adoc util bks bk prp)
(setq adoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(mapcar '(lambda (x y) (set x (vlax-get-property adoc y))) '(util bks) '("Utility" "Blocks"))
(vla-endundomark adoc) (vla-startundomark adoc)
(vla-highlight (selobj) t)
(setq prp (mapcar '(lambda (x) (vlax-get-property obj x))
             '(InsertionPoint XScaleFactor YScaleFactor Rotation))
       ip1 (vla-getPoint util nil "Select New Insertion Point")
       rv (mapcar '(lambda (y) (apply y (mapcar '(lambda (x) (vlax-safearray->list (vlax-variant-value x)))
                            (list (car prp) ip1)))) '(distance angle))
       bk (vla-item bks (vla-get-name obj)));setq
(vla-put-origin bk (vlax-3d-point (polar (vlax-get bk 'Origin)
                                     (* (cadr rv) (/ (nth 1 prp) (nth 2 prp))) (- (car rv) (last prp)))))
(vla-update obj)
(vla-regen adoc acAllViewports)
(vla-endundomark adoc)
);end

manirpg 发表于 2022-7-6 11:01:12

尊敬的VVA:,
感谢您的回复,但它没有给出正确的输出。但块对象的位置在执行后发生了变化。
见附件。
谢谢
当做
马尼

Lee Mac 发表于 2022-7-6 11:05:20

这看起来很有趣,所以我想试试看
 
代码执行与VVA发布的相同的操作,但使用不同的方法
 

manirpg 发表于 2022-7-6 11:09:54

尊敬的李:,
您的代码也和VVA发布的代码一样工作。
两者的输出相同。
否则,我需要一个lisp来给出输出块名,我选择了哪个块,有人帮我。。。。。。。。。。。。。。。。
谢谢大家
当做
马尼

Lee Mac 发表于 2022-7-6 11:12:24

更新了我的代码,以说明OCS不同于WCS的块。

Lee Mac 发表于 2022-7-6 11:18:21

看这里Mani
页: [1] 2
查看完整版本: 块插入点修改?