viking11 发表于 2011-7-5 08:34:33

回复 ljpnb 的帖子

ljpnb兄,试了你贴的LSP,选择图形后出现错误

ljpnb 发表于 2011-7-5 09:34:49

viking11 发表于 2011-7-5 08:34 static/image/common/back.gif
回复 ljpnb 的帖子

ljpnb兄,试了你贴的LSP,选择图形后出现错误

我这儿没出现错误啊?

viking11 发表于 2011-7-5 09:45:18

回复 ljpnb 的帖子

我选完图形后确定,出现如下提示
no function definition: XD_GETOBJECTBOUNDINGBOX
是不是 我CAD安装的问题

Andyhon 发表于 2011-7-5 09:47:38

viking11 发表于 2011-7-5 08:33 static/image/common/back.gif
回复 zhynt 的帖子

上传的图片可能只有我自己能看到,拉到附件里了,麻烦ZHYNT有时间给看看

应是单纯的关闭捕捉再绘制图形即可

ljpnb 发表于 2011-7-5 09:50:53

viking11 发表于 2011-7-5 09:45 static/image/common/back.gif
回复 ljpnb 的帖子

我选完图形后确定,出现如下提示


程序没有复制全吧,底下还有一段自定函数
;;;;子函数
(defun xd_getSSBoundingbox (ss / ssl i ptl)
(setq      ssl (sslength ss)
      i   -1
)
(repeat ssl
    (setq
      ptl (cons      (xd_getObjectboundingbox (ssname ss (setq i (1+ i))))
                ptl
          )
    )
)
(xd-points_box (apply 'append ptl))
)

zhynt 发表于 2011-7-5 10:40:49

本帖最后由 zhynt 于 2011-7-5 10:45 编辑

正如And兄所说的一样,是捕捉没有关造成的,只要将后面画图的部分改成:
(if (< (getvar "osmode") 16384)
    (setvar "osmode" (+ (getvar "osmode") 16384))   
)
(command "pline"pta ptd pt2 pt1"A" "ce" ptb pt6 "L" pt5 "A" "ce" ptc pt3 "L" pt4 "C")
(setvar "osmode" (- (getvar "osmode") 16384))
就行了。
楼上的xd_getObjectboundingbox 和XD-point_box函数没有提供。

viking11 发表于 2011-7-5 11:39:42

回复 zhynt 的帖子

问题解决
谢谢ZHYNT和各位热心帮助
页: 1 [2]
查看完整版本: 求助:LISP实现图示图形