明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1522|回复: 3

请教一个统一左上角起点的问题

[复制链接]
发表于 2014-5-6 14:21 | 显示全部楼层 |阅读模式
本帖最后由 434939575 于 2014-5-6 14:26 编辑
  1. 请教一个问题,目标是统一变起点为左上角。批量时出乱了,感觉是图元之间表没有分离,合到一起了。
  2. 请大师帮帮忙,感谢!
  3. (defun C:tt (/ ss ename elist ptlist   )  ;多段线左上角为起始点,
  4.   (setq ss (ssget))
  5.   (setq i 0)
  6.   (repeat (sslength ss)
  7.     (setq ss0   (ssname ss i)
  8.     ss0-en (entget ss0)
  9.     i   (1+ i)
  10.     )
  11.     (foreach n ss0-en                    
  12.       (if (= 10 (car n))
  13.                              
  14.   
  15.   (setq ptlist
  16.          (cons   
  17.      (cdr n)
  18.      ptlist
  19.          )
  20.   )
  21.       )  ;if
  22.     )  ;foreach
  23.     (reverse ptlist)
  24.     (setq list-y
  25.      (vl-sort ptlist
  26.         (function (lambda (e1 e2) (> (cadr e1) (cadr e2))))
  27.      )
  28.     )
  29. ;;;Y----小到大;
  30.     (setq y-1 (car list-y))
  31. ;;;Y----第一个点;
  32.     (setq y-2 (cadr list-y))
  33. ;;;Y----第二个点;
  34.     (setq list-y++ (append (list y-1) (list y-2)))
  35. ;;;Y----第一二个点组合;
  36.     (setq memb-1
  37.      (car
  38.        (vl-sort list-y++
  39.           (function (lambda (e1 e2) (< (car e1) (car e2))))
  40.        )
  41.      )
  42.     )
  43. ;;;Y--表里面重新排列取靠左边的点;      
  44.     (setq lst-ab (member memb-1 ptlist))
  45.     (setq lst-cd (reverse (cdr (member memb-1 (reverse ptlist)))))         
  46.     (setq list-ok (append lst-ab lst-cd))   
  47.     (command "circle" memb-1 500 "");此圆用于测试起点的位置

  48.     (Make-LWPOLYLINE list-ok  )
  49.   );repeat
  50.    (command "_.erase" ss "");删除原始的图元
  51. )
  52. ;;164.31 [功能] 点表生成多段线
  53. (defun Make-LWPOLYLINE (lst /  PT )
  54.   (entmake (append (list '(0 . "LWPOLYLINE")
  55.        '(100 . "AcDbEntity")
  56.        '(100 . "AcDbPolyline")
  57.        (cons 90 (length lst)) ;端点数量
  58.        '(70 . 1)  ;关闭图形
  59.        )
  60.        (mapcar '(lambda (pt) (cons 10 pt)) lst)


  61.      )
  62.   )
  63. )

本帖子中包含更多资源

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

x
发表于 2014-5-6 15:36 | 显示全部楼层
每次循环,ptlist 没有重置吧
 楼主| 发表于 2014-5-6 16:05 | 显示全部楼层
谢谢指点,先尝试看看。
发表于 2015-7-27 09:38 | 显示全部楼层
记下,到时候可能有用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 18:06 , Processed in 0.211598 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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