明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4025|回复: 13

[LISP群(1)] 2013-11-17 明经 AutoLISP 编程(102918348) 群聊记录:(defun c:xdqwz(/ continue);;线对齐文字 (d

 关闭 [复制链接]
发表于 2013-11-17 00:00:01 | 显示全部楼层 |阅读模式
[llsheng_73]■■■ 00:00:01
(defun c:xdqwz(/ continue);;线对齐文字
  (defun SstoEs(ss / a en lst)
    (if ss(progn(setq a -1)
        (while(setq en(ssname ss(setq a(1+ a))))(setq lst (cons en lst)))))
    lst)
  (setq continue t)
  (while continue
     (if (setq a(car(entsel"点选要处理的线上边的文字")))
       (progn
     (vla-getboundingbox (vlax-ename->vla-object a) 'll 'ur)
     (setq p1(vlax-safearray->list ll)x1(car p1)
           p2(vlax-safearray->list ur)x2(car p2)
           p3(list x2(-(cadr p1)(-(cadr p2)(cadr p1)))0)
           ss(sstoes(ssget"CP"(list p1 (list (car p1)(cadr p3)) p3(list (car p3)(cadr p1)))'((0 . "*LINE")))))
     (foreach a ss
       (entmod(setq b(entget a)
         a(vlax-ename->vla-object a)
         p1(vlax-curve-getStartPoint a)
         p2(vlax-curve-getEndPoint a)
         p3(cadr p1)
         b(subst(list 10 x1 p3)(list 10 (car p1)(cadr p1))b)
         b(subst(list 10 x2 p3)(list 10 (car p2)(cadr p2))b)))
       );;改线
     (setq a(ssget"X"'((0 . "*TEXT")(1 . "1:*"))))
     (if a(entmod(setq a(entget(ssname a 0))
               p1(assoc 10 a)
               p2(assoc 11 a)
               x2(+ x2 500)
               a(subst(list 10 x2(caddr p1)(last p1))p1 a)
               a(subst(list 11 x2(caddr p2)(last p2))p2 a)))
       (alert"没有找到比例尺注记"))
     )
       (setq continue nil))
    )
  )
 楼主| 发表于 2013-11-17 00:10:07 | 显示全部楼层
[llsheng_73]■■■ 00:10:07
是用得到,不过要为了这么一下去运行命令,比较头痛,可以想法把CAD的save命令和退出命令改下,让它先调用这个再去执行它本来的,就可以不用这个操心了
[llsheng_73]■■■ 00:11:30
其实假如图名是可以移动的话,那完全可以根据那个比例尺去找到它这样就不需要去点它了
明天再说吧
淡木沁灯 00:12:12
嗯,最幻想的想法是文字改完自动对齐了
[xzz007][xzz007]lisp编程 00:12:55
这个就只能用反应器完成
我就是用反应器完成的
[llsheng_73]■■■ 00:13:25
是的,要自动完成必须做反应器
淡木沁灯 00:14:29
嗯,反应器我不懂
[llsheng_73]■■■ 00:15:14
我只是大概知道怎么回事,但是不会做
[llsheng_73]■■■ 00:16:23
前几天在论坛看到人家做的一个简单的本来有兴趣想弄懂它,结果人家又给我说那个不太稳定,搞得我就又没兴趣研究它了
淡木沁灯 00:17:25
哦,其实用处还是蛮大的,毕竟图名还是挺多的
 楼主| 发表于 2013-11-17 11:59:44 | 显示全部楼层
[影带走流年]静 11:59:44
求教
[影带走流年]静 12:00:49
如何不开正交就可以画出垂直你的线呢
 楼主| 发表于 2013-11-17 12:17:52 | 显示全部楼层
[VBALISPER]恐龙 12:17:52
临时正交
[cmbcmbcjh]兮兮 12:25:56
[ZZXXQQ] 12:29:28
你是冲着什么方向的?
[影带走流年]静 12:29:58
垂直向上的
[ZZXXQQ] 12:30:29
哦。是站着的
[影带走流年]静 12:30:39
对啊
刚开始学
[ZZXXQQ] 12:31:19
那任何一条水平线都是垂线
[影带走流年]静 12:32:00
没有明白什么意思啊
 楼主| 发表于 2013-11-17 13:12:28 | 显示全部楼层
[why1025][7299969]人生 13:12:28
((setq n7 (/ (DISTANCE 5-11 6-11) dis))
          if(
((setq n7 (/ (DISTANCE 5-11 6-11) dis))
if(
[why1025][7299969]人生 13:15:22
如果PT5与PT6距离小于等于(/ (* dis 10) 3),n7=-1.否则(setq n7 (/ (DISTANCE 5-11 6-11) dis))
 楼主| 发表于 2013-11-17 13:44:39 | 显示全部楼层
[why1025][7299969]人生 13:44:39
 楼主| 发表于 2013-11-17 14:29:48 | 显示全部楼层
[llsheng_73]■■■ 14:29:48
不开正交要垂直画线的话只能通过输入坐标来控制?
[【KAIXIN】] [【KAIXIN】]炫翔 14:37:22
 楼主| 发表于 2013-11-17 15:03:53 | 显示全部楼层
[楚留香] 15:03:53
大家有好的屏幕录制软件吗?
为什么录制完都大于10M
大家发到对话框采取的是什么办法呢?
 楼主| 发表于 2013-11-17 16:26:02 | 显示全部楼层
[VBALISPER]恐龙 16:26:02
你录的时间太长了.当然都>10M
 楼主| 发表于 2013-11-17 18:46:15 | 显示全部楼层
[why1025][7299969]人生 18:46:15
dcl的宽度长度是怎么改的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-5 23:22 , Processed in 0.229434 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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