找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3067|回复: 43

[求助] 请帮忙改改程序.

[复制链接]

已领礼包: 60个

财富等级: 招财进宝

发表于 2014-11-11 15:01:34 | 显示全部楼层 |阅读模式

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

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

×
现在下面程序必须【2】层里面有闭合线才能执行。
请高人帮忙改改,【2】层里面有闭合线就打散,如果【2】层里面没有闭合线也正常执行,
  1. (defun c:ak (/ sd1 ab bb cc ss1 la)
  2.   (setvar "cmdecho" 0)
  3.   (setvar "OSMODE" 0)
  4.   (command "_dimzin" "0")
  5.   (command "layer" "make" "s1" "")
  6.   (command "UNITS" "" "2" "" "" "" "N")
  7.   ;----打散2层----
  8. (setq ss(ssget "x" '((0 . "LWPOLYLINE")(8 . "2"))))
  9. (repeat (sslength ss)
  10.     (command "explode" ss))
  11.   
  12.   (setq obj1 (entsel "<第2层>:")
  13.   (if (= obj1 nil)
  14.     (setq la "2")
  15.     (setq la (cdr (assoc 8 (entget (car obj1)))))
  16.   )
  17.   
  18.   (setq sd1 (ssget "X" (list (cons 8 la))))
  19.   (while (/= sd1 nil)
  20.     (progn
  21.       (setq ab (ssname sd1 0))
  22.       (setq bb (entget ab))
  23.       (setq cc (cdr (assoc 10 bb)))
  24.       (command "pedit" ab "" "J" "ALL" "" "")
  25.       (setq ss1 (ssget "x" (list (cons 0 "*POLYLINE") (cons 8 la))))
  26.       (command "chprop" "p" "" "la" "s1" "")
  27.       (command ".explode" ss1)
  28.       (fkk "PN1" "PN2" 2 1 0)
  29.       (setq sd1 (ssget "X" (list (cons 8 la))))
  30.     )
  31.   )
  32.   (setq sd1 (ssget "X" (list (cons 8 "s1"))))
  33.   (if (/= sd1 nil)
  34.     (command "chprop" "p" "" "la" la "")
  35.   )
  36.   (command ".regen")
  37.   (princ)
  38. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-11 15:32:44 | 显示全部楼层
有闭合线打散,没有也正常执行,执行什么?

点评

意思就是,如果第2层有闭合线就打散,如果第2层没有闭合线就跳过。因为程序后面有闭合线的话就会出错。  详情 回复 发表于 2014-11-11 15:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-11-11 15:41:08 | 显示全部楼层
newer 发表于 2014-11-11 15:32
有闭合线打散,没有也正常执行,执行什么?

意思就是,如果第2层有闭合线就打散,如果第2层没有闭合线就跳过。因为程序后面有闭合线的话就会出错。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-11 16:21:06 | 显示全部楼层
abc498091367 发表于 2014-11-11 15:41
意思就是,如果第2层有闭合线就打散,如果第2层没有闭合线就跳过。因为程序后面有闭合线的话就会出错。

你说说这个程序什么作用,步骤如何

点评

这个是统计第2层里面所有举行的长和宽得到数据,所有如果是闭合线就统计不了!  详情 回复 发表于 2014-11-11 16:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-11-11 16:48:08 | 显示全部楼层
st788796 发表于 2014-11-11 16:21
你说说这个程序什么作用,步骤如何

这个是统计第2层里面所有举行的长和宽得到数据,所有如果是闭合线就统计不了!

点评

直接判断 “矩形” 不行?  详情 回复 发表于 2014-11-11 17:08
矩形就应该是闭合线,如果是闭合的矩形,你不统计,数据不就不准确了吗?  详情 回复 发表于 2014-11-11 16:49
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-11 16:49:45 | 显示全部楼层
abc498091367 发表于 2014-11-11 16:48
这个是统计第2层里面所有举行的长和宽得到数据,所有如果是闭合线就统计不了!

矩形就应该是闭合线,如果是闭合的矩形,你不统计,数据不就不准确了吗?

点评

这个是整个程序,可以新建几个举行测试,如果不打散就出错  详情 回复 发表于 2014-11-11 17:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-11-11 17:08:39 | 显示全部楼层
newer 发表于 2014-11-11 16:49
矩形就应该是闭合线,如果是闭合的矩形,你不统计,数据不就不准确了吗?

请点击此处下载

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

您的用户组是:游客

文件名称:wr.LSP 
下载次数:2  文件大小:13.2 KB 
下载权限: 不限 以上  [免费赚D豆]



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

使用道具 举报

发表于 2014-11-11 17:08:51 | 显示全部楼层
abc498091367 发表于 2014-11-11 16:48
这个是统计第2层里面所有举行的长和宽得到数据,所有如果是闭合线就统计不了!



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

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

发表于 2014-11-12 08:26:11 | 显示全部楼层
判断是否为闭合线就行了,不闭合的多段线也不会被打断

点评

麻烦守仁格竹GM帮忙修改下,这是整个程序!问题点我在里面写了!  详情 回复 发表于 2014-11-12 10:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-11-12 10:02:30 | 显示全部楼层
守仁格竹GM 发表于 2014-11-12 08:26
判断是否为闭合线就行了,不闭合的多段线也不会被打断

请点击此处下载

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

您的用户组是:游客

文件名称:wr.LSP 
下载次数:3  文件大小:13.32 KB 
下载权限: 不限 以上  [免费赚D豆]



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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-12 10:40:35 | 显示全部楼层
abc498091367 发表于 2014-11-12 10:02
麻烦守仁格竹GM帮忙修改下,这是整个程序!问题点我在里面写了!

你还不如传个图片说明程序是干什么的清楚

点评

[attachimg]11238[/attachimg] 程序是统计长宽的数据出来,线长和线宽,所有如果是闭合线就统计不了!  详情 回复 发表于 2014-11-12 10:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-11-12 10:44:11 | 显示全部楼层
st788796 发表于 2014-11-12 10:40
你还不如传个图片说明程序是干什么的清楚

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-12 11:12:43 | 显示全部楼层
abc498091367 发表于 2014-11-12 10:44
程序是统计长宽的数据出来,线长和线宽,所有如果是闭合线就统计不了!

不就是标长宽吗,以下程序仅标注闭合 Pline
  1. (defun c:XDTB_DimRectang (/ ss)
  2.   (if (setq ss (ssget '((0 . "*Polyline") (-4 . "&=") (70 . 1))))
  3.     (mapcar '(lambda (x / ptl pc txt)
  4.                (if (setq ptl (xd::polyline:isrectang x))
  5.                  (progn
  6.                    (setq pc (xdrx_line_midp (car ptl) (caddr ptl)))
  7.                    (setq txt
  8.                           (xdrx_text_make
  9.                             pc
  10.                             (strcat
  11.                               (rtos (distance (car ptl) (cadr ptl)) 2 2)
  12.                               "*"
  13.                               (rtos (distance (car ptl) (last ptl)) 2 2)
  14.                             )
  15.                             (getvar "textsize")
  16.                             (angle (car ptl) (cadr ptl))
  17.                           )
  18.                    )
  19.                    (xdrx_text_setvermode txt 2)
  20.                    (xdrx_text_sethozmode txt 1)
  21.                  )
  22.                )
  23.              )
  24.             (xdrx_pickset->ents ss)
  25.     )
  26.   )
  27.   (princ)
  28. )
  29. (defun XD::Polyline:IsRectang (e / pts p1 p2 p3 p4)
  30.   (if (and (= (xdrx_getpropertyvalue e "IsA") "AcDbPolyline")
  31.            (setq pts (xdrx_geom_searchoutline e))
  32.            (= (length pts) 5)
  33.            (mapcar 'set '(p1 p2 p3 p4) pts)
  34.            (equal (distance p1 p3) (distance p2 p4) 1e-8)
  35.            (equal (xdrx_line_midp p1 p3) (xdrx_line_midp p2 p4) 1e-8)
  36.       )
  37.     (list p1 p2 p3 p4)
  38.   )
  39. )

点评

不是,这个是先统计出宽长,在根据这个宽长统计到旁边的表格!另外还有个命令是输出表格 [attachimg]11239[/attachimg]  详情 回复 发表于 2014-11-12 11:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-11-12 11:23:33 | 显示全部楼层
st788796 发表于 2014-11-12 11:12
不就是标长宽吗,以下程序仅标注闭合 Pline

不是,这个是先统计出宽长,在根据这个宽长统计到旁边的表格!另外还有个命令是输出表格

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-12 11:31:00 | 显示全部楼层
abc498091367 发表于 2014-11-12 11:23
不是,这个是先统计出宽长,在根据这个宽长统计到旁边的表格!另外还有个命令是输出表格

看不清,传测试图,正好在修改 Table 函数

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 16:30 , Processed in 0.439190 second(s), 75 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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