明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1711|回复: 15

请教如何实现类似探索者CAD的数值比例换算

[复制链接]
发表于 2023-9-16 13:21:31 | 显示全部楼层 |阅读模式
本人在结构设计院工作,我们院的习惯是按比例画图,1:1出图。探索者中如果绘图比例是1:100,输入1000后Ctrl+enter,将自动换算回10,请教一下如和在lsp实现该功能呢,或者将该功能加入到lsp中,还望各位高手能解答。
 楼主| 发表于 2023-9-17 18:14:31 | 显示全部楼层
hao3ren 发表于 2023-9-17 17:33
在1:100的情况下,输入100,得到的长度是不是应该为100000?
(setq bl (/ (cdr(assoc 144 (tblsearch "DIM ...

太感谢您了,已经成功将比例折算的功能融入到我之前的插件中,万分感谢
回复 支持 1 反对 0

使用道具 举报

发表于 2023-9-16 15:41:32 | 显示全部楼层
tssd这个功能才知道不久,挺好用的。
回复 支持 1 反对 0

使用道具 举报

发表于 2023-9-17 11:06:52 | 显示全部楼层
  1. ;比例绘图
  2. (defun c:plcs()
  3. ;(if (= (getvar "useri5") 0) (setvar "useri5" 1))
  4. ;(if (setq blc (getreal (strcat "\n1:?<" (itoa (getvar "useri5")) ">")))
  5. ; (setvar "useri5" blc)
  6. ; (setq blc (getvar "useri5"))
  7. ;)
  8. ;(setq bl (/ blc 1000.0))
  9. (if (and (princ "\n选择尺寸 :") (setq s1 (ssget ":S" '((0 . "DIMENSION"))))) (progn
  10.   (setq dimname (cdr(assoc 3 (entget(ssname s1 0)))))
  11.   (setq bl (/ (cdr(assoc 144 (tblsearch "DIMSTYLE" dimname))) 1000))
  12.   (setq olddim (getvar "DIMSTYLE"))
  13.   (command "-DIMSTYLE" "R" dimname "GRAPHSCR")
  14.   (initget "L C CO M O ")
  15.   (setq bz (getkword "\n直线-L/圆-C/拷贝-CP/移动-M/偏移-O <L>:"))
  16.   (cond
  17.    ((= bz "C")
  18.     (if (= (getvar "userr4") 0) (setvar "userr4" 1.0))
  19.     (while (setq p1 (getpoint "\n圆心<回车结束>:"))
  20.      (if (setq rr (getdist (strcat "\n半径<" (rtos (getvar "userr4")) ">:")))
  21.       (setvar "userr4" rr)
  22.       (setq rr (getvar "userr4"))
  23.      )
  24.      (command ".CIRCLE" p1 (/ rr bl))
  25.     )
  26.    )
  27.    ((= bz "CO")
  28.     (if (= (getvar "userr3") 0) (setvar "userr3" 1.0))
  29.     (while (and (print "\n选择图元 :")
  30.                 (setq ss (ssget))
  31.                 (setq p1 (getpoint "\n起始点 :"))
  32.                 (setq ang (getangle p1 "\n方向 :")))
  33.      (if (setq ll (getdist (strcat "\n距离<" (rtos (getvar "userr3")) ">:")))
  34.       (setvar "userr3" ll)
  35.       (setq ll (getvar "userr3"))
  36.      )
  37.      (command ".COPY" ss "" p1 (polar p1 ang (/ ll bl)))
  38.     )
  39.    )
  40.    ((= bz "M")
  41.     (if (= (getvar "userr2") 0) (setvar "userr2" 1.0))
  42.     (while (and (print "\n选择图元 :")
  43.                 (setq ss (ssget))
  44.                 (setq p1 (getpoint "\n起始点 :"))
  45.                 (setq ang (getangle p1 "\n方向 :")))
  46.      (if (setq ll (getdist (strcat "\n距离<" (rtos (getvar "userr2")) ">:")))
  47.       (setvar "userr2" ll)
  48.       (setq ll (getvar "userr2"))
  49.      )
  50.      (command ".MOVE" ss "" p1 (polar p1 ang (/ ll bl)))
  51.     )
  52.    )
  53.    ((= bz "O")
  54.     (if (= (getvar "userr1") 0) (setvar "userr1" 1.0))
  55.     (if (setq ll (getdist (strcat "\n偏移距离<" (rtos (getvar "userr1")) ">:")))
  56.      (setvar "userr1" ll)
  57.      (setq ll (getvar "userr1"))
  58.     )
  59.     (command ".OFFSET" (/ ll bl))
  60.     (while (> (getvar "CMDACTVE") 1) (command PAUSE))
  61.    )
  62.    (T
  63.     (if (= (getvar "userr5") 0) (setvar "userr5" 1.0))
  64.     (while (and (setq p1 (getpoint "\n起点<回车结束>:"))
  65.                 (setq ang (getangle p1 "\n止点所在方向:")))
  66.      (if (setq ll (getdist (strcat "\n直线长度<" (rtos (getvar "userr5")) ">:")))
  67.       (setvar "userr5" ll)
  68.       (setq ll (getvar "userr5"))
  69.      )
  70.      (command ".LINE" p1 (polar p1 ang (/ ll bl)) "")
  71.     )
  72.    )
  73.   )
  74. ))
  75. (if olddim (command "-DIMSTYLE" "R" olddim "GRAPHSCR"))
  76. (princ)
  77. )

发表于 2023-9-16 16:09:47 | 显示全部楼层
1:100不挺好吗,为何要用1:1的。 是等于将图纸缩放0.01倍,文字高度和标注样式换成1:1的样式吗?
 楼主| 发表于 2023-9-16 17:03:44 | 显示全部楼层
tiancao100 发表于 2023-9-16 16:09
1:100不挺好吗,为何要用1:1的。 是等于将图纸缩放0.01倍,文字高度和标注样式换成1:1的样式吗?

我的意思是现在的lsp插件很多输入距离,不能像探索者一样自动换算,我感觉很麻烦,想问问lsp能不能也有这个功能
 楼主| 发表于 2023-9-17 13:35:25 | 显示全部楼层

谢谢大佬,我好好研究研究
 楼主| 发表于 2023-9-17 15:44:53 | 显示全部楼层

您好,用了您提供的lsp,运行后似乎存在有点小问题,目前在1:100的情况下,输入100,得到的长度为10000,实际上我想得到的是1,请问该如何调整呢
发表于 2023-9-17 17:33:20 | 显示全部楼层
在1:100的情况下,输入100,得到的长度是不是应该为100000?
(setq bl (/ (cdr(assoc 144 (tblsearch "DIMSTYLE" dimname))) 1000))
把里面的1000改为0.01
发表于 2023-9-18 00:47:24 | 显示全部楼层
这是目前最遗憾的事情,为此三领没少废了劲!


本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-25 03:43 , Processed in 0.173211 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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