highflybir 发表于 2012-1-6 08:51:15

本帖最后由 highflybir 于 2012-1-25 20:27 编辑

byghbcx 发表于 2012-1-6 08:16 http://bbs.mjtd.com/static/image/common/back.gif
高飞鸟写的程序有点像HIGHFILYBIRD的风格,该程序对外部参照、嵌套非等比例块、属性文字等内容暂不支持原位 ...

其实对嵌套非等比例块还是支持的,只不过对非正交变换不支持。

byghbcx 发表于 2012-1-6 09:08:49

本帖最后由 byghbcx 于 2012-1-6 14:50 编辑

highflybir 发表于 2012-1-6 08:51 http://bbs.mjtd.com/static/image/common/back.gif
其实对嵌套非等比例块还是支持的,只不过对两次以上的非等比变换不支持。

我原来也写过一个,方法原始,没用矩阵转换,但发现对属性文字不支持,近两天修改了一下,支持外部参照、嵌套非等比例块、属性文字。我还有个新想法就是能交互选择嵌套块中的图元、图块提出来。

xshrimp 发表于 2012-1-9 08:58:39

简单的块内实体复制
(defun c:bc (/ e el)
(while(and(setq e(nentselp "\n选择块内实体: "))
              (= (length e) 4)
       )
    (setq el (entget (car e)))
    (entmake el)
    (vla-transformby
      (vlax-ename->vla-object (entlast))
      (vlax-tmatrix (caddr e))
    )
)
(princ)
)

xshrimp 发表于 2012-1-9 09:08:02

再来个稍微复制点的.
;xshrimp 2009.3.13
(defun c:nn ( / acaddocument acadobject blockobj blockrefobj i mspace n nent obj objent)
(VL-LOAD-COM)
(defun make*ublock(obj / blockobj)
(setq blockObj (vla-add (vla-get-Blocks AcadDocument) (vlax-3d-point (list 0 0 0))"*U" ))   
(vla-CopyObjects AcadDocument
    (vlax-safearray-fill
      (vlax-make-safearray vlax-vbObject (cons 0 0) )
      (list obj)   
    )
   blockObj
)   
(vla-delete obj)
(vla-get-nameblockObj)
)
(setq AcadObject (vlax-get-acad-object)
      AcadDocument (vla-get-ActiveDocument Acadobject)
      mSpace (vla-get-ModelSpace Acaddocument)
)
(if (= (length (setq nent (nentsel))) 4)
(progn
(entmake (entget (car nent)))
(setq objent (vlax-ename->vla-object (entlast))i 0)   
(foreach n (last nent)
(setq obj (vlax-ename->vla-object n))   
(setq blockRefObj
    ( vla-InsertBlock
      mSpace
      (vla-get-InsertionPoint obj)
      (make*ublockobjent )
      (vla-get-xScaleFactor   obj)
      (vla-get-yScaleFactor   obj)
      (vla-get-zScaleFactor   obj)
      (vla-get-Rotation       obj)
    )
)
(setq i (1+ i))
(if(> i 1)(command "_.explode" (entlast)))
(setq objent(vlax-ename->vla-object (entlast)))   
);end foreach
(command "_.explode" (entlast))
(sssetfirst nil (ssget "p"))
)
)
(prin1)
)

自贡黄明儒 发表于 2012-1-9 15:05:02

高飞鸟 发表于 2012-1-2 23:13 static/image/common/back.gif
下面的代码不知道可以吗:

我为了画中垂线,须求得块内曲线与曲线在交点处的交角,我发贴求助,没有人回答。原来这么复杂。现在有望解决了。不过,对于块的坐标变换,我仍不是很清楚。

teykmcqh 发表于 2012-1-22 02:59:39

提出一个改块名问题:图形中有相同名称的块,只想点选其中一个块,改变其块名,而不影响其它的原块名,谁提一下建议吧

teykmcqh 发表于 2012-1-22 03:07:20

真搞不懂,明明已经登录,可点击下载byghbcx的ncopy.lsp时,还是不断提示登录,无法下载啊!

goubeishu 发表于 2012-1-30 13:45:25

谢谢楼主分享!

eversky 发表于 2012-4-5 17:03:38

谢谢各位提供的插件!!

chleiwu 发表于 2013-4-12 19:21:16

希望高手们继续优化,搞出可框选的来
页: 1 [2] 3 4 5
查看完整版本: [风之影][讨论]块中图元原位复制