bora111bora 发表于 2022-7-6 08:44:42

缩放面积和长度

你好
 
我需要的代码将多段线的面积缩放0.0001,长度缩放0.01。
 
有人能帮我写这个吗?

Tharwat 发表于 2022-7-6 08:55:25

欢迎来到论坛。
 
你的意思是希望面积除以0.0001,长度除以0.01?

Tharwat 发表于 2022-7-6 08:59:48

大概
 

(defun c:TesT (/ ss v) (vl-load-com)
(print " Select Polyline :")
(if (setq ss (ssget "_+.:S" '((0 . "*POLYLINE"))))
   (progn
   (setq v (vlax-ename->vla-object (ssname ss 0)))
   (alert
       (strcat (strcat "Total Length :"
                     ""
                     (rtos (/ (vla-get-length v) 0.0001) 2))
               "\n"
               (strcat "Total Area   :"
                     ""
                     (rtos (/ (vla-get-area v) 0.01) 2))
       )
   )
   )
   (princ)
)
(princ)
)
Tharwat

bora111bora 发表于 2022-7-6 09:02:50

谢谢你的欢迎,谢谢你的代码,但我没有成功地实现它
 
我想要的是,在属性或表中的插入字段选项中,多段线的面积显示为10000倍以下(或0.0001倍以上),长度显示为100倍(或0.01倍)。原因是我用厘米来画图,但我需要用米来读取面积和长度。
 
无论如何,我加载了你们给我的代码,但程序仍然以原始形式显示面积和长度。我错过什么了吗?

Lee Mac 发表于 2022-7-6 09:09:42

 
创建字段时:
 
 
[列表]
命令行中的[*]Type字段
[/列表]
 
[列表]
[*]从字段类别下拉列表中选择“对象”。
[/列表]
 
[列表]
[*]从字段名称列表框中选择“对象”。
[/列表]
 
[列表]
[*]单击选择按钮并选择您的对象。
[/列表]
 
[列表]
[*]选择“Area”属性。
[/列表]
 
[列表]
[*]点击“附加格式”按钮。
[/列表]
 
[列表]
[*]根据需要使用转换因子来显示结果。
[/列表]

bora111bora 发表于 2022-7-6 09:15:34

@李·麦克
 
我正在这样做,但是当我每个项目都要做200次的时候,我花的时间太长了。这就是为什么我在寻找一种自动化的方法。

Lee Mac 发表于 2022-7-6 09:19:36

 
也许您应该在之前的帖子中解释一下,您实际上是在创建字段,并且已经使用了转换因子,这是您想要自动化的过程。
 
你提供的关于你的问题的信息越多,就越不会浪费时间去确定你想要完成什么。
 
无论如何,这里有一个非常简单的代码片段供您学习:
 
还有,你可能想看看我的程序。要包含转换因子,请将代码顶部的“字段格式”行更改为:
 
"%lu2%ct8"

bora111bora 发表于 2022-7-6 09:26:02

@李·麦克
 
非常感谢您的代码。这比我一开始想要的还要好。
 
是的,你们对这个问题的糟糕解释是对的,但我担心若我在帖子里写太多的话,人们就不会读了。

Lee Mac 发表于 2022-7-6 09:32:38

 
不客气,很乐意帮忙。
 
 
我理解你来自哪里,但也要考虑相反的情况——如果提供的信息太少,人们可能不想花时间试图确定你实际上在寻找什么。
 
关于这个主题,这是一篇非常有趣的文章。
 

bora111bora 发表于 2022-7-6 09:39:00

我可以请你为长度写一个类似的代码,只需将其缩放0.01倍吗?
页: [1] 2
查看完整版本: 缩放面积和长度