求助大佬
新建块生成*U块名字的lisp程序,因为另外一个程序只识别*U+数字的块
freedom_ice 发表于 2023-8-4 12:16
选择集生成匿名块
大哥帮我弄个可以运行的函数我不会用啊 找个代码改一下块名就行 搜索【匿名块】,很多工具 kozmosovia 发表于 2023-8-4 11:03
找个代码改一下块名就行
需要新建块 选择集生成匿名块
( 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 );插入图块
) 留个脚印
直接可以用的
787116960 发表于 2023-8-4 12:08
需要新建块
先建个有名的,再多一步改一下名字不就是了。直接新建匿名的,代码还复杂。 kozmosovia 发表于 2023-8-4 15:30
先建个有名的,再多一步改一下名字不就是了。直接新建匿名的,代码还复杂。
http://bbs.mjtd.com/thread-188302-1-1.html?_dsign=62803cfc帮我看看这个修改下插入点
页:
[1]