找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1783|回复: 10

[求助] 请高手写一个测试出可进行填充的最小填充比例的插件

[复制链接]
发表于 2013-10-13 11:08:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 清风明月10 于 2013-10-13 11:10 编辑

请问,你们肯定也碰到过填充图案不成功的情况,即电脑提醒填充图案过密。请教你们是如何解决了?
解决方法也许可以是,以0.1 1 10 100 1000 100000这些填充比例去试填充,总有一个是成功的,但我不会在LISP写容错代码,所以写不出来
我最常碰到的是区域过大。请问如何解决?
也就是说,如何能快速确定那个最小的填充比例是可以填充 的

我设想是先有一个插件在一个几何级数序列中确定可以填充的比例
否则,我先用1作填充比例试一个,又用10试一下,又用100试一下,太麻烦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-13 11:30:35 来自手机 | 显示全部楼层
我理解填充都是一个矩形单元,单位大小在填充文件中可以查看,在不规则区域填充时所形成的填充单元数仍旧是不规则区域的BOX除以(填充定义单元大小x填充比例)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-13 17:46:16 | 显示全部楼层
用XDRX API,很容易了。

填充边界已知了,就能求出一个方向的长度L1

然后你算出你需要的,比如几分之几,就知道填充线间距(比例)了。

然后用  (xdrx_hatch_setscale ent) 设置下比例就行了。

点评

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

使用道具 举报

 楼主| 发表于 2013-10-13 18:02:38 | 显示全部楼层
newer 发表于 2013-10-13 17:46
用XDRX API,很容易了。

填充边界已知了,就能求出一个方向的长度L1

谢谢,你能写一下看看吗?

点评

下面这段代码,能让你的填充线间距为多段线图形最短边的1/5(不用考虑比例什么的了,考虑线间距更直观和好控制) [attachimg]5765[/attachimg]  详情 回复 发表于 2013-10-13 18:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-13 18:50:33 | 显示全部楼层
本帖最后由 newer 于 2013-10-13 18:53 编辑
清风明月10 发表于 2013-10-13 18:02
谢谢,你能写一下看看吗?

下面这段代码,能让你的填充线间距为多段线图形最短边的1/5(不用考虑比例什么的了,考虑线间距更直观和好控制)


QQ截图20131013185005.png


  1. (defun c:tt()
  2.    (if (setq e (car (xdrx_entsel "\n选取填充边界(封闭多段线)<退出>:" '((0 . "LWPOLYLINE")(-4 . "&=")(70 . 1)))))
  3.       (progn
  4.         (setq nPts (xdrx_getpropertyvalue e "Vertices") ;;封闭多段线顶点表
  5.               nPts (XD::Pnts:Close nPts) ;; 封闭
  6.               nPtsPair (XD::List:SnakePair nPts) ;;构造相邻顶点直线段表
  7.               minSeg (apply 'min (mapcar '(lambda(x)(distance (car x)(cadr x))) nPtsPair)) ;; 求出最短段的长度
  8.               spa (/ minSeg 5.0)
  9.         )
  10.         (setq e (xdrx_hatch_make e)) ;; 制作一个SOLID填充
  11.         (xdrx_hatch_setPattern e "ansi31")  ;;模式设为ansi31
  12.         (setq info (xdrx_hatch_info e)
  13.               oldscl (cadr (assoc "Scale" info))  ;;比例值
  14.               hLines (xdrx_hatch->lines e) ;;得到填充的线的坐标
  15.               hLines (car hLines)
  16.               dis (abs (apply 'xdrx_point_dist2line (cons (caar hlines)(cadr hlines)))) ;;两条填充线的间距
  17.               newscl (* oldscl (/ spa dis)) ;;根据上面设置的短边长度的1/5,算出新的比例
  18.         )
  19.         (xdrx_hatch_setScale e newscl)         ;;设置比例
  20.       )
  21.    )
  22.    (princ)
  23. )

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

使用道具 举报

 楼主| 发表于 2013-10-13 20:39:05 | 显示全部楼层
不行,没有普遍适用性,因为填充的边界不是只有封闭多义线

点评

参照这个思路可以试试VBA方法  详情 回复 发表于 2013-10-13 22:21
只是给你一个演示而已,自己修改吧。上面的内容精华不在于是不是多段线,而是找到合适的间距。  详情 回复 发表于 2013-10-13 21:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-13 21:22:56 | 显示全部楼层
清风明月10 发表于 2013-10-13 20:39
不行,没有普遍适用性,因为填充的边界不是只有封闭多义线

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-10-13 22:21:13 来自手机 | 显示全部楼层
清风明月10 发表于 2013-10-13 20:39
不行,没有普遍适用性,因为填充的边界不是只有封闭多义线

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

使用道具 举报

 楼主| 发表于 2013-10-13 23:40:24 | 显示全部楼层
[sell=10]
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:CJ001958求取填充图案最小可成立的填充比例COMMAND法.rar 
下载次数:4  文件大小:777 Bytes 
下载权限: 不限 以上  [免费赚D豆]

[/sell]自己解决了

点评

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

使用道具 举报

已领礼包: 918个

财富等级: 财运亨通

发表于 2013-10-23 21:21:29 | 显示全部楼层
清风明月10 发表于 2013-10-13 23:40
**** 本内容需购买可见 ****自己解决了

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-10-23 21:39:38 | 显示全部楼层
固执己见
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 12:13 , Processed in 0.366761 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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