xiaocainiao 发表于 2024-4-13 19:21:35

求教!块单位有没有办法用Lisp进行修改

本帖最后由 xiaocainiao 于 2024-4-14 07:53 编辑




请教一下各位大神!
图块单位有没有办法用lisp修改为毫米、如上图:
没有找到对应组码、也没找到相关函数、不知道怎么修改了

vitalgg 发表于 2024-4-14 10:36:21

本帖最后由 vitalgg 于 2024-4-14 10:46 编辑

xiaocainiao 发表于 2024-4-14 10:20
如果块单位是英寸、将块比例改为1就不对了、与实际尺寸差的多、你看我发的那个样例就知道了、这个不能改 ...
在特性对话框中显示的缩放比例跟图形实际的dxf 41 42 43 组码对应的缩放比例值是不同的。
特性对话框中显示的缩放比例值是dxf组码经过单位换算后的值。
你改dxf 41 42 43 组码值就可以无视单位换算。





(progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText)))
(setq blkref (ssname(ssget ":S:E" '((0 . "insert")))0))
(entity:putdxf blkref 41 1)
(entity:putdxf blkref 42 1)
(entity:putdxf blkref 43 1))

vitalgg 发表于 2024-4-14 11:06:11

本帖最后由 vitalgg 于 2024-4-14 11:13 编辑

将块“床” 改成 无单位 ,如果改毫米的话把0改为4

(progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))
(vla-put-units(block:get-obj-by-name "床") 0) ;; 如果改毫米的话把0改为4


liuhe 发表于 2024-4-13 20:13:52

指定与块一起保存的插入单位。

语法

object.InsUnits

object

BlockRef, ExternalReference, MInsertBlock
使用该属性的对象。

InsUnits

String[字符串]; 只读

说明

InsUnits 属性是块作者为块参照定义的本地单位。当块插入到单位已经定义好的图形中时,块将自动缩放对应到 InsUnitsFactor,它是块单位与当前图形单位间的转换因子。


只读 只读 只读

是你的图纸问题,用错样板了吧

嘒彼小星 发表于 2024-4-13 20:13:29

这个是在建块之前的单位设置。要么遍历块对象后改了单位为毫米重建块

飞雪神光 发表于 2024-4-13 20:25:18

发个图看看

xiaocainiao 发表于 2024-4-14 07:53:44

飞雪神光 发表于 2024-4-13 20:25
发个图看看

上传了、谢谢

xiaocainiao 发表于 2024-4-14 07:57:05

liuhe 发表于 2024-4-13 20:13
指定与块一起保存的插入单位。

语法


样板文件的块插入单位是毫米、但是图块本身的单位是英寸、这个我猜是做块时设置的块单位是英寸、就是B命令组块的时候有个单位设置

xiaocainiao 发表于 2024-4-14 07:58:37

嘒彼小星 发表于 2024-4-13 20:13
这个是在建块之前的单位设置。要么遍历块对象后改了单位为毫米重建块

重新建块这个不太好搞了、主要是有些可能是动态块

vitalgg 发表于 2024-4-14 09:53:39

dwg本身是无单位的。 insunits是在插入块时与dwg本身定义的单位不同时,对块进行缩放。让你觉得进行单位换算了。
把插入后的块参照的缩放比例改为1 就可以了。

飞雪神光 发表于 2024-4-14 10:20:06

搞不定 我觉得也是要重做

xiaocainiao 发表于 2024-4-14 10:20:57

vitalgg 发表于 2024-4-14 09:53
dwg本身是无单位的。 insunits是在插入块时与dwg本身定义的单位不同时,对块进行缩放。让你觉得进行单位换 ...

如果块单位是英寸、将块比例改为1就不对了、与实际尺寸差的多、你看我发的那个样例就知道了、这个不能改比例、每次我都是手动进块编辑器后改块单位才行
页: [1] 2 3
查看完整版本: 求教!块单位有没有办法用Lisp进行修改