找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: XDSoft

[测试]:关于XDRX_API的BUG,请到此贴下发表

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-7-28 23:47:24 | 显示全部楼层
XDSoft 发表于 2018-7-28 21:09
请测试下 2018.07.28日更新的API。

(xdrx_mpolygon->region(ssget)) 现象依然!

点评

什么现象? [attachimg]79157[/attachimg]  详情 回复 发表于 2018-7-29 00:06
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-7-29 00:06:53 | 显示全部楼层
taner 发表于 2018-7-28 23:47
(xdrx_mpolygon->region(ssget)) 现象依然!

什么现象?

搜狗截图20180729000631.png

点评

07版与18版测试都这样,今晚刚下的API  详情 回复 发表于 2018-7-29 02:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-7-29 02:22:48 | 显示全部楼层
本帖最后由 taner 于 2018-7-29 20:05 编辑

;http://bbs.xdcad.net/thread-716801-1-1.html
;http://bbs.xdcad.net/thread-715868-1-1.html
;缘起上面两个主题.
;一直想学习API解决一些工作中的实际问题,但总是有些问题!详细请看附件(应该是API方面的一些BUG)

(defun test1 (ss dst / 1ste_of_mps_new_lst but_1ste_of_mps_new_lst
                 but_outloop_lst ent ents_offset ge index layer
                 length_outloop_lst lst mps mps_new mps_new_lst mps1_new
                 outloop_lst topo x y
             )
  (xdrx_setmark)
  (setq mps (xdrx_mpolygon_make ss))
  (setq topo (xdrx_get_topology mps t))
  (setq lst (xd::list:flat-point topo))
  (setq outloop_lst (vl-remove-if-not (function (lambda (x)
                                                  (= 0 (car x))
                                                )
                                      ) lst
                    )
  )
  (setq length_outloop_lst (length outloop_lst))
  (setq but_outloop_lst (vl-remove-if (function (lambda (x)
                                                  (= 0 (car x))
                                                )
                                      ) lst
                        )
  )
  (if but_outloop_lst
    (setq but_outloop_lst (vl-sort but_outloop_lst (function (lambda (x y)
                                                               (< (car x)
                                                                  (car y)
                                                               )
                                                             )
                                                   )
                          )
    )
  )
  (cond
    (but_outloop_lst (cond
                       ((= length_outloop_lst 1)
                         (xdrx_setvar "retentlist" 0)
                         (setq ge (xdrx_getpropertyvalue mps "getloopat" (cadar outloop_lst))
                               ent (xdge::entity:make ge)
                               ents_offset (xdrx_curve_getoffsetcurves ent dst)
                               mps_new (xdrx_mpolygon_make ents_offset)
                         )
                         (xdrx_entity_delete ent)
                         (xdrx_entity_delete ents_offset)
                         (mapcar
                           (function (lambda (x)
                                       (setq layer (car x)
                                             index (cadr x)
                                             ge (xdrx_getpropertyvalue mps "getloopat"
                                                                       index
                                                )
                                             ent (xdge::entity:make ge)
                                       )
                                       (if (= (rem layer 2) 0)
                                         (progn
                                           (setq ents_offset
                                                 (xdrx_curve_getoffsetcurves ent
                                                                             dst
                                                 )
                                                 mps1_new
                                                 (xdrx_mpolygon_make ents_offset)
                                           )
                                           (xdrx-get-union mps_new mps1_new)
                                         )
                                         (progn
                                           (setq ents_offset
                                                 (xdrx_curve_getoffsetcurves ent
                                                                             (- dst)
                                                 )
                                                 mps1_new
                                                 (xdrx_mpolygon_make ents_offset)
                                           )
                                           (xdrx-get-subtract mps_new mps1_new)
                                         )
                                       )
                                       (xdrx_entity_delete ent)
                                       (xdrx_entity_delete ents_offset)
                                     )
                           )
                           but_outloop_lst
                         )
                       )
                       (t
                         (xdrx_setvar "retentlist" 0)
                         (setq mps_new_lst (mapcar
                                             (function (lambda (x)
                                                         (setq ge
                                                               (xdrx_getpropertyvalue mps "getloopat"
                                                                                      (cadr x)
                                                               )
                                                               ent
                                                               (xdge::entity:make ge)
                                                               ents_offset
                                                               (xdrx_curve_getoffsetcurves ent dst)
                                                               mps_new
                                                               (xdrx_mpolygon_make ents_offset)
                                                         )
                                                         (xdrx_entity_delete ent)
                                                         (xdrx_entity_delete ents_offset)
                                                         mps_new
                                                       )
                                             )
                                             outloop_lst
                                           )
                         )
                         (setq 1ste_of_mps_new_lst (car mps_new_lst)
                               but_1ste_of_mps_new_lst (cdr mps_new_lst)
                         )
                         (mapcar
                           (function (lambda (x)
                                       (xdrx-get-union 1ste_of_mps_new_lst x)
                                     )
                           )
                           but_1ste_of_mps_new_lst
                         )
                         (mapcar
                           (function (lambda (x)
                                       (setq layer (car x)
                                             index (cadr x)
                                             ge (xdrx_getpropertyvalue mps "getloopat"
                                                                       index
                                                )
                                             ent (xdge::entity:make ge)
                                       )
                                       (if (= (rem layer 2) 0)
                                         (progn
                                           (setq ents_offset
                                                 (xdrx_curve_getoffsetcurves ent
                                                                             dst
                                                 )
                                                 mps1_new
                                                 (xdrx_mpolygon_make ents_offset)
                                           )
                                           (xdrx-get-union 1ste_of_mps_new_lst
                                                           mps1_new
                                           )
                                         )
                                         (progn
                                           (setq ents_offset
                                                 (xdrx_curve_getoffsetcurves ent
                                                                             (- dst)
                                                 )
                                                 mps1_new
                                                 (xdrx_mpolygon_make ents_offset)
                                           )
                                           (xdrx-get-subtract 1ste_of_mps_new_lst
                                                              mps1_new
                                           )
                                         )
                                       )
                                       (xdrx_entity_delete ent)
                                       (xdrx_entity_delete ents_offset)
                                     )
                           )
                           but_outloop_lst
                         )
                       )
                     )
    )
    (t
      (cond
        ((= length_outloop_lst 1)
          (xdrx_setvar "retentlist" 0)
          (setq ge (xdrx_getpropertyvalue mps "getloopat" 0)
                ent (xdge::entity:make ge)
                ents_offset (xdrx_curve_getoffsetcurves ent dst)
                mps_new (xdrx_mpolygon_make ents_offset)
          )
          (xdrx_entity_delete ent)
          (xdrx_entity_delete ents_offset)
        )
        (t
          (xdrx_setvar "retentlist" 0)
          (setq mps_new_lst (mapcar
                              (function (lambda (x)
                                          (setq ge
                                                (xdrx_getpropertyvalue mps "getloopat"
                                                                       (cadr x)
                                                )
                                                ent (xdge::entity:make ge)
                                                ents_offset
                                                (xdrx_curve_getoffsetcurves ent
                                                                            dst
                                                )
                                                mps_new
                                                (xdrx_mpolygon_make ents_offset)
                                          )
                                          (xdrx_entity_delete ent)
                                          (xdrx_entity_delete ents_offset)
                                          mps_new
                                        )
                              )
                              outloop_lst
                            )
          )
          (setq 1ste_of_mps_new_lst (car mps_new_lst)
                but_1ste_of_mps_new_lst (cdr mps_new_lst)
          )
          (mapcar
            (function (lambda (x)
                        (xdrx-get-union 1ste_of_mps_new_lst x)
                      )
            )
            but_1ste_of_mps_new_lst
          )
        )
      )
    )
  )
  (xdge::free ge)
  (xdrx_entity_delete mps)
  (xdrx_getss)
)

test3.jpg

TEST3.zip

107.53 KB, 下载次数: 0, 下载积分: D豆 -1 , 活跃度 1

点评

仔细的检查下那些曲线,试着用CAD正常的填充命令填充他们,肯定有的曲线有问题。  详情 回复 发表于 2018-7-29 02:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-7-29 02:37:16 | 显示全部楼层

07版与18版测试都这样,今晚刚下的API
TEST4.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-7-29 02:43:20 | 显示全部楼层
taner 发表于 2018-7-29 02:22
;http://bbs.xdcad.net/thread-716801-1-1.html
;http://bbs.xdcad.net/thread-715868-1-1.html
;缘起上 ...

仔细的检查下那些曲线,试着用CAD正常的填充命令填充他们,肯定有的曲线有问题。

点评

再次将曲线消重(没发现重线),然后用CAD的原始命令填充,没问题.按上面图示重复,问题依然!  详情 回复 发表于 2018-7-29 10:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-7-29 10:44:51 | 显示全部楼层
newer 发表于 2018-7-29 02:43
仔细的检查下那些曲线,试着用CAD正常的填充命令填充他们,肯定有的曲线有问题。

再次将曲线消重(没发现重线),然后用CAD的原始命令填充,没问题.按上面图示重复,问题依然!

点评

另外,根据你的图,设置好函数(xdrx_document_setprec .....)的精度。  详情 回复 发表于 2018-7-29 14:53
能连接的PLINE的,先连接成PLINE  详情 回复 发表于 2018-7-29 14:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-7-29 14:36:55 | 显示全部楼层
taner 发表于 2018-7-29 10:44
再次将曲线消重(没发现重线),然后用CAD的原始命令填充,没问题.按上面图示重复,问题依然!

能连接的PLINE的,先连接成PLINE
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-7-29 14:53:08 | 显示全部楼层
taner 发表于 2018-7-29 10:44
再次将曲线消重(没发现重线),然后用CAD的原始命令填充,没问题.按上面图示重复,问题依然!

另外,根据你的图,设置好函数(xdrx_document_setprec .....)的精度。

点评

在代码开头加入精度:(xdrx_document_setPrec 0.001 0.001)后解决了问题.但是换一个图后死机.图中只有PL和CIRCLE.  详情 回复 发表于 2018-7-29 17:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-7-29 17:31:05 | 显示全部楼层
本帖最后由 taner 于 2018-7-29 20:11 编辑
newer 发表于 2018-7-29 14:53
另外,根据你的图,设置好函数(xdrx_document_setprec .....)的精度。

在代码开头加入精度:(xdrx_document_setPrec 0.001   0.001)后解决了问题.但是换一个图后死机.图中只有PL和CIRCLE.(defun c:tt ()
  (test1 (ssget) 0.08)
)

另:TEST1代码已理新,修正一处错误.




test4.jpg
test6.gif

test4.zip

24.12 KB, 下载次数: 2, 下载积分: D豆 -1 , 活跃度 1

test6.zip

18.37 KB, 下载次数: 1, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-7-29 20:41:47 | 显示全部楼层
taner 发表于 2018-7-29 17:31
在代码开头加入精度:(xdrx_document_setPrec 0.001   0.001)后解决了问题.但是换一个图后死机.图中只有PL ...

你测试出来是哪个函数报的错吗?

点评

没有提示哪个函数错误,你可以将上面的代码与附件TEST6下载事来测试一下看看  详情 回复 发表于 2018-7-29 21:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-7-29 21:15:14 | 显示全部楼层
Lisphk 发表于 2018-7-29 20:41
你测试出来是哪个函数报的错吗?

没有提示哪个函数错误,你可以将上面的代码与附件TEST6下载事来测试一下看看

点评

可以隔开一段设下打印函数,缩小到查出是哪个函数,自己写的代码,自己熟悉些  详情 回复 发表于 2018-7-29 21:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-7-29 21:31:48 | 显示全部楼层
taner 发表于 2018-7-29 21:15
没有提示哪个函数错误,你可以将上面的代码与附件TEST6下载事来测试一下看看

可以隔开一段设下打印函数,缩小到查出是哪个函数,自己写的代码,自己熟悉些
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-7-30 10:47:44 | 显示全部楼层
本帖最后由 taner 于 2018-7-30 17:31 编辑

(xdrx_mpolygon_make(ssget))出现图示现象!而且出问题后,CAD还不能存盘!越来越糊涂了
(xdrx_hatch_make(ssget))也会出现同样的问题.用原始指令HATCH是OK的
test8.gif

test8.zip

16.28 KB, 下载次数: 2, 下载积分: D豆 -1 , 活跃度 1

点评

[attachimg]79303[/attachimg]  详情 回复 发表于 2018-8-2 16:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-8-2 13:46:36 | 显示全部楼层
本帖最后由 taner 于 2018-8-2 14:07 编辑

随便新建一个图档.
t3st9.gif
test10.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-8-2 14:00:02 | 显示全部楼层
taner 发表于 2018-8-2 13:46
随便新建一个图档.

你一定用的不是最新的API

下面是我做你上面的工作,2012下面

面域-拓扑问题.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-29 06:42 , Processed in 0.344119 second(s), 73 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表