明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 635|回复: 3

[LISP群(2)] 2013-06-27 明经 AutoLISP 编程②(177027547) 群聊记录:[image={B095C2A9-ECF4-474D-CD05-69D33

 关闭 [复制链接]
发表于 2013-6-27 12:03 | 显示全部楼层 |阅读模式
--@----- 12:03:15
[qqimg]oldimg/{B095C2A9-ECF4-474D-CD05-69D3350B0824}.jpg[/qqimg]
有排列着数字大小顺序的LSP没
从小到大 或者从大到小都行
[pzweng][pzweng]天蝎 12:04:25
到EXCEL里去
--@----- 12:05:15
我导了 没导出去 郁闷
[pzweng][pzweng]天蝎 12:05:55
去论坛找
一大把
[vormittag]桔子 12:10:00
vl-sort
 楼主| 发表于 2013-6-27 21:02 | 显示全部楼层
[toproc]大鹏追日 21:02:07
textbox能准确计算属性块中,某一个属性值的文字宽度么?
[ZZXXQQ] 21:02:57
直接从组码读出来
[toproc]大鹏追日 21:03:41
[qqimg]oldimg/{F45C19D8-C8E0-44F6-85FA-DE98525C8A6D}.jpg[/qqimg] X= 和Y=是一个属性块里面的两个属性值,不管何种比例插入属性块,我想能准确计算这两个属性文字的最大宽度,好按比例绘制横线
我看看,祖码有这个宽度值没
[toproc]大鹏追日 21:04:52
[qqimg]oldimg/{89FC419E-8E0F-ABF0-732C-0FA1BED7F504}.jpg[/qqimg]
[toproc]大鹏追日 21:07:26
斑竹,组码中没有X=-539.3571文字的宽度啊?
[ZZXXQQ] 21:07:43
41
高宽比
[toproc]大鹏追日 21:14:24
谢谢!但是,宽度=高度×高宽比,文字高度是2.5,高宽比是1,这个宽度算出来就不对了啊。要的不是单个文字的宽度,是整个“X=-539.3571”
[ZZXXQQ] 21:15:19
串长*字高*高宽比
[toproc]大鹏追日 21:16:33
恩,明白了。谢谢!我以为有啥简单的方法。textbox为什么计算不了属性块中文字的宽度呢?
[ywq8868]老叶 21:18:39
[vormittag]桔子 21:20:10
非等宽字符并不能这么算。
[toproc]大鹏追日 21:21:07
是说非等宽字符,不能用组码来计算吗?
[ZZXXQQ] 21:21:43
可以,但多个固定的字宽比
[vormittag]桔子 21:21:59
用串长*字高*高宽比好像不行。
[toproc]大鹏追日 21:22:13
我来试试 看行不
[vormittag]桔子 21:23:11
有的字体样式,各种字符的宽度并不完全一致的。
[toproc]大鹏追日 21:25:07
[qqimg]oldimg/{243EA927-7268-D083-6DBD-2371D565AF83}.jpg[/qqimg]
是有问题
[toproc]大鹏追日 21:27:07
对于单纯的文字 textbox可以计算,属性块里面的文字就有问题
[vormittag]桔子 21:27:54
一样的
[toproc]大鹏追日 21:28:01
(setq e (entlast))
  (setq e1 (entnext e))
  (setq e2 (entnext e1))
  (setq sm1 (entget e1))
  (setq sm2 (entget e2))

  (setq tb1 (textbox (list (assoc 1 sm1))))
  (setq tb2 (textbox (list (assoc 1 sm2))))

  (setq kd1 (abs (- (caar tb1) (caadr tb1))))
  (setq kd2 (abs (- (caar tb2) (caadr tb2))))

  (setq kd (max kd1 kd2))
我之前是这样算的
e是属性块的图元名,e1和e2分别是X和Y坐标文字的图元名
算出来就是不对的
[vormittag]桔子 21:29:09
ttf字体就不要说了,肯定不是你想要的长度
[toproc]大鹏追日 21:31:12
我这个字体是黑体。。。。
[vormittag]桔子 21:32:03
(setq tb1 (textbox sm1))
[vormittag]桔子 21:35:17
你那种作法这样只会算这个字符串在当前的字体样式下的bb框。
[toproc]大鹏追日 21:35:23
 谢谢!拿着函数直接照搬用的
[toproc]大鹏追日 21:35:58
也就是说,各种字体样式的bb框还要按字体样式来?
[vormittag]桔子 21:36:16
当然了。
[toproc]大鹏追日 21:36:35
 非常感谢!
[vormittag]桔子 21:36:46
跟字高、高宽比都有关系。
[toproc]大鹏追日 21:37:41
你那个好,一下全搞定
[toproc]大鹏追日 21:41:59
感谢 ZZXXQQ和桔子,问题解决了!
[vormittag]桔子 21:42:18
不客气
【hehaidizhi】绿 21:47:07
Sub GetLenth()
   Dim ExcelApp As New Excel.Application
   Dim ExcelWkbk As Excel.Workbook
   Set ExcelWkbk = ExcelApp.Workbooks.Add
   Dim i As Integer
   i = 1
   Dim Ent As AcadEntity
   Dim pt1 As Variant, pt2 As Variant
   With ExcelWkbk.Worksheets("sheet1")
       For Each Ent In ThisDrawing.ModelSpace
           If Ent.ObjectName = "AcDbLine" Then
               .Range("A" & i) = i
               .Range("B" & i) = Ent.Length
               i = i + 1
           End If
       Next Ent
   End With
   ExcelApp.ActiveWorkbook.SaveAs "d:AcadLen.xls"
   ExcelApp.Workbooks.Close
   ExcelApp.Quit
End Sub
哪位大哥帮我把上边程序存成cad可以加载的插件啊?
谢谢了
 楼主| 发表于 2013-6-27 22:15 | 显示全部楼层
[vormittag]桔子 22:15:37
(list (assoc 1 sm1)) 把重要信息全都去掉了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 06:03 , Processed in 0.197142 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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