明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4925|回复: 10

[LISP群(1)] 2013-06-06 明经 AutoLISP 编程(102918348) 群聊记录:哪位大侠能帮我编写一个批量偏移的程序,支持各个图形形状的“外扩内缩”???

 关闭 [复制链接]
发表于 2013-6-6 09:45:27 | 显示全部楼层 |阅读模式
一品缘 09:45:27
哪位大侠能帮我编写一个批量偏移的程序,支持各个图形形状的“外扩内缩”???
比如:[qqimg]oldimg/{DA6B4A67-A417-5C15-B3D5-13A38592C056}.jpg[/qqimg]
[236004]张牙舞爪 09:45:57
我以前用VB写了一个
一品缘 09:46:12
怎么棒????
能用吗??
[236004]张牙舞爪 09:46:30
晚上找下,
一品缘 09:46:32
[qqimg]oldimg/{5643FF8E-0641-E9AB-82F5-A7CB9ED142C5}.jpg[/qqimg]
[236004]张牙舞爪 09:46:34
能用
[pzweng]路人 09:47:02
批量偏移?
一品缘 09:47:16
就好像这个一样,白色线条往外扩,绿色线条往内缩
是的
[pzweng]路人 09:47:45
一大把吧
我也写过一个简单的
一品缘 09:48:20
能支持外扩内缩吗??
[pzweng]路人 09:49:49
批量的
一品缘 09:50:01
是的,批量的
[pzweng]路人 09:50:44
就是白色与绿色区分嘛
一品缘 09:50:47
只要能“支持外扩内缩”就更好了
[pzweng]路人 09:50:56
分两次偏移就可以了
一品缘 09:50:57
就是有孤岛
呵呵,我就想一步到位
呵呵
[pzweng]路人 09:52:04
那要订做了
一品缘 09:52:26
哦哦哦,谢谢路人兄弟!
[雨的节奏][雨的节奏] 09:55:23
[qqimg]oldimg/{43F78691-C43F-4CC5-4AB6-6CCA1EBF18B4}.GIF[/qqimg]
[pzweng]路人 09:55:48
[qqimg]oldimg/{70464E7F-F637-3861-393A-CCCF71C66874}.gif[/qqimg]
一品缘 09:56:35
支持外扩内缩吗???
[pzweng]路人 09:58:15
不支持
一品缘 10:00:17
哦哦哦
[328302216][328302216]小莫 10:02:04
[qqimg]oldimg/{CBC4EE81-FC39-7676-65B1-0785D46E460B}.jpg[/qqimg]
一品缘 10:02:30
就是孤岛检测一样,当图形有孤岛,那就外面往外扩大,内部往里面缩小。
[pzweng]路人 10:03:01
那是样条
那个图没内外之分了
[328302216][328302216]小莫 10:03:45
我以为是我眼花了  
一品缘 10:03:57
哈哈哈
 楼主| 发表于 2013-6-6 10:16:32 | 显示全部楼层
[kwok][kwok]巭隼 10:16:32
外扩内缩不是双偏?
[flytoday]过^-^客 10:18:55
[雨的节奏][雨的节奏] 10:19:14
天正建筑竟然还带了源码
我刚才不小心把天正建筑安装在桌面了
竟然看一个lisp的文件夹、里面全是源码
[tiyi8888]永远痛 10:19:55
是吗
发过来看
没有加密吗
[雨的节奏][雨的节奏] 10:20:17
没加密
全是源码
[雨的节奏][雨的节奏] 10:21:45
[328302216][328302216]小莫 10:22:48
[qqimg]oldimg/{DDCE6A52-9500-CBE3-062D-42207FC5B739}.jpg[/qqimg]尺寸标注的文字放不下自动弹起来是系统变量控制的吗?能否设置多少就跳起来?
[雨的节奏][雨的节奏] 10:23:31
dimstyle里面好像可以设置
[328302216][328302216]小莫 10:26:23
比如我要设置小于5的都跳起来怎么设?
[328302216][328302216]小莫 10:29:19
好像只能自动判断能不能放下文字,然后自动跳起来,不能自行设置小于多少就跳起来
[qqimg]oldimg/{5F796C17-2F8D-8E5F-3434-BA57DBE67E78}.jpg[/qqimg]
[VBALISPER]恐龙 10:34:35
可能是伪源码哟
[pzweng]路人 10:35:07
就是加载之类的
[328302216][328302216]小莫 10:35:11
算了  看来还是不折腾这个了
[pzweng]路人 10:35:18
真是太惊小怪
人家绝不可能用lisp写的
只是用lisp来加载程序
[236004]张牙舞爪 10:42:05
CUI菜单文件,可以转 MNS 菜单文件吗?
[linshiyin2]大地 10:42:36
[236004]张牙舞爪 10:43:03
好晕的,我刚把 MNS 菜单文件删了
[蔡__洛]不快乐 10:43:10
都是伪源码
(_@ld "wzqlib")
(_@ld "clqlib")
[linshiyin2]大地 10:43:29
恭喜你,凭记忆再找回来了
[pzweng]路人 10:43:34
张工你乍这么逗呢
[蔡__洛]不快乐 10:43:37
哈哈
[236004]张牙舞爪 10:43:46
删错了的
[pzweng]路人 10:43:48
你把AUTOCAD?都改成了小张工具
[236004]张牙舞爪 10:43:52
好无语呀,
今天改回来了,
[VBALISPER]恐龙 10:44:24
有MNU就行
[236004]张牙舞爪 10:44:35
没有了,
一个都没有了,
[qqimg]oldimg/{5E0E5772-36F1-00D2-5BF5-CDEDE3619108}.jpg[/qqimg]
只有06的CUI了,
[mccad][MCCAD] 10:45:13
转成永久保存
[236004]张牙舞爪 10:45:18
那位大侠告诉我CUI怎么转MENU
[linshiyin2]大地 10:45:22
[qqimg]oldimg/{C682FCC4-9522-7AD4-6420-0A078D3458F6}.jpg[/qqimg]
[linshiyin2]大地 10:46:14
回收站有没有?mnu看看有没有,这个是最基础的
[236004]张牙舞爪 10:46:21
没有了
卸载删除的
秋枫软件卸载删除的
[linshiyin2]大地 10:47:13
既然用秋枫就有安装文件啊
[236004]张牙舞爪 10:47:57
这个MNS是最新的,我把MNS转成CUI之后,就卸载了,
好晕的,
[1993063][1993063] 10:49:29
cad重新安装啥问题都没了
[pzweng]路人 10:49:46
叫别人复制一个给你
[linshiyin2]大地 10:50:03
以后用mun吧这个可以产生mns和cui,
[236004]张牙舞爪 10:50:27
是的
[linshiyin2]大地 10:52:06
如果重建困难大,还可以用找回删除的文件的软件找回,比较费劲前提是没有往那个地方写过东西
 楼主| 发表于 2013-6-6 11:16:24 | 显示全部楼层
[阿然][阿然] 11:16:24
[qqimg]oldimg/{BFF78362-A1D9-E23C-3961-A91190B3005A}.jpg[/qqimg]如果都是闭合的多义线就简单了
一品缘 11:18:11
是的
是闭合的多义线
[阿然][阿然] 11:21:17
按照闭合线面积排序,最大的就是最外面的,剩下的都是里面的
一品缘 11:22:40
高手啊!!!
[阿然][阿然] 11:22:42
offset内外各依次,按照offset之后获得的多义线的面积和原来多义线的面积的大小来确定是外扩还是内缩,然后删除
一品缘 11:22:46
说对啦
一品缘 11:23:22
高手啊!!!!我感叹啊
一品缘 11:23:52
就是能写出来吗???
[kwok][kwok]巭隼 11:26:36
闭合线内外偏,论坛有,看G版发过
[LISP]???IMKYUD 11:28:10
问一下大家1/4拱的画法?
[vormittag]桔子 11:29:01
坐标变换
[LISP]???IMKYUD 11:31:49
请教一下大家1/4拱的画法 
[阿然][阿然] 11:32:18
1/4拱只能拟合
一般画1/2拱,怎么会画1/4拱?
[vormittag]桔子 11:33:03
对称的。
[阿然][阿然] 11:33:39
悬链线拱的坐标计算资料很多的
[vormittag]桔子 11:34:12
拱有很多种,半圆、椭圆、抛物线,悬链线
[阿然][阿然] 11:34:13
桔子兄应该有现成的吧
[vormittag]桔子 11:34:21
都有。
 楼主| 发表于 2013-6-6 11:48:07 | 显示全部楼层
[kwok][kwok]巭隼 11:48:07
请问怎么取得弧的长度,下面怎么改
  (setq endPara (vlax-curve-getEndParam en)
 n 0)
  (repeat (fix endPara)
    (setq d (distance (vlax-curve-getPointAtParam en n) (vlax-curve-getPointAtParam en (setq n (1+ n)))))
上面只能求出2点距离,不是线实际长度,谢谢帮忙一下
这个问题搞了2天还是弄不出来,
[阿然][阿然] 11:49:36
(abs(-(vlax-curve-getdistatpoint en pt1)(vlax-curve-getdistatpoint en pt2)))
[pzweng]路人 11:50:33
(command "lengthen" en "")
    (setq en_len (getvar "perimeter"))
[阿然][阿然] 11:51:24
(abs(-(vlax-curve-getdistatpoint en (vlax-curve-getclosestpointto en pt1))(vlax-curve-getdistatpoint en (vlax-curve-getclosestpointto en pt2))))扩展一下
[kwok][kwok]巭隼 11:51:53
然兄,能不能在上面的码改一下,因为我不知pt1点,现在是点表,求里面各点之间的线长,点表不会弄
[夏生生][x_s_s_1]生无可恋 11:53:47
然后配合阿然兄的代码
[阿然][阿然] 11:53:53
只是弧的长度(vla-get-arclength (vlax-ename->vla-object en))
[偏爱云~小吴] 11:59:52
看着眼花,要不要用六层括号这么复杂
[kwok][kwok]巭隼 12:00:28
(setq Height (getreal " 输入高度:")
 jj (getreal " 输入间距:"))
  (princ " 选择多段线")
  (setq en (entsel))
  (setq p0 (cadr en)
 en (car en)
 )
  (setq la (cdr (assoc 8 (entget en))))
  (setvar "clayer" la)
  (setq pt (getpoint p0 " 标注位置:"))
  (setq endPara (vlax-curve-getEndParam en)
 n 0)
  (repeat (fix endPara)
    (setq d (distance (vlax-curve-getPointAtParam en n) (vlax-curve-getPointAtParam en (setq n (1+ n)))))
    (command "_.rectang" pt (strcat "@" (rtos d 2) "," (rtos Height 2)))
    (setq pt (polar pt 0 (+ d jj)))
    )
帮忙以这个改一下,
[328302216][328302216]小莫 12:00:28
[kwok][kwok]巭隼 12:01:39
可以求多段线每段线的长(弧长,)
上面那个只能求出2个点的长
[偏爱云~小吴] 12:02:38
改一改可以标注弧长
[236004]张牙舞爪 12:02:44
太历害了
[偏爱云~小吴] 12:03:41
什么原理没看明白
[kwok][kwok]巭隼 12:05:34
怎么用?lst是长还是表
[夏生生][x_s_s_1]生无可恋 12:05:37
直接写的,括号有误的话自己调调
lst是点表
[夏生生][x_s_s_1]生无可恋 12:06:51
先得到点表,然后将点表组成PT1 T2的表,再算长度
[kwok][kwok]巭隼 12:07:08
跟这个怎么结合?
 (setq Height (getreal " 输入高度:")
 jj (getreal " 输入间距:"))
  (princ " 选择多段线")
  (setq en (entsel))
  (setq p0 (cadr en)
 en (car en)
 )
  (setq la (cdr (assoc 8 (entget en))))
  (setvar "clayer" la)
  (setq pt (getpoint p0 " 标注位置:"))
  (setq endPara (vlax-curve-getEndParam en)
 n 0)
  (repeat (fix endPara)
    (setq d (distance (vlax-curve-getPointAtParam en n) (vlax-curve-getPointAtParam en (setq n (1+ n)))))
    (command "_.rectang" pt (strcat "@" (rtos d 2) "," (rtos Height 2)))
    (setq pt (polar pt 0 (+ d jj)))
    )
[偏爱云~小吴] 12:07:14
太厉害了
[kwok][kwok]巭隼 12:07:41
因为我想点线然成图片效果
[qqimg]oldimg/{6DDA1416-096E-0A87-48FD-92D5F4333F0E}.jpg[/qqimg]
[夏生生][x_s_s_1]生无可恋 12:08:05
没看懂
[夏生生][x_s_s_1]生无可恋 12:08:53
[qqimg]oldimg/{52623E57-8AF2-4508-C95A-D398DC298AAD}.jpg[/qqimg]
变为[qqimg]oldimg/{D82A4CB7-F426-5DF0-19F6-BBFD03EE4016}.jpg[/qqimg]
[kwok][kwok]巭隼 12:09:17
每段线成为一个矩形
[夏生生][x_s_s_1]生无可恋 12:09:45
矩形的边长是?
[kwok][kwok]巭隼 12:09:57
每段线的线长为矩形的宽,高直接输入的
[vormittag]桔子 12:10:16
多段线每段弧长用参数距离多好,点都不用求。
[夏生生][x_s_s_1]生无可恋 12:10:50
嗯,有理
前面的代码啰嗦了
[vormittag]桔子 12:12:23
参数都是整数。 直接mapcar 两个等差数列的参数表就行了。
[kwok][kwok]巭隼 12:14:43
帮我看看上面的码怎么用mapcar改可以求出的实际长,然后画成矩形,现在只能是2点的长,
[kwok][kwok]巭隼 12:16:40
水平有限,我现在只能vlax-curve-getdistatparam
求出知道2点的情况下的线长
对把多段线,求出每段线长,还是学不会
[夏生生][x_s_s_1]生无可恋 12:20:10
不是给了代码了
[夏生生][x_s_s_1]生无可恋 12:23:09
桔子兄的我还没参透
[qqimg]oldimg/{2F615F6D-0A15-FA3E-9DF3-F6D7A5217380}.jpg[/qqimg](4458.61 4088.25 8209.49 5133.53 5524.46)
前面那段代码就得到了每端的长度
[kwok][kwok]巭隼 12:24:11
那这个长度我要怎么取出来?
[夏生生][x_s_s_1]生无可恋 12:24:25
nth就行了
foreach最好
[夏生生][x_s_s_1]生无可恋 12:25:20
直接foreach dis 前面得到的表 (entmake ....)
[vormittag]桔子 12:25:39
mapcar 也未尝不可。
[夏生生][x_s_s_1]生无可恋 12:26:22
桔子兄,每个拐点的参数是什么?
您说不用取点
迷惑ing
[vormittag]桔子 12:26:44
0.0 1.0 2.0
等差数列
[kwok][kwok]巭隼 12:27:04
可以用repeat 把长度循环取出来么?
[夏生生][x_s_s_1]生无可恋 12:27:04
我试试
[vormittag]桔子 12:27:10
如果是多段线的话。
[夏生生][x_s_s_1]生无可恋 12:27:26
先取的90组码咯
[vormittag]桔子 12:27:52
对,
[夏生生][x_s_s_1]生无可恋 12:27:56
巭隼后面怎么组织您随便
[kwok][kwok]巭隼 12:28:12
(repeat lst
(command "_.rectang" pt )这样可以不
[夏生生][x_s_s_1]生无可恋 12:28:22
while。repeatforeach都可以
不可以
ya雀无声 12:28:34
(setvar "clayer" REIN)
  (command "donut" "0" "20" d1 d2 d3 d4 d5 "")
  (setvar "clayer" old_lay).
[夏生生][x_s_s_1]生无可恋 12:28:39
_.rectang要两个点
ya雀无声 12:29:01
(ly_mak 1 "CONTINUOUS" 4 0 "OUTLINE")
  (ly_mak 1 "CONTINUOUS" 2 0 "REIN")
  (pl_mak "OUTLINE" (list p1 p2 p3 p4 p5 p6) 1 0)
  (pl_mak "REIN" (list r1 r2 r3 r4 r5 ) 0 0)
  (setq oLd_lay(getvar "clayer"))
  (setvar "clayer" REIN)
  (command "donut" "0" "20" d1 d2 d3 d4 d5 "")
  (setvar "clayer" old_lay)
  (prin1)
我想把  donut 放在 REIN 图层, 这样为什么不行呢
[vormittag]桔子 12:30:46
缺引号。
[夏生生][x_s_s_1]生无可恋 12:31:06
subst (cons 8 "REIN")(assoc 8 ent)ent entmod ent
ya雀无声 12:31:47
不缺引号啊,这样为什么不行呢,奇怪
[vormittag]桔子 12:31:53
[qqimg]oldimg/{1F3098A4-5A37-6F4C-82C6-4BF4782EF78B}.jpg[/qqimg]
[夏生生][x_s_s_1]生无可恋 12:32:00
(setvar "clayer" "REIN")
[vormittag]桔子 12:32:11
Rein是字符串还是变量?
[pzweng]路人 12:32:19
REIN变量吧
要不然要加引号
[夏生生][x_s_s_1]生无可恋 12:32:30
是字符串
是图层的名称
[vormittag]桔子 12:32:48
我就是说他缺这个引号。
[pzweng]路人 12:32:52
那要加引号
[vormittag]桔子 12:33:08
因为前面出现的时候,[qqimg]oldimg/{EDB0A450-845F-5400-38F3-0A1E63CCE391}.jpg[/qqimg]
[pzweng]路人 12:33:19
嗯,看到了
ya雀无声 12:33:36
糊涂了, 什么时候加引号, 什么时候不加,总是出错
[pzweng]路人 12:33:56
变量与字符串
ya雀无声 12:33:59
变量 不加 字符串 加
[夏生生][x_s_s_1]生无可恋 12:34:23
你先要搞懂数据类型
ya雀无声 12:34:38
好的
[夏生生][x_s_s_1]生无可恋 12:34:44
clayer的数据类型是string
看系统变量说明
ya雀无声 12:36:39
subst (cons 8 "REIN")(assoc 8 ent)ent entmod ent  这个方法好,还是我那个好
ya雀无声 12:37:53
这个方法可以做一个通用函数。
[夏生生][x_s_s_1]生无可恋 12:38:20
不是给了你类似的函数了嘛
ya雀无声 12:38:54
你给了一个 L线的,
[vormittag]桔子 12:38:54
直接entmake好,变量切来切去的比较讨厌。如果没有做错误处理来恢复修改的变量有时候会带来一些小问题。
 楼主| 发表于 2013-6-6 12:54:51 | 显示全部楼层
[夏生生][x_s_s_1]生无可恋 12:54:51
(setq en  (car (entsel))
      n      0
      lst nil
)
(repeat    (cdr (assoc 90 (entget en)))
  (setq    lst (cons (vlax-curve-getDistAtParam en n) lst)
    n   (1+ n)
  )
)
(setq lst(mapcar'- lst (cdr lst)))
 楼主| 发表于 2013-6-6 13:32:20 | 显示全部楼层
[236004]张牙舞爪 13:32:20
安装是旧的,一直没有更新,
[Lwcdgl]coming 13:37:25
(defun c:roo()
  (setvar "cmdecho"0)
  (setq sel(ssget))
  (setq pt(getpoint" 旋转基点:"))
  (setq n 1)
  (while (/= n 2)
    (princ " 左键90度旋转,右键-90旋转")
  (setq n(car(grread)))
  (cond ((= n 25)  (command "rotate"sel""pt 90))
    ((= n 3)  (command "rotate"sel""pt -90))
    ((command "rotate"sel""pt (getdist pt " 输入旋转角度:")))
  )
  )
  )
我想改为CAD那样的可以看到原来角度的程式,应该怎么改?
[kwok][kwok]巭隼 13:41:41
[qqimg]oldimg/{C34E6CD9-EDD5-B92A-7CC4-340457512C7E}.jpg[/qqimg]再帮帮忙把后面的也加上吗
把表里的长度取出来画成矩形每段画一个矩形,每个矩形相隔5,高50
[kwok][kwok]巭隼 13:43:37
我弄不出来,pt是直接指定的
 (repeat   lst)
  (setq d (foreach dis lst )) 
        (command "_.rectang" pt (strcat "@" (rtos d 2) "," (rtos 50 2)))
    (setq pt (polar pt 0 (+ d 5)))
    )
上面那样没用
 楼主| 发表于 2013-6-6 14:26:09 | 显示全部楼层
[kwok][kwok]巭隼 14:26:09
终于让我弄出来了
(setq m 0)
  (repeat (length lst)
       (setq d (nth m lst))
     (command "_.rectang" pt (strcat "@" (rtos d 2) "," (rtos 50 2)))
       (setq pt (polar pt 0 (+ d 5)))
   )
累呀
[雨的节奏][雨的节奏] 14:27:07
把表里的长度取出来画成矩形每段画一个矩形,每个矩形相隔5,高50
[kwok][kwok]巭隼 14:27:55
下步,选中线自动找多段线上的交点,听说用栏选顶 点,但弧怎么拟合成多些的顶点?
 楼主| 发表于 2013-6-6 15:29:07 | 显示全部楼层
[LC100]建筑设计 15:29:07
lsp如何识别天正版本啊
真是急要知道啊。
[VBALISPER]恐龙 15:31:59
删掉天正,安CAD就识别了.
[LC100]建筑设计 15:32:24
我要是识别天正版本号,
别搞错了。
[LC100]建筑设计 15:33:10
我手上安装了8.5及9.0  我用9.0,但总工用8.5,没办法所以命令要通用。
[328302216][328302216]小莫 15:40:01
判断一个对象与其他对象重叠后就让该对象往上移动一个单位,如果还与其他对象重叠就以开始位置往下移动一个单位,还有重叠就以原来位置开始往上移动两个单位,再有重叠就以原来位置开始往下移动两个单位……直到指定对象没有与其他对象重叠为止,这种要怎么循环判断?哪位个点思路
StEf 15:43:59
得看你的对象是啥了。。。。
[夏生生][x_s_s_1]生无可恋 15:44:10
所谓重叠?
[vormittag]桔子 15:44:17
这不是一直在往上移动么?。
[328302216][328302216]小莫 15:44:55
这个重叠包括部分重叠、完全重叠
[阿然][阿然] 15:45:45
。。。。那不是直接移到最前?
[夏生生][x_s_s_1]生无可恋 15:47:11
“还有重叠就以原来位置开始往上移动两个单位,再有重叠就以原来位置开始往下移动两个单位”不是移回去了
[328302216][328302216]小莫 15:47:14
我想得到对象在指定位置生成,如果判断有重叠则移动至离指定位置最近没有与其他对象重叠的位置上
[LC100]建筑设计 15:48:08
如何打开当前天正程序的路径?
[328302216][328302216]小莫 15:48:47
假如原来位置为(0,0)如果重叠就移动到(1,0)如果还有重叠就移动到(-1,0),我是这么个意思
StEf 15:49:06
你说的是文字吗
[328302216][328302216]小莫 15:49:21
嗯 是的
StEf 15:49:21
你所说的对象时文字?
[328302216][328302216]小莫 15:49:33
嗯  就是文字
[夏生生][x_s_s_1]生无可恋 15:50:10
[qqimg]oldimg/{9BAEF7DA-45AD-FE75-C386-1B77E5E0F416}.jpg[/qqimg]哥很少有人用天正,你叫别人怎么回答啊
[328302216][328302216]小莫 15:50:16
如果移动到(-1,0)还有重叠就移动到(2,0)以此类推
[LC100]建筑设计 15:50:58
就算不是天正,打开你现用CAD的路径方法应该一样的吧。
StEf 15:51:03
那好办,boundingbox,然后建region,然后,intersect判断是否有交,然后移动,你看可以吗
[VBALISPER]恐龙 15:51:38
一样?很难说
[夏生生][x_s_s_1]生无可恋 15:51:57
就是因为不一样咯
[LC100]建筑设计 15:52:00
这里有办法读取么?
[328302216][328302216]小莫 15:52:02
判断是否重叠我倒是判断得了,就是不知道按这种移动该怎么判断
[LC100]建筑设计 15:52:03
[qqimg]oldimg/{592D1BD9-D4A8-A8B4-F188-DAB42CF3936D}.jpg[/qqimg]
看来只能写二次命令了
[VBALISPER]恐龙 15:52:55
你看天正能用不嘛.
[LC100]建筑设计 15:53:24
可以啊,都是CAD来的。天正只不过相当于插件
[夏生生][x_s_s_1]生无可恋 15:53:40
你直接搜索arx吧
[LC100]建筑设计 15:53:48
怎么查找?
[夏生生][x_s_s_1]生无可恋 15:53:56
看调用的哪个arx文件
[kwok][kwok]巭隼 15:54:00
(setq m 0)
  (repeat (length lst)
       (setq d (nth m lst))
     (command "_.rectang" pt (strcat "@" (rtos d 2) "," (rtos 50 2)))
       (setq pt (polar pt 0 (+ d 5)))
   )
为什么这个只能取表里一个值?画出来的矩形都一样宽的
[328302216][328302216]小莫 15:54:50
(setq m(+ m 1))
StEf 15:54:53
文字对象的boundingbox可以取得min、max,如果相交,直接move到制定位置不就ok???
[328302216][328302216]小莫 15:55:49
@[kwok]巭隼 (setq m(+ m 1))
[夏生生][x_s_s_1]生无可恋 15:57:29
(findfile "天正***.arx")
[328302216][328302216]小莫 15:57:39
你的M值一直都是0肯定都是同一个
[夏生生][x_s_s_1]生无可恋 15:58:13
先(arx)看返回的arx名,再(findfile "天正***.arx")
[328302216][328302216]小莫 15:58:53
假如原来位置为(0,0)如果重叠就移动到(1,0)如果还有重叠就移动到(-1,0),如果移动到(-1,0)还有重叠就移动到(2,0)以此类推   这种有没有什么规律?
[pzweng]路人 16:01:58
首先判断有几重
[328302216][328302216]小莫 16:04:01
假如我判断得到重叠后返回大于3,当返回小于等于3后就退出重叠,这个几重是不定的,
[328302216][328302216]小莫 16:04:44
当返回小于等于3后就退出判断
[pzweng]路人 16:05:24
block?
[328302216][328302216]小莫 16:06:40
1  -1  2  -2   3  -3 我想问的相当于是这串数字由没有什么规律
[夏生生][x_s_s_1]生无可恋 16:07:07
有啊
n -n
repeat / 2 n repeat 2
[LC100]建筑设计 16:09:55
明白,谢谢
[328302216][328302216]小莫 16:09:57
好像不是这样的    应该是从0开始向1和-1两边,和我刚刚说的那个好像不一样
[夏生生][x_s_s_1]生无可恋 16:11:51
最简单的方法一直向上走,走到你不能接受的循环,向下走,走到你不能接受的循环,向左走,如此如此
[kwok][kwok]巭隼 16:12:19
[qqimg]oldimg/{16747DC5-6DF2-5B94-7CC3-B8C1613F1DF8}.jpg[/qqimg]你早上帮我弄的取多段线每段长度,对闭合的多段线,会少了最后一段,可以改进的么?
[328302216][328302216]小莫 16:12:26
嗯 这种的话倒是好办
[夏生生][x_s_s_1]生无可恋 16:12:48
我测试了封闭的
没问题啊
试试这个
[328302216][328302216]小莫 16:13:26
如果没办法就只能是先向上走完,然后再向下了
[夏生生][x_s_s_1]生无可恋 16:13:41
你说的也有办法啊
[kwok][kwok]巭隼 16:13:41
我就是用上面那个
[夏生生][x_s_s_1]生无可恋 16:14:32
(while (< i n)(move i)(move -i))
[328302216][328302216]小莫 16:14:39
我也觉得应该是有办法的,只是现在想不出来,所以问问你们
[夏生生][x_s_s_1]生无可恋 16:15:02
[qqimg]oldimg/{AFD6637F-98A0-DF8A-7BBE-B3FBDB08B764}.jpg[/qqimg]
[328302216][328302216]小莫 16:15:31
谢谢 @[x_s_s_1]生无可恋 我试试
[kwok][kwok]巭隼 16:16:02
[qqimg]oldimg/{EFB42AC9-E418-04B3-1F1A-74CB0AE907C6}.gif[/qqimg]
StEf 16:17:36
这事神马??
[雨的节奏][雨的节奏] 16:18:30
这个不错
[alexanderlili][alexanderlili]友缘 16:20:35
请问lisp画小尺寸图元的时候经常错位是哪里的问题
[vormittag]桔子 16:20:57
程序写错了。
StEf 16:20:59
osmode 设为0
[pzweng]路人 16:22:21
程序写错了
真幽默
问的也幽默
[alexanderlili][alexanderlili]友缘 16:23:28
同一个程序有时候对有时候错
StEf 16:23:44
(setvar "OSMODE" 0),开始的时候加一句,有这种可能
[alexanderlili][alexanderlili]友缘 16:24:22
哦 明白了 多谢
StEf 16:24:35
[vormittag]桔子 16:25:25
篮子里有两个苹果,再放两个苹果以后有几个?

用乘法、乘方都能得到正确结果,但是是正确的方法么?
[pzweng]路人 16:26:09
要加才是正确的
[pzweng]路人 16:27:16
2+2 2×2 2^2都得4
这是数学上惟一的数
[dafeilang][dafeilang]++bee 16:31:00
乘法不就是加法的简化吧  要是你放三次,可以用加法算,用乘法也行嘛
一品缘 16:31:23
都是高手
[alexanderlili][alexanderlili]友缘 16:32:30
不明觉厉
在我们凡人的眼里都是一样的
[Lwcdgl]coming 16:33:35
求教各位
(command ".rectang" "non" pmin "non" pmax)
这里的non有什么作用?
[阿然][阿然] 16:33:53
不捕捉
[vormittag]桔子 16:34:03
抑制捕捉
[蔡__洛]不快乐 16:34:04
临时关闭捕捉
一品缘 16:34:21
高手看看
批量偏移
谁能编写出来
[Lwcdgl]coming 16:34:42
哦,[qqimg]oldimg/{0DD1C665-F500-7BDE-A509-74FEC0761B09}.gif[/qqimg]谢谢
一品缘 16:34:47
[qqimg]oldimg/{06777AA4-4484-4530-39A9-009FA1E0CE62}.jpg[/qqimg]
内部有孤岛
[pzweng]路人 16:34:59
一品缘看群规咯
快改名
一品缘 16:35:43
哦哦哦,好想不会改
好像不会改
[pzweng]路人 16:36:19
[qqimg]oldimg/{07C566FE-42ED-ED46-59E7-8F2A1190F819}.jpg[/qqimg]
[kwok][kwok]巭隼 16:38:21
不行呀,提示参数太多劳多得
一品缘 16:38:52
哦哦
改成什么啊
[kwok][kwok]巭隼 16:39:29
[qqimg]oldimg/{8C0482D9-9C56-1B1C-82B5-80819ADFB77B}.jpg[/qqimg]前面是论坛名
后面随便
[夏生生][x_s_s_1]生无可恋 16:42:38
[qqimg]oldimg/{8422663D-4265-1CEA-A378-5EC6315EA5D0}.jpg[/qqimg]
缺点是原来封闭的我给打开了
要是有影响的话,你再处理一下
[kwok][kwok]巭隼 16:43:32
没办法闭合直接求?
[夏生生][x_s_s_1]生无可恋 16:43:37
封闭回去就是
告诉你思路,你自己想吧
我有甲方来要图
[kwok][kwok]巭隼 16:44:26
呵呵,谢谢
一品 16:44:37
[qqimg]oldimg/{62BCFD90-57B5-5997-CCE3-2F66FC6FD49E}.jpg[/qqimg]高手看看,做批量批量偏移,有孤岛检测,绿色线往外面扩大,红色线往里面缩小
一品 16:45:08
群殴高手帮忙编写一个程序
[夏生生][x_s_s_1]生无可恋 16:45:08
不懂
先说说你的思路
[pzweng]路人 16:45:19
名字还没改
[夏生生][x_s_s_1]生无可恋 16:45:23
图看不懂
一品 16:45:24
求高手帮忙编写一个程序
[pzweng]路人 16:45:41
去论坛找
一品 16:45:45
就是批量偏移程序
[pzweng]路人 16:46:00
没找到再发帖
[Lwcdgl]coming 16:46:01
我可以帮你试试
[pzweng]路人 16:46:08
把名字改好
群昵称修改为“[论坛用户名]网名”格式,如果你未加入明经CAD社区,请先到http://bbs.mjtd.com注册用户。
[论坛用户名]网名
一品 16:46:43
还不得???
[pzweng]路人 16:46:53
看看大家的
你在论坛里叫什么
[LISP]???IMKYUD 16:47:01
[qqimg]oldimg/{6BB48E5B-FA74-0D23-326C-A23A9CAD4E6D}.jpg[/qqimg]
[夏生生][x_s_s_1]生无可恋 16:47:15
[kwok]巭隼你自己观察一下封闭的多义线的组码是90是顶点数,70是1,这个时候少了一个点,那么就用回我最初给你那个函数
就是这两个函数用if判断
[LISP]???IMKYUD 16:47:30
大家好,这个图形怎么画啊?
[kwok][kwok]巭隼 16:47:43
加个图层控制,应可以做到同时内外偏,
[天知道]北纬20° 16:47:48
[夏生生][x_s_s_1]生无可恋 16:47:53
用command一笔一笔画
[LISP]???IMKYUD 16:48:01
我画出来不平滑
[kwok][kwok]巭隼 16:48:11
好,谢谢[qqimg]oldimg/{D600BCF1-79AB-E5AC-F073-78988E05222C}.jpg[/qqimg]
[LISP]???IMKYUD 16:48:41
我画出来看起来有些尖锐
[阿然][阿然] 16:49:04
pedit fit一下
[夏生生][x_s_s_1]生无可恋 16:49:21
你不用带宽度的PL画
用线宽显示
[LISP]???IMKYUD 16:49:52
而且我画出来那个圆弧圆心跟别人的不一样
[vormittag]桔子 16:50:02
生无可恋的分段求长度写复杂了。
不用把闭合的打开。
[夏生生][x_s_s_1]生无可恋 16:50:18
按您的思路写的啊
[LISP]???IMKYUD 16:50:22
虽然是按照标注的尺寸画的
[夏生生][x_s_s_1]生无可恋 16:50:22
请指示
[阿然][阿然] 16:51:03
[夏生生][x_s_s_1]生无可恋 16:51:19
研究下
[pzweng]路人 16:51:37
是获取多线段长度?
[vormittag]桔子 16:52:00
lwpolyline和polyline的分段长度。
[vormittag]桔子 16:52:56
getdistatparam 简单。xxxpoint要求点的。
[阿然][阿然] 16:54:01
param对有圆弧的能不能行?
[pzweng]路人 16:54:09
(GetPlDivLength (car(entsel)))?
[雨的节奏][雨的节奏] 16:54:35
[qqimg]oldimg/{65784DBF-4B30-C2CD-981C-342CE821DCC2}.gif[/qqimg]
[夏生生][x_s_s_1]生无可恋 16:54:47
可以[qqimg]oldimg/{F2A57A12-4A2F-7629-093B-2757706F3556}.jpg[/qqimg]
[vormittag]桔子 16:55:00
行啊,为什么不行?
[雨的节奏][雨的节奏] 16:55:06
应该还能简单点
[vormittag]桔子 16:55:23
我的变量名起得长。
[pzweng]路人 16:55:35
呵呵
变量名可以简单点
[阿然][阿然] 16:56:17
我也喜欢长变量名,可读性高
[vormittag]桔子 16:56:18
写短了以后就忘了是什么了。
[pzweng]路人 16:57:09
同感
[328302216][328302216]小莫 16:57:14
我还以为变量名短点好呢
[pzweng]路人 16:57:24
但是变量长占内存
[阿然][阿然] 16:57:41
扯淡
[vormittag]桔子 16:57:42
编译以后没啥区别。
[pzweng]路人 16:58:05
学过C就知道了
我找资料给你看看
[阿然][阿然] 16:59:09
这个对有圆弧段的pline无效
[vormittag]桔子 16:59:18
这只能直线段。
[雨的节奏][雨的节奏] 16:59:32
[qqimg]oldimg/{F6EB4040-2A34-DA7F-D185-F5CBFB55A402}.gif[/qqimg]对
[阿然][阿然] 16:59:51
(vl-remove-if比你这个foreach更快
[pzweng]路人 17:00:26
直线段不就是点与点的距离吗?
[qqimg]oldimg/{11BDFA85-0AFE-1956-0D23-6585A7415095}.jpg[/qqimg]
[阿然][阿然] 17:01:28
这个是解释的阶段,编译以后都一样
[pzweng]路人 17:02:07
只有vlax开头的函数才能得到圆弧段的线长
[pzweng]路人 17:03:26
[qqimg]oldimg/{A317A703-E68B-7678-2CC1-4EC125849F73}.gif[/qqimg]
[qqimg]oldimg/{B0882394-CBF1-D1CF-6F51-6A0ADD9DB2AD}.gif[/qqimg]
[kwok][kwok]巭隼 17:03:38
谢谢[qqimg]oldimg/{C0EB3F65-CAEB-3DAB-AB6B-3C5744983674}.jpg[/qqimg]
[vormittag]桔子 17:06:29
不客气。
[kwok][kwok]巭隼 17:07:33
哇这么临时工
在打小偷
[雨的节奏][雨的节奏] 17:09:08
有没有获取曲线中心点的函数啊
[夏生生][x_s_s_1]生无可恋 17:09:30
写成这样精炼些
[kwok][kwok]巭隼 17:10:08
可以弄成独立函数了,
[vormittag]桔子 17:10:44
开口和闭合的好像还是不一样。
[夏生生][x_s_s_1]生无可恋 17:11:00
我测试了是一样的啊
[vormittag]桔子 17:11:28
嗯,我搞错了。
[328302216][328302216]小莫 17:12:30
(while (< i n)(move i)(move -i))  这个是不是(move i)和(move -i)都同时执行?
[夏生生][x_s_s_1]生无可恋 17:12:34
实际上就是把您的while 改成repeat,少了转vla
对象
是的
[雨的节奏][雨的节奏] 17:12:54
[qqimg]oldimg/{F6EB4040-2A34-DA7F-D185-F5CBFB55A402}.gif[/qqimg]精彩
[328302216][328302216]小莫 17:13:14
[夏生生][x_s_s_1]生无可恋 17:13:28
不是说同时
[vormittag]桔子 17:13:34
我当成还取 90组码了。
[夏生生][x_s_s_1]生无可恋 17:13:35
而是先1后-1
取90啰嗦
也可以完成
[328302216][328302216]小莫 17:14:07
嗯   我意思就是两个都必须执行对吧
[vormittag]桔子 17:14:22
取90不确定。
同样的90, 闭合的参数要多一个。
[vormittag]桔子 17:15:25
90组码相同,如果是闭合曲线,参数数量多一个。
[雨的节奏][雨的节奏] 17:17:49
有没有求曲线中心点的函数啊
[kwok][kwok]巭隼 17:20:57
曲线中点
[kwok][kwok]巭隼 17:21:29
(vlax-curve-getdistatpoint curve-obj (/ (vlax-curve-getDistAtPoint curve-obj (vlax-curve-getendpoint curve-obj)) 2.0))这个也可以
[雨的节奏][雨的节奏] 17:22:06
谢谢
我的意思是说中心点
假如是个圆呢,那就直接得到圆心
[kwok][kwok]巭隼 17:22:42
我以为是线的中点
[夏生生][x_s_s_1]生无可恋 17:22:43
圆心不是中心点
[kwok][kwok]巭隼 17:23:02
弄错了
[夏生生][x_s_s_1]生无可恋 17:23:13
圆心是形心重心还一个什么心来的
[雨的节奏][雨的节奏] 17:23:21
对对、、
就是要求那个形心还是重心一个什么心来着
[alexanderlili][alexanderlili]友缘 17:23:32
arc组码10不是中心点吗?
[雨的节奏][雨的节奏] 17:23:57
现在是想求曲线的那个什么开心还是重心的一个什么心
[pzweng]路人 17:24:26
原本想简洁,看来还是桔子已经做到了最简洁了
[VBALISPER]恐龙 17:25:15
开心?
[雨的节奏][雨的节奏] 17:25:57
[qqimg]oldimg/{EF5B92FA-042C-9E0D-94F0-E0A000454173}.jpg[/qqimg]
像这样的图形肯定是有个啥心的嘛
[HNFSF](看海) 17:28:31
CAD转换PDF,或者打印成PDF 用什么办法最好?
[VBALISPER]恐龙 17:28:49
可能是质心吧
[雨的节奏][雨的节奏] 17:28:50
打成PDF、安装一个PDF打印机就行了
[cie0588][cie0588] 17:32:24
08版本自带PDF打印机
[HNFSF](看海) 17:32:34
PDF factory 转换 ole 文件的时候看不清楚
08以后的高版本cad能像PDF factory那样将多个图批量形成多页pdf不?
[不死猫][nonsmall]不死猫 17:37:26
与CAD无关
[雨的节奏][雨的节奏] 17:38:09
安装一个虚拟PDF打印机啊
打印图纸的时候选择PDF打印机就行了啊
[HNFSF](看海) 17:41:06
CAD转换PDF,或者打印成PDF 用什么办法最好?
PDF factory 转换 ole 文件的时候看不清楚
08以后的高版本cad能像PDF factory那样将多个图批量形成多页pdf不?
ya雀无声 17:42:59
谁有entmake创建图元的 函数,通用的
[VBALISPER]恐龙 17:43:12
坛里有
[HNFSF](看海) 17:43:16
这个没办法通用吧
[VBALISPER]恐龙 17:43:33
不叫通用,是大全.
[HNFSF](看海) 17:43:37
insert,和text就不一样
[328302216][328302216]小莫 17:53:26
@ya雀无声 找到有没?发个链接 
[蔡__洛]不快乐 17:54:05
又要下班了
ya雀无声 17:55:19
[328302216][328302216]小莫 17:55:38
谢谢了
 楼主| 发表于 2013-6-6 18:12:35 | 显示全部楼层
[328302216][328302216]小莫 18:12:35
(defun MinDxfDef ( ename / result temp )

    ;;  will create crap if the current or parent 

    ;;  layer of the candidate entity is locked

    (foreach pair (setq result (entget ename))

        (if (entmakeX (setq temp (vl-remove pair result)))

            (progn (entdel (entlast))(setq result temp))

            result

        )

    )

)
谁给解释一下这段代码每一句的意思!按一个一个函数查着去理解好像有点雾水...
[HNFSF](看海) 18:17:37
[qqimg]oldimg/{B657FD9A-C48C-D5A9-E7D2-9BCB535949B4}.jpg[/qqimg]
[qqimg]oldimg/{8B2D19DB-9A67-FE91-865B-A45FD9B83D44}.jpg[/qqimg]
同样的文件,横打和竖打效果完全不一样
这是用PDF factory 打印的
[雨的节奏][雨的节奏] 18:25:44
 楼主| 发表于 2013-6-6 20:45:45 | 显示全部楼层
[偏爱云~小吴] 20:45:45
有方法将矩形替换成区域覆盖么
选择对象: ((-1 . ) (0 . "LWPOLYLINE") (330 . ) (5 . 
"123") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . 
"AcDbPolyline") (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 655.984 
724.043) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 1186.24 724.043) (40 . 0.0) (41 . 
0.0) (42 . 0.0) (10 1186.24 448.44) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 
655.984 448.44) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0))
命令: (entget(car(entsel)))
选择对象: ((-1 . ) (0 . "WIPEOUT") (330 . ) (5 . 
"124") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . 
"AcDbWipeout") (90 . 0) (10 1612.29 503.56 0.0) (11 530.258 0.0 0.0) (12 0.0 
530.258 0.0) (13 1.0 1.0 0.0) (340 . ) (70 . 7) (280 . 1) (281 . 50) 
(282 . 50) (283 . 0) (360 . ) (71 . 2) (91 . 5) (14 -0.5 -0.0197541 
0.0) (14 0.5 -0.0197541 0.0) (14 0.5 0.5 0.0) (14 -0.5 0.5 0.0) (14 -0.5 
-0.0197541 0.0))
图元到后面完全不一样,应该怎么处理
孑孓空灵 20:55:10
谁有铺砌填充的源码?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 03:30 , Processed in 0.243002 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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