Emmanuel Delay 发表于 2022-7-5 19:40:37

OD数据

有人有读取对象数据的经验吗?
我有“MAPBULKFEATURE”实体和数据;我想用lisp阅读这些数据。

tombu 发表于 2022-7-5 19:55:25

您需要有Map才能拥有像“ade\u odgetfield”这样的Map lisp函数。由于数据在任何地方的存储方式都不同,因此提供代码可能没有帮助。我们的GIS人员一直在修改存储方式,所以我必须不断修改我的代码。

Emmanuel Delay 发表于 2022-7-5 19:57:06

是的,我有Autocad Map 3D 2015。
 
这是零。
 
(defun c:test ( / mo )
(setq mo (car (entsel)))
(princ (ade_odgettables mo))
(princ)
)

 
我错过什么了吗?

tombu 发表于 2022-7-5 20:07:43

尝试:
(defun c:test ( / mo tbl1 bf)
(setq mo (car (entsel))
       tbl1 (car (ade_odgettables mo))                ;First_Table_Assigned_to_Object
       bf (ade_odgetfield mo tbl1 "MAPBULKFEATURE" 0)       ;the object data for the MAPBULKFEATURE maybe?
)
(princ bf)
(princ)
)

Commandobill 发表于 2022-7-5 20:13:14

我几年前写过这篇文章,它用地图数据查找所有东西,并将其打印到带有坐标的指定CSV。你可以随时根据自己的需要更换。

BlackBox 发表于 2022-7-5 20:25:36

... 当你厌倦了让你的画浮夸的时候:
 

(defun c:ODD () (c:ObjectDataDelete))
(defun c:ObjectDataDelete (/ odTableName i n)
(princ "\rOBJECTDATADELETE ")
(if (and (setq odTables (ade_odtablelist))
          (setq i (length odTables))
          (setq n 0)
          (princ "\nWorking, please wait... ")
          (princ)
   )
   (progn
   (foreach odTableName (ade_odtablelist)
       (ade_oddeletetab odTableName)
       (setq n (1+ n))
   )
   (princ "Done. ")
   (prompt
       (strcat "\nRemoved "
               (itoa n)
               " of "
               (itoa i)
               " object data table"
               (if (= 1 i)
               ". "
               "s. "
               )
       )
   )
   )
   (prompt "\n** No object data tables found ** ")
)
(princ)
)

;; if not being loaded into map-enabled application
(if (not ade_odtablelist)

;; disabled these functions
(setq c:ODD (setq c:ObjectDataDelete nil))
)

(princ)

 
 
 
... 你和O(是的,你认识我)?
 
干杯

Commandobill 发表于 2022-7-5 20:26:11

哈哈哈。。。

Emmanuel Delay 发表于 2022-7-5 20:35:00

谢谢我这几天有足够的东西可以试试

BlackBox 发表于 2022-7-5 20:45:09

 
*Tips帽子*
 
我想知道是否有人会得到这份推荐信。
 
呵呵呵呵
页: [1]
查看完整版本: OD数据