787116960 发表于 2023-8-4 10:11:46

求助大佬




新建块生成*U块名字的lisp程序,因为另外一个程序只识别*U+数字的块   

787116960 发表于 2023-8-4 15:06:41

freedom_ice 发表于 2023-8-4 12:16
选择集生成匿名块

大哥帮我弄个可以运行的函数我不会用啊

kozmosovia 发表于 2023-8-4 11:03:57

找个代码改一下块名就行

lxl217114 发表于 2023-8-4 11:05:15

搜索【匿名块】,很多工具

787116960 发表于 2023-8-4 12:08:14

kozmosovia 发表于 2023-8-4 11:03
找个代码改一下块名就行

需要新建块

freedom_ice 发表于 2023-8-4 12:16:26

选择集生成匿名块
( defun ssNblock ( ss insertpt / InsPt number blocklist blk index SelectionSetObjs )
          ( vl-load-com )
        (setq AcadObject   ( vlax-get-acad-object )
              AcadDocument ( vla-get-ActiveDocument AcadObject )
              ModelSpace   ( vla-get-ModelSpace AcadDocument )
        )       
        ( setq InsPt ( vlax-3d-point insertpt ) )            ;转化为ActiveX的点
( setq number ( sslength ss ) )
( setq blocklist ( vla-get-blocks AcadDocument ) )
( setq blk ( vla-add blocklist InsPt "*U" ) )          ;定义匿名图块
( setq SelectionSetObjs ( vlax-make-safearray vlax-vbobject ( cons 0 ( - number 1 ) ) ) )
( defun item ( ss index )
    ( vlax-ename->vla-object ( ssname ss index ) )
   )
( setq index 0 )
( repeat number
    ( vlax-safearray-put-element SelectionSetObjs index ( item ss index ) )
    ( setq index ( 1+ index ) )
   )                                                ;把选择集的物体加入到匿名图块
( vla-copyobjects AcadDocument SelectionSetObjs blk );采用copyobjects方式
        (setq ename (vlax-vla-object->ename blk) )
        (princ (entget ename))
( vla-insertblock ModelSpace InsPt ( vlax-get-property blk 'name ) 1 1 1 0 );插入图块
)

jun353835273 发表于 2023-8-4 12:54:54

留个脚印


直接可以用的

kozmosovia 发表于 2023-8-4 15:30:20

787116960 发表于 2023-8-4 12:08
需要新建块

先建个有名的,再多一步改一下名字不就是了。直接新建匿名的,代码还复杂。

787116960 发表于 2023-8-4 15:33:39

kozmosovia 发表于 2023-8-4 15:30
先建个有名的,再多一步改一下名字不就是了。直接新建匿名的,代码还复杂。

http://bbs.mjtd.com/thread-188302-1-1.html?_dsign=62803cfc帮我看看这个修改下插入点
页: [1]
查看完整版本: 求助大佬