sadhu 发表于 2022-7-6 06:58:43

可以添加一行t吗

我使用lisp通过选择图形上的对象来生成块。然后添加属性和边界框以完成块。
 
现在,我需要向块中添加一条线(通过lisp),该线可以在一端拉伸,在另一端旋转-很像动态块或引线。但是,该线必须是块的一部分。
 
我的最终用途是通过lisp引用这些块的插入点来测量这些块(大量)之间的距离。不幸的是,插入点并不是我想要的位置。因为我不能在不移动整个块的情况下移动插入点,所以我希望在块上添加一条可拉伸的线,并使用这条线末端的坐标作为测量点。
 
 
这可以通过lisp实现吗?有人能告诉我要调查什么吗?感谢所有帮助。
 
下面是我用来制作块和添加属性的代码的一部分:
(setq Blk        (vlax-invoke
(vla-get-Blocks *doc)
'Add
(list pt1x pt1y 0.) ; insertion point
"*U" ; block name))

 

(vlax-invoke
blk
'AddAttribute
thgt2
acAttributeModePreset
"box_type"
(list ( + (car Ma ) (/ thgt2 2)); x-axis                        ;(list (/ (+ (car Mi) (car Ma)) 2.)
      (- (cadr Ma) thgt2 0.015); y-axis
      0.)
"box_type"
box_type ; tag value
   )

Dadgad 发表于 2022-7-6 07:27:53

也许李的Lisp程序可能会有所帮助。
 
http://www.lee-mac.com/changeblockinsertion.html
 
它将使您能够在不移动块的情况下重新定义块插入点。
 
李非常慷慨地在他的优秀网站上提供了许多构思良好的口吃,
它们很值得一看。
谢谢李!

sadhu 发表于 2022-7-6 07:54:39

我查看了李的changeblockinsertion-lisp。它工作得很好,但不适合我的情况。在我的例子中,我将插入点移到块外,因此需要添加这条线。changeblockinsertion。lsp移动插入点,但我需要使其在图形上可见。
 
 
 
希望收到其他建议。

sadhu 发表于 2022-7-6 08:05:17

http://www.cadtutor.net/forum/showthread.php?62218-如何用Lisp创建动态块
 
这是决赛吗?
页: [1]
查看完整版本: 可以添加一行t吗