wjnnan 发表于 2014-7-2 15:23:55

怎么能够自动判别cad图中的绘图比例,并提取

我在论坛中找到了一个画截断线的小程序,原来程序中需要手动输入比例,
我想改成自动提取当前绘图比例并默认,需要什么函数啊
(defun C:jdx (/ ang lay pt1 pt2 dis x1 pt3 pt4 pt5 pt6 scale)
        (setvar "CMDECHO" 0)
        (setq lay (getvar "clayer"))
        (command "color" "bylayer")
        (command "layer" "m" "jdx" "c" "m" "jdx" "")
        (setq scale (getreal "\nScale<300>:"))
        (if (= scale nil)
                (setq scale 300)
        )
        (setq pt1 (getpoint "\nFirst point:"))
        (setq pt2 (getpoint pt1 "\nSecond point:"))
        (setq ang (angle pt1 pt2))
        (setq dis (distance pt1 pt2))
        (setq x1 (/ (- dis (* 2 scale)) 2))
        (setq pt3 (polar pt1 ang x1))
        (setq pt4 (polar pt1 ang (+ x1 (* 2 scale))))
        (setq pt5 (polar pt3 (+ ang 1.32582) (* 2.0616 scale)))
        (setq pt6 (polar pt4 (- ang 1.81577) (* 2.0616 scale)))
        (command "pline" pt1 "w" "0" "0" pt3 pt5 pt6 pt4 pt2 "")
        (command "layer" "s" lay "")
        (princ)
        (princ)
)

alin 发表于 2014-7-2 15:42:40

没有“当前绘图比例”这样的设置 - 除非你自己创建一个。
否则你只能通过视窗的比例设置,字高或尺寸的比例设置DIMSCALE得出相应的比例。

香辣蟹 发表于 2014-7-2 15:53:01

如果你用天正的话可以这样解决:
1,任意画一个尺寸标注。
2,通过列表信息查询出这个尺寸标注的出图比例,代码是47
3,删除这个尺寸标注,做到踏雪无痕... ...

llsheng_73 发表于 2014-7-2 23:58:30

本帖最后由 llsheng_73 于 2014-7-3 00:02 编辑

南方cass软件它是把图幅比例尺存入了一个系统变量userr1里边,这个方法是可以借用的
通过 (setvar 'userr1 500)把图幅比例尺1:500保存在图幅里边
通过(getvar 'userr1)可以得到该图幅的比例尺数据500.0
关于userr1-5可以保存5个实数,它们随图形保存的
      useri1-5可以保存5个整数,也是随图形保存的
这10个数据设计好了是可以保存很多东东的
   另外还有users1-5可以保存5个字串,但可惜的是它不能随图形保存,除了当做全局变量外没想出它的用处
    具体可以查下这几个系统变量
页: [1]
查看完整版本: 怎么能够自动判别cad图中的绘图比例,并提取